centos8平台使用ip命令代替ifconfig管理網絡


一,為什么建議使用ip命令代替ifconfig?

1,ifconfig所屬的net-tools包已經不再被維護了

     雖然可以用,但會發生看不到部分ip等情況,

[root@centos8 liuhongdi]# whereis ifconfig
ifconfig: /usr/sbin/ifconfig /usr/share/man/man8/ifconfig.8.gz

[root@centos8 liuhongdi]# rpm -qf /usr/sbin/ifconfig 
net-tools-2.0-0.51.20160912git.el8.x86_64

 

2,ip命令屬於iproute這個包,是linux重點推薦的命令

大家過去用ifconfig成習慣的,還是要轉到ip這個命令上來

[root@centos8 liuhongdi]# whereis ip
ip: /usr/sbin/ip /usr/share/man/man7/ip.7.gz /usr/share/man/man8/ip.8.gz

[root@centos8 liuhongdi]# rpm -qf /usr/sbin/ip
iproute-4.18.0-15.el8.x86_64

 

如果找不到ip命令,可以用dnf安裝

[root@centos8 liuhongdi]# dnf install iproute

 

3,ip命令的操作並未寫入到磁盤中,當服務器重啟時,這些配置會丟失,

     所以大家如果是需要永久性保存的配置,建議使用nmcli做配置

     請移動這一篇:

https://www.cnblogs.com/architectforest/p/12612562.html

 

說明:劉宏締的架構森林是一個專注架構的博客,地址:https://www.cnblogs.com/architectforest

         對應的源碼可以訪問這里獲取: https://github.com/liuhongdi/

 說明:作者:劉宏締 郵箱: 371125307@qq.com

 

二,查看ip命令的版本和幫助:

1,查看版本

[root@centos8 liuhongdi]# ip -V
ip utility, iproute2-ss180813

2,查看幫助:

[root@centos8 liuhongdi]# ip -help 

3,查看手冊

[root@centos8 liuhongdi]# man ip

 

三,ip命令之link(網絡設備)管理

link指network device,網絡設備

1,列出所有的link

[root@centos8 liuhongdi]# ip link

2,只看指定的link設備

[root@centos8 liuhongdi]# ip link show ens33
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
    link/ether 00:0c:29:bb:c5:a6 brd ff:ff:ff:ff:ff:ff

 

3,查看指定link設備的收發包統計信息

# -s: 顯示statistics

[root@centos8 liuhongdi]# ip -s link show ens33
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
    link/ether 00:0c:29:bb:c5:a6 brd ff:ff:ff:ff:ff:ff
    RX: bytes  packets  errors  dropped overrun mcast   
    11593445   60054    0       0       0       0       
    TX: bytes  packets  errors  dropped carrier collsns 
    164314     2331     0       0       0       0 

 

4,只顯示當前激活的網絡設備

[root@centos8 liuhongdi]# ip link show up

 

5,停用一個網絡設備

[root@centos8 liuhongdi]# ip link set ens33 down
[root@centos8 liuhongdi]# ip link show ens33
2: ens33: <BROADCAST,MULTICAST> mtu 1500 qdisc fq_codel state DOWN mode DEFAULT group default qlen 1000
    link/ether 00:0c:29:bb:c5:a6 brd ff:ff:ff:ff:ff:ff

注意 state是 DOWN

 

6,啟用一個網絡設備

[root@centos8 liuhongdi]# ip link set ens33 up
[root@centos8 liuhongdi]# ip link show ens33
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
    link/ether 00:0c:29:bb:c5:a6 brd ff:ff:ff:ff:ff:ff

注意 state已恢復為UP

 

7,查看針對link可以做的操作:

[root@centos8 liuhongdi]# ip link set help

可以做的操作很多

比較常用的應該是修改mtu

 

8,關閉打開link的多播(multicast)功能:

[root@centos8 liuhongdi]# ip link set ens33 multicast off
[root@centos8 liuhongdi]# ip link show ens33
2: ens33: <BROADCAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
    link/ether 00:0c:29:bb:c5:a6 brd ff:ff:ff:ff:ff:ff

可以看到MULTICAST已經被關閉了

 

[root@centos8 liuhongdi]# ip link set ens33 multicast on
[root@centos8 liuhongdi]# ip link show ens33
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
    link/ether 00:0c:29:bb:c5:a6 brd ff:ff:ff:ff:ff:ff

可以看到MULTICAST已經被再次打開

 

9,配置link的mtu的大小

