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語言修改一個工具包,做並行計算上的優化應該怎麼入手?