16個配置網路介面的Linux ip命令示例
目錄- 安裝iproute rpm
- 1.使用ip命令顯示所有可用介面的IP地址
- 2.顯示單個介面的IP地址
- 3.根據介面型別列出介面
- 4.檢查網卡的鏈接狀態是啟用還是禁用
- 5.更改NIC的鏈接狀態
- 6.分配/添加IPv4和IPv6地址
- 7.取消分配/洗掉IPv4和IPv6地址
- 8.從各個介面取消分配/洗掉所有協議地址
- 9.顯示界面的詳細統計資訊
- 10.列出可用的路線
- 11.將默認路由添加到路由表
- 12.從路由表中洗掉默認路由
- 13.將其他路由添加到路由表
- 14.從路由表中洗掉其他路由
- 15.替換路由表中的現有路由
- 16.顯示地址將要走的路線
- 結論
ip是一個非常強大的實用程式,用于執行許多任務,較早使用了多個較早的實用程式,例如ifconfig和route命令來執行這些功能,在本文中,我將分享使用ip命令配置網路介面和路由的不同示例,
重要的提示:
使用ip命令執行的所有更改僅適用于當前會話,并且不會永久重啟,
安裝iproute rpm
默認情況iproute 下,RHEL / CentOS Linux的所有變體上都安裝了rpm,您也可以ip在急救目標中找到二進制命令,
注意:
# yum -y install iproute
絕對路徑是 /usr/sbin/ip
# which ip
/usr/sbin/ip
1.使用ip命令顯示所有可用介面的IP地址
使用ip addr show顯示你的Linux系統上的所有可用網路介面的IP地址
[root@localhost network-scripts]# ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: em3: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN qlen 1000
link/ether 24:6e:96:87:68:24 brd ff:ff:ff:ff:ff:ff
3: em4: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN qlen 1000
link/ether 24:6e:96:87:68:25 brd ff:ff:ff:ff:ff:ff
4: em1: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc mq master bond0 state UP qlen 1000
link/ether 24:6e:96:87:68:20 brd ff:ff:ff:ff:ff:ff
5: em2: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc mq master bond0 state UP qlen 1000
link/ether 24:6e:96:87:68:20 brd ff:ff:ff:ff:ff:ff
6: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP qlen 1000
link/ether 24:6e:96:87:68:20 brd ff:ff:ff:ff:ff:ff
inet 192.168.83.176/25 brd 192.168.83.255 scope global noprefixroute bond0
valid_lft forever preferred_lft forever
inet6 fe80::266e:96ff:fe87:6820/64 scope link
valid_lft forever preferred_lft forever
[root@localhost network-scripts]#
在這里,我有三個介面(包括回送介面),其中我們可以檢查單個介面的IP地址,如上面突出顯示的那樣,
2.顯示單個介面的IP地址
您可以將“ dev”引數與“ ip addr show”一起使用,以僅顯示所提供介面的資訊,在這里,我們僅顯示enp0s9介面的IP地址詳細資訊,
[root@localhost network-scripts]# ip addr show dev bond0
6: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP qlen 1000
link/ether 24:6e:96:87:68:20 brd ff:ff:ff:ff:ff:ff
inet 192.168.83.176/25 brd 192.168.83.255 scope global noprefixroute bond0
valid_lft forever preferred_lft forever
inet6 fe80::266e:96ff:fe87:6820/64 scope link
valid_lft forever preferred_lft forever
[root@localhost network-scripts]# ip addr show dev em1
'4: em1: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc mq master bond0 state UP qlen 1000
link/ether 24:6e:96:87:68:20 brd ff:ff:ff:ff:ff:ff
[root@localhost network-scripts]#
3.根據介面型別列出介面
Linux系統上可以使用各種型別的NIC,例如vlan,bond,bridge,vxlan等,
現在僅列出系統上的網橋介面:
[root@kvm-d-006188 ~]# ip addr show type bridge
5: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP qlen 1000
link/ether b0:83:fe:bf:c1:38 brd ff:ff:ff:ff:ff:ff
inet 192.168.6.188/24 brd 192.168.6.255 scope global noprefixroute br0
valid_lft forever preferred_lft forever
inet6 fe80::1088:e7ff:fe3d:bf26/64 scope link
valid_lft forever preferred_lft forever
[root@kvm-d-006188 ~]#
從系統列出系結介面
[root@kvm-d-006188 ~]# ip addr show type bond
4: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue master br0 state UP qlen 1000
link/ether b0:83:fe:bf:c1:38 brd ff:ff:ff:ff:ff:ff
[root@kvm-d-006188 ~]#
4.檢查網卡的鏈接狀態是啟用還是禁用
“ ip link”將管理和顯示所有網路介面的狀態,顯示所有介面的當前狀態
[root@kvm-d-006188 ~]# ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: em1: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc mq master bond0 state UP mode DEFAULT qlen 1000
link/ether b0:83:fe:bf:c1:38 brd ff:ff:ff:ff:ff:ff
3: em2: <NO-CARRIER,BROADCAST,MULTICAST,SLAVE,UP> mtu 1500 qdisc mq master bond0 state DOWN mode DEFAULT qlen 1000
link/ether b0:83:fe:bf:c1:38 brd ff:ff:ff:ff:ff:ff
4: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue master br0 state UP mode DEFAULT qlen 1000
link/ether b0:83:fe:bf:c1:38 brd ff:ff:ff:ff:ff:ff
5: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT qlen 1000
link/ether b0:83:fe:bf:c1:38 brd ff:ff:ff:ff:ff:ff
14: vnet8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br0 state UNKNOWN mode DEFAULT qlen 1000
link/ether fe:54:00:ce:a0:4a brd ff:ff:ff:ff:ff:ff
18: vnet0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br0 state UNKNOWN mode DEFAULT qlen 1000
link/ether fe:54:00:24:6d:13 brd ff:ff:ff:ff:ff:ff
21: vnet1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br0 state UNKNOWN mode DEFAULT qlen 1000
link/ether fe:54:00:7e:97:a9 brd ff:ff:ff:ff:ff:ff
[root@kvm-d-006188 ~]#
檢查單個介面的鏈接狀態
[root@localhost network-scripts]# ip link show dev em1
4: em1: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc mq master bond0 state UP mode DEFAULT qlen 1000
link/ether 24:6e:96:87:68:20 brd ff:ff:ff:ff:ff:ff
[root@localhost network-scripts]#
5.更改NIC的鏈接狀態
由于我們的NIC介面已經處于啟用狀態,因此讓我們關閉em2介面的鏈接狀態
[root@localhost network-scripts]# ip link set em2 down
再次檢查鏈接狀態 em2
[root@localhost network-scripts]# ip link show dev em2
5: em2: <BROADCAST,MULTICAST,SLAVE> mtu 1500 qdisc mq master bond0 state DOWN mode DEFAULT qlen 1000
link/ether 24:6e:96:87:68:20 brd ff:ff:ff:ff:ff:ff
[root@localhost network-scripts]#
現在,由于它處于DOWN狀態,讓我們將其鏈接狀態更改為em2UP
[root@localhost network-scripts]# ip link set em2 up
再次檢查鏈接狀態 enp0s9
[root@localhost network-scripts]# ip link show dev em2
5: em2: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc mq master bond0 state UP mode DEFAULT qlen 1000
link/ether 24:6e:96:87:68:20 brd ff:ff:ff:ff:ff:ff
注意:
“ ip link set ifname command”將網路介面設定為IFF_UP狀態,并從內核范圍啟用它,這與ifup ifname初始化腳本命令或設備的NetworkManager激活狀態不同,實際上,即使當前斷開連接,NetworkManager也會始終設定介面,
6.分配/添加IPv4和IPv6地址
要使用分配IPV4地址,可以使用“ ip addr add”,為了演示此步驟,我已經從enp0s9介面臨時取消分配/洗掉了IP地址,
#ip addr add 192.168.56.101/24 dev em2
要使用ip命令分配IPv4地址,您將需要netmask前綴值,在我看來這是“ 24”,您可以[計算該前綴值],也可以使用其他在線網路計算器來幫助您根據網路掩碼獲取前綴值,
檢查為em2介面分配的IPv4地址
[root@localhost network-scripts]# ip addr show em2
5: em2: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc mq master bond0 state UP qlen 1000
link/ether 24:6e:96:87:68:20 brd ff:ff:ff:ff:ff:ff
[root@localhost network-scripts]#
要使用ip命令分配IPv6地址,您可以使用與IPv4地址相同的命令,但要使用IPv6地址和 netmask
#ip addr add 2001:0001:0001:1443::0411/122 dev em2
驗證分配給提供的介面的IPv6地址
#ip addr show em2
7.取消分配/洗掉IPv4和IPv6地址
您可以使用“ ip addr del”引數從介面取消分配或洗掉分配的IP地址,在這里,您必須提供確切的IP地址以及前綴值才能取消分配IP地址,
#ip add del 192.168.56.101/24 dev em2
檢查并驗證是否已從提供的介面成功取消分配IP地址
#ip addr show em2
您可以使用與上述IPv4地址相同的命令取消分配或洗掉單個介面的IPv6地址,
#ip addr del 2001:0001:0001:1443::0411/122 dev em2
接下來,檢查介面的IPv6地址,以確保未從提供的介面中分配它
#ip addr show em2
8.從各個介面取消分配/洗掉所有協議地址
通過使用“ ip addr del”,我們僅洗掉分配給相應介面的提供的地址,但是,如果要洗掉分配給單個介面的所有協議地址,則必須使用flush
#ip addr flush dev em2
接下來檢查界面細節
#ip addr show dev enp0s9
如您所見,IPv4和IPv6地址均被洗掉,
9.顯示界面的詳細統計資訊
要使用“ -s”引數獲取有關單個介面的資料包統計資訊的更多詳細資訊
#ip -s link show dev nm-bridge1
如果該"-s"選項出現兩次或更多次,則資訊量會增加,
#ip -s -s link show dev nm-bridge1
10.列出可用的路線
列出Linux系統上所有可用的路由
[root@kvm-d-006188 ~]# ip route list
default via 192.168.6.1 dev br0 proto static metric 425
192.168.6.0/24 dev br0 proto kernel scope link src 192.168.6.188 metric 425
[root@kvm-d-006188 ~]#
[root@kvm-d-006188 ~]#
您也可以使用“ ip route”或“ ip route show”獲取路由表中的可用路由串列
11.將默認路由添加到路由表
要添加默認路由(在路由表中添加條目),請使用“ ip route add default”
#ip route add default via 192.168.0.1 dev em2
驗證路由表中可用的默認路由
# ip route list
default via 192.168.0.1 dev enp0s8
default via 192.168.6.1 dev br0 proto static metric 425
192.168.6.0/24 dev br0 proto kernel scope link src 192.168.6.188 metric 425
注意:
在這里,在重新運行命令以添加默認路由之前,我已手動洗掉了現有路由,如果您嘗試再次重新添加相同的路由,則該命令將失敗,并顯示錯誤“ RTNETLINK answers: File exists”
與其他路由一樣,為默認路由添加更多詳細資訊
ip route add default via 192.168.0.1 dev em2 proto static metric 101
使用ip命令再次驗證默認路由
# ip route list
default via 192.168.0.1 dev em2 proto static metric 101
12.從路由表中洗掉默認路由
要洗掉默認路由,請使用“ add”,而不要使用“ delete”,現在,這里我有兩個默認路由,在這里我想與要洗掉的路由10.0.2.2的enp0s3介面
#ip route list
default via 192.168.0.1 dev em2 proto static metric 101
洗掉默認路由
ip route delete default via 10.0.2.2
您也可以使用介面名稱洗掉默認路由,以洗掉映射到提供的介面的所有默認路由
#ip route delete default dev em2
13.將其他路由添加到路由表
現在,在添加默認路由之后,您還可以將其他路由添加到路由表中,在這里,我們將通過路由192.168.0.1添加到192.168.168.0/24的路由
ip route add 192.168.168.0/24 via 192.168.0.1 dev em2
驗證路由表中的可用路由
# ip route list
192.168.168.0/24 via 192.168.0.1 dev em2
14.從路由表中洗掉其他路由
在這里,我們通過192.168.0.1為192.168.168.0/24添加了一條新路由,因此我們將嘗試在此處洗掉相同的內容
ip route delete 192.168.168.0/24 via 192.168.0.1
再次驗證路由串列
# ip route list
default via 192.168.0.1 dev em2 proto static metric 101
15.替換路由表中的現有路由
我們還可以從路由表中的現有路由替換某些指令,在最后一個示例中,我們通過192.168.0.1添加了路由192.168.168.0/24,因此我們將通過另一個介面(enp0s3)通過10.0.2.2網關將其更改為192.168.168.0/24
我現有的路線清單
# ip route list
替換路線值
ip route replace 192.168.168.0/24 via 10.0.2.2 dev em2
驗證新路線串列
#ip route list
192.168.168.0/24 via 10.0.2.2 dev em2
16.顯示地址將要走的路線
現在我們已經添加了所有路由,但是我們想知道Linux系統上任何地址將采用的路由
知道192.168.168.10地址將使用的路由
# ip route get 192.168.168.10
192.168.168.10 via 10.0.2.2 dev enp0s3 src 10.0.2.20 uid 0
cache
知道192.168.0.10地址將使用的路由
# ip route get 192.168.0.10
192.168.0.10 dev enp0s8 src 192.168.0.115 uid 0
cache
結論
Linux ip命令是Linux管理員非常方便的工具,此工具的唯一缺點是更改是非持久性的,這意味著重新啟動后將無法生存,但是在許多情況下,例如在救援模式下或為了驗證臨時網路更改,我們可以使用此工具創建網路并將其分配給介面,
最后,我希望本文使用其他ip命令示例在Linux上執行網路相關活動(備忘單)有所幫助,因此,請在“評論”部分告訴我您的建議和反饋,
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/233743.html
標籤:Linux
上一篇:學習pid行程以及fork()