[root@centos8 liuhongdi]# ip link set ens33 mtu 1000
[root@centos8 liuhongdi]# ip link show ens33
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1000 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
    link/ether 00:0c:29:bb:c5:a6 brd ff:ff:ff:ff:ff:ff

可以看到mtu已經被改成了1000

 

[root@centos8 liuhongdi]# ip link set ens33 mtu 1500
[root@centos8 liuhongdi]# ip link show ens33
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
    link/ether 00:0c:29:bb:c5:a6 brd ff:ff:ff:ff:ff:ff

可以看到mtu已經被改回了1500

 

說明:什么是mtu?

Maximum Transmission Unit 最大傳輸單元,就是數據包封包的最大值,

超過這個值就需要拆分成多個包發送

mtu過大或過小有什么影響?

1、本地MTU值大於網絡MTU值時,本地傳輸的數據包過大導致網絡會拆包后傳輸,不但產生額外的數據包,而且消耗了“拆包、組包”的時間。

2、本地MTU值小於網絡MTU值時,本地傳輸的數據包可以直接傳輸,但是未能完全利用網絡給予的數據包傳輸尺寸的上限值,傳輸能力不能完全發揮

可見過大或過小會帶來網絡的不穩定(丟包)或網速過慢

 

 建議:就使用默認值1500就很安全,當網絡有不正常現象時,

我們可以查看mtu是否被人為修改過以致產生網絡異常

 

10,修改link的名字

說明:網卡運行時不能改名:

[root@centos8 liuhongdi]# ip link set ens33 name ens33link
RTNETLINK answers: Device or resource busy

先停用

[root@centos8 liuhongdi]# ip link set ens33 down
[root@centos8 liuhongdi]# ip link set ens33 name ens33link

改名完成后再激活

[root@centos8 liuhongdi]# ip link set ens33link up
[root@centos8 liuhongdi]# ip link show ens33link
2: ens33link: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
    link/ether 00:0c:29:bb:c5:a6 brd ff:ff:ff:ff:ff:ff

 

11,修改link的mac地址:

[root@centos8 liuhongdi]# ip link show ens33link
2: ens33link: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
    link/ether 00:0c:29:bb:c5:a6 brd ff:ff:ff:ff:ff:ff

 

可以看到 mac地址是:00:0c:29:bb:c5:a6

[root@centos8 liuhongdi]# ip link set ens33link down
[root@centos8 liuhongdi]# ip link set ens33link address 00:0c:29:bb:c5:a7

[root@centos8 liuhongdi]# ip link set ens33link up
[root@centos8 liuhongdi]# ip link show ens33link 
2: ens33link: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
    link/ether 00:0c:29:bb:c5:a7 brd ff:ff:ff:ff:ff:ff

說明:可以看到網卡地址已被修改成了00:0c:29:bb:c5:a7

 

四,ip命令之address(ip地址)管理

1,查看所有的ip地址:

# a,address,addr: 都是ip地址

[liuhongdi@centos8 ~]$ ip a

 

2,查看指定設備的ip

[root@centos8 liuhongdi]# ip a show ens33
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:0c:29:bb:c5:a6 brd ff:ff:ff:ff:ff:ff
    inet 192.168.3.14/24 brd 192.168.3.255 scope global dynamic noprefixroute ens33
       valid_lft 83751sec preferred_lft 83751sec
    inet 192.168.3.13/24 brd 192.168.3.255 scope global secondary noprefixroute ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::2785:9624:cea4:c935/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

 

3,分別查看設備的ipv4地址和ipv6地址

#-4 :顯示ipv4地址

[root@centos8 liuhongdi]# ip -4 a show ens33
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    inet 192.168.3.35/24 brd 192.168.3.255 scope global dynamic noprefixroute ens33
       valid_lft 85737sec preferred_lft 85737sec
    inet 192.168.3.13/24 brd 192.168.3.255 scope global secondary noprefixroute ens33
       valid_lft forever preferred_lft forever

 

#-6 :顯示ipv6地址

[root@centos8 liuhongdi]# ip -6 a show ens33
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP qlen 1000
    inet6 fe80::2785:9624:cea4:c935/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

 

4,添加ip

