ip命令用法歸納

ip是iproute2工具包裡面的一個命令行工具,用於配置網路介面以及路由表。iproute2正在逐步取代舊的net-tools (ifconfig),所以是時候學習下iproute2的使用方法啦~

介面信息查看

查看介面狀態和詳細統計

(不指定介面則顯示所有介面的詳細統計)

ip -d -s -s link show [dev <介面名>] n

例:查看ens34介面信息。

[root: ~]# ip -d -s -s link show ens34nn3: ens34: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000n link/ether 88:32:9b:ca:3f:4a brd ff:ff:ff:ff:ff:ff promiscuity 0 addrgenmode eui64 n RX: bytes packets errors dropped overrun mcast n 581645 6100 0 0 0 0 n RX errors: length crc frame fifo missedn 0 0 0 0 0 n TX: bytes packets errors dropped carrier collsns n 3743584 3939 0 0 0 0 n TX errors: aborted fifo window heartbeat transnsn 0 0 0 0 2 n

IP地址設置

查看介面IP地址

(不指定介面則顯示所有介面的IP地址)

ip addr show [dev <介面名>]n

查看介面IPv6地址

(不指定介面則顯示所有介面的IPv6地址)

ip -6 addr show [dev <介面名>]n

為介面添加IP地址

ip addr add <IP地址/前綴長度> [broadcast <廣播地址>] dev <介面名>n

為介面添加IPv6地址

ip -6 addr add <IPv6地址/前綴長度> dev <介面名>n

為介面刪除IP地址

ip addr del <IP地址/前綴長度> dev <介面名>n

為介面刪除IPv6地址

ip -6 addr del <IP地址/前綴長度> dev <介面名>n

例:為ens34添加IP地址192.168.1.111/24並檢查。

[root: ~]# ip addr add 192.168.1.111/24 dev ens34nn3: ens34: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000n link/ether 88:32:9b:ca:3f:4a brd ff:ff:ff:ff:ff:ffn inet 10.16.1.2/24 brd 10.16.1.255 scope global ens34n valid_lft forever preferred_lft forevern inet 192.168.1.111/24 scope global ens34n valid_lft forever preferred_lft forevern inet6 fe80::f65c:89ff:fecd:3ab5/64 scope link n valid_lft forever preferred_lft forevern

介面設置

啟用介面

ip link set <介面名> upn

禁用介面

ip link set <介面名> downn

設置介面MAC地址

(設置前請先禁用介面)

ip link set <介面名> address <值>n

設置介面MTU

(設置前請先禁用介面)

ip link set <介面名> mtu <值>n

例:把ens33的MTU改成9000並檢查。

[root: ~]# ip link show dev ens33 #修改前nn2: ens33: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast state DOWN mode DEFAULT qlen 1000n link/ether 88:32:9b:ca:3f:49 brd ff:ff:ff:ff:ff:ffn[root: ~]# ip link set ens33 mtu 9000nn[root: ~]# ip link show dev ens33 #修改後nn2: ens33: <BROADCAST,MULTICAST> mtu 9000 qdisc pfifo_fast state DOWN mode DEFAULT qlen 1000n link/ether 88:32:9b:ca:3f:49 brd ff:ff:ff:ff:ff:ffn

VLAN設置

添加802.1Q VLAN子介面

ip link add link <介面名> name <子介面名> type vlan id <VLAN_ID>n

刪除802.1Q VLAN子介面

ip link del <介面名>n

例:為ens33添加VLAN100子介面並檢查。

[root: ~]# ip link add link ens33 name ens33.100 type vlan id 100nn[root: ~]# ip -d -s -s link show ens33.100nn7: ens33.100@ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc noqueue state UP mode DEFAULT qlen 1000n link/ether 88:32:9b:ca:3f:aa brd ff:ff:ff:ff:ff:ff promiscuity 0 n vlan protocol 802.1Q id 100 <REORDER_HDR> addrgenmode eui64 n RX: bytes packets errors dropped overrun mcast n 0 0 0 0 0 0 n RX errors: length crc frame fifo missedn 0 0 0 0 0 n TX: bytes packets errors dropped carrier collsns n 738 9 0 0 0 0 n TX errors: aborted fifo window heartbeat transnsn 0 0 0 0 3 n

路由表設置

查看路由表

(不指定介面則顯示所有介面的路由表)

ip route show [dev <介面名>]n

查看指定目標地址用的是哪條路由表

ip route get <目標IP>n

添加路由表

ip route add <目標IP地址/前綴長度> via <下一跳> [dev <出介面>]n

添加默認網關

ip route add default via <默認網關> [dev <出介面>]n

刪除路由表

ip route del <目標IP地址/前綴長度> via <下一跳> [dev <出介面>]n

例:查看目標地址為8.8.8.8用的是哪條路由表。

[root: ~]# ip route get 8.8.8.8nn8.8.8.8 via 192.168.1.1 dev ens33 src 192.168.1.143 n cache n#下一跳是192.168.1.1,出介面是ens33,介面的IP是192.168.1.143。n

ARP設置

查看ARP表

(不指定介面則顯示所有介面的ARP表)

ip neigh show [dev <介面名>] n

添加永久ARP條目

ip neigh add <IP地址> lladdr <以冒號分割的MAC地址> dev <介面名> nud permanentn

把動態ARP條目轉換為永久ARP條目(僅限已存在條目)

ip neigh change <IP地址> dev <介面名> nud permanentn

刪除ARP條目

ip neigh del <IP地址> dev <介面名>n

清空ARP表(不影響永久條目)

ip neigh flush alln

推薦閱讀:

最小化安裝OS
Linux 粉是怎樣煉成的?
linux g++以及build-essential 安裝問題?
Linux 性能診斷:負載評估
用R語言修改一個工具包,做並行計算上的優化應該怎麼入手?

TAG:Linux | Linux运维 | 计算机网络 |