[root@centos8 liuhongdi]# ip a add 192.168.5.15/24 dev ens33link 
[root@centos8 liuhongdi]# ip a show ens33link 
2: ens33link: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:0c:29:bb:c5:a7 brd ff:ff:ff:ff:ff:ff
    inet 192.168.3.37/24 brd 192.168.3.255 scope global dynamic noprefixroute ens33link
       valid_lft 85844sec preferred_lft 85844sec
    inet 192.168.5.15/24 scope global ens33link
       valid_lft forever preferred_lft forever
    inet 192.168.3.13/24 brd 192.168.3.255 scope global secondary noprefixroute ens33link
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:febb:c5a7/64 scope link 
       valid_lft forever preferred_lft forever

可以看到ip已添加成功

 

5,刪除ip

[root@centos8 liuhongdi]# ip a show ens33
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:0c:29:bb:c5:a6 brd ff:ff:ff:ff:ff:ff
    inet 192.168.5.8/24 brd 192.168.5.255 scope global noprefixroute ens33
       valid_lft forever preferred_lft forever
    inet 192.168.3.35/24 brd 192.168.3.255 scope global dynamic noprefixroute ens33
       valid_lft 86144sec preferred_lft 86144sec
    inet 192.168.3.13/24 brd 192.168.3.255 scope global secondary noprefixroute ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::2785:9624:cea4:c935/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

192.168.5.8/24是我們要刪除的ip

[root@centos8 liuhongdi]# ip a del 192.168.5.8/24 dev ens33 
[root@centos8 liuhongdi]# ip a show ens33
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:0c:29:bb:c5:a6 brd ff:ff:ff:ff:ff:ff
    inet 192.168.3.35/24 brd 192.168.3.255 scope global dynamic noprefixroute ens33
       valid_lft 86019sec preferred_lft 86019sec
    inet 192.168.3.13/24 brd 192.168.3.255 scope global secondary noprefixroute ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::2785:9624:cea4:c935/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

刪除成功了

 

6,清除ip:指定ip

#flush: 清除ip

[root@centos8 liuhongdi]# ip a add 192.168.5.15/24 dev ens33
[root@centos8 liuhongdi]# ip a ls dev ens33
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:0c:29:bb:c5:a6 brd ff:ff:ff:ff:ff:ff
    inet 192.168.3.35/24 brd 192.168.3.255 scope global dynamic noprefixroute ens33
       valid_lft 80454sec preferred_lft 80454sec
    inet 192.168.5.15/24 scope global ens33
       valid_lft forever preferred_lft forever
    inet 192.168.3.13/24 brd 192.168.3.255 scope global secondary noprefixroute ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::2785:9624:cea4:c935/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

[root@centos8 liuhongdi]# ip a flush to 192.168.5.15/24
[root@centos8 liuhongdi]# ip a ls dev ens33
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:0c:29:bb:c5:a6 brd ff:ff:ff:ff:ff:ff
    inet 192.168.3.35/24 brd 192.168.3.255 scope global dynamic noprefixroute ens33
       valid_lft 80398sec preferred_lft 80398sec
    inet 192.168.3.13/24 brd 192.168.3.255 scope global secondary noprefixroute ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::2785:9624:cea4:c935/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

 

7,清除ip: 指定設備:

[root@centos8 liuhongdi]# ip a flush dev ens33
[root@centos8 liuhongdi]# ip a ls dev ens33
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 00:0c:29:bb:c5:a6 brd ff:ff:ff:ff:ff:ff

可見ens33這個設備上已經沒有ip了

 

五, ip命令使用例子之route管理

1,查看路由表

#ip r 等於 ip route,查看路由

[root@centos8 liuhongdi]# ip r
default via 192.168.3.1 dev ens33 proto static metric 100 
192.168.3.0/24 dev ens33 proto kernel scope link src 192.168.3.13 metric 100 
192.168.3.0/24 dev ens33 proto kernel scope link src 192.168.3.14 metric 100 
192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1 linkdown 

 

2,添加默認路由

[root@centos8 liuhongdi]# ip route add default via 192.168.5.2 dev ens33
[root@centos8 liuhongdi]# ip r
default via 192.168.5.2 dev ens33 
default via 192.168.3.1 dev ens33 proto static metric 100 
192.168.3.0/24 dev ens33 proto kernel scope link src 192.168.3.13 metric 100 
192.168.3.0/24 dev ens33 proto kernel scope link src 192.168.3.35 metric 100 
192.168.5.0/24 dev ens33 proto kernel scope link src 192.168.5.8 metric 100 
192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1 linkdown 

 

3,刪除默認路由

[root@centos8 liuhongdi]# ip route del default via 192.168.5.2 dev ens33
[root@centos8 liuhongdi]# ip r
default via 192.168.3.1 dev ens33 proto static metric 100 
192.168.3.0/24 dev ens33 proto kernel scope link src 192.168.3.13 metric 100 
192.168.3.0/24 dev ens33 proto kernel scope link src 192.168.3.35 metric 100 
192.168.5.0/24 dev ens33 proto kernel scope link src 192.168.5.8 metric 100 
192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1 linkdown 

 

4,修改默認路由

[root@centos8 liuhongdi]# ip route add default via 192.168.5.2 dev ens33
[root@centos8 liuhongdi]# ip r
default via 192.168.5.2 dev ens33 
default via 192.168.3.1 dev ens33 proto static metric 100 
192.168.3.0/24 dev ens33 proto kernel scope link src 192.168.3.13 metric 100 
192.168.3.0/24 dev ens33 proto kernel scope link src 192.168.3.35 metric 100 
192.168.5.0/24 dev ens33 proto kernel scope link src 192.168.5.8 metric 100 
192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1 linkdown 
[root@centos8 liuhongdi]# ip route replace default via 192.168.5.4 dev ens33
[root@centos8 liuhongdi]# ip r
default via 192.168.5.4 dev ens33 
default via 192.168.3.1 dev ens33 proto static metric 100 
192.168.3.0/24 dev ens33 proto kernel scope link src 192.168.3.13 metric 100 
192.168.3.0/24 dev ens33 proto kernel scope link src 192.168.3.35 metric 100 
192.168.5.0/24 dev ens33 proto kernel scope link src 192.168.5.8 metric 100 
192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1 linkdown 

 

5,設置到網絡49.7.40/24的路由經過網關192.168.5.8

[root@centos8 liuhongdi]# ip route add 49.7.40/24 via 192.168.5.8
[root@centos8 liuhongdi]# ip r
default via 192.168.3.1 dev ens33 proto static metric 100 
49.7.40.0/24 via 192.168.5.8 dev ens33

 

6,從路由表中刪除一條記錄:

[root@centos8 liuhongdi]# ip route del 49.7.40.0/24 via 192.168.5.8 dev ens33

 

六,ip命令使用例子之統計信息

# -s :統計信息

[root@centos8 liuhongdi]# ip -s link ls ens33
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
    link/ether 00:0c:29:bb:c5:a6 brd ff:ff:ff:ff:ff:ff
    RX: bytes  packets  errors  dropped overrun mcast   
    3635277    17405    0       0       0       0       
    TX: bytes  packets  errors  dropped carrier collsns 
    24862      301      0       0       0       0   

 

# -s -s :統計信息,增加了 tx rx的錯誤信息    

[root@centos8 liuhongdi]# ip -s -s link ls ens33
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
    link/ether 00:0c:29:bb:c5:a6 brd ff:ff:ff:ff:ff:ff
    RX: bytes  packets  errors  dropped overrun mcast   
    3638862    17421    0       0       0       0       
    RX errors: length   crc     frame   fifo    missed
               0        0       0       0       0       
    TX: bytes  packets  errors  dropped carrier collsns 
    24862      301      0       0       0       0       
    TX errors: aborted  fifo   window heartbeat transns
               0        0       0       0       2 

 

七, ip命令使用例子之arp

1,查看mac地址的arp表

[root@centos8 liuhongdi]# ip neigh 
192.168.3.1 dev ens33 lladdr fc:94:35:07:73:77 STALE
192.168.5.4 dev ens33  FAILED

 

2,添加一個mac和ip的對應項

[root@centos8 liuhongdi]# ip neigh add 192.168.1.100 lladdr 00:0c:29:c0:5a:ef dev ens33
[root@centos8 liuhongdi]# ip neigh 
192.168.3.1 dev ens33 lladdr fc:94:35:07:73:77 STALE
192.168.1.100 dev ens33 lladdr 00:0c:29:c0:5a:ef PERMANENT
192.168.5.4 dev ens33  FAILED

添加已成功

 

3,刪除一個mac和ip的對應項

[root@centos8 liuhongdi]# ip neigh del 192.168.1.100 lladdr 00:0c:29:c0:5a:ef dev ens33
[root@centos8 liuhongdi]# ip neigh 
192.168.3.1 dev ens33 lladdr fc:94:35:07:73:77 STALE
192.168.5.4 dev ens33  FAILED

刪除成功

 

 八,查看centos版本

[root@centos8 conf]# cat /etc/redhat-release 
CentOS Linux release 8.1.1911 (Core) 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM