別再傻傻地用 ifconfig 查地址了!這條命令足以讓你摘掉小白工程師的帽子

大家好,我是民工哥。

衆所周知,在 Linux 系統中,ip 和 ifconfig 這個兩命令的功能十分相似,ifconfig 是 net-tools 中已被棄用的一個命令,很多年前就已經沒有維護了。但是今天我們不討論與學習這個,來學習一個更強大的命令工具:iproute2。

別再用 ifconfig 啦!趕緊試試這個吧:iproute2 !

簡介

Iproute2 是一個在 Linux 下的高級網絡管理工具軟件。實際上,它是通過 rtnetlink sockets 方式動態配置內核的一些小工具組成的,從 Linux2.2 內核開始,Alexey Kuznetsov 實現了通過 rtnetlink sockets 用來配置網絡協議棧,它是一個現代的強大的接口。

Iproute2 之所以出現,是因爲,之前一直以來,互聯網上的一些不關聯的網絡工具都被打包進了 net-tools,隨着時間的推移,很多工具都已經沒有維護了。所以,才使用了新的名字 iproute2 來替代net-tools工具包。

目前iproute2工具包內的工具,它們使用方式都非常的相似,且統一開發維護,這樣也便於用戶靈活的運用工具包內的工具。

net-tools 和 iproute2 的對比

image

安裝與使用

安裝

centos 安裝 iproute2 命令

yum install -y iproute

image

[root@CentOS7-1 ~]# ip -Vip utility, iproute2-ss170501
常用命令及參數介紹
ip link  #網絡設備配置命令,如:啓用/禁用某個網絡設備,改變mtu及mac地址等
ip addr  #管理某個網絡設備與協議 (IP或IPv6) 有關的地址,與ip link類似
ip addrlabe  #IPV6的地址標籤,
ip route #管理路由· 如添加,刪除等
ip rule  #管理路由策略數據庫
ip neigh #用於neighbor/ARP表的管理
ip tunnel #隧道配置
ip maddr  #多播地址管理
ip mroute  #多播路由管理
ip monitor #狀態監控
ip xfrm  #配置xfrm 

使用

查看arp緩存表

image

iproute2的核心命令是ip命令,下面一起來看看具體的操作。

查看網絡接口信息
[root@CentOS7-1 ~]# ip link show 
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/ether 00:0c:29:25:62:6f brd ff:ff:ff:ff:ff:ff

上面是查看所有的網絡接口信息,也可以查看指定的接口信息:

[root@CentOS7-1 ~]# ip link show ens33
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/ether 00:0c:29:25:62:6f brd ff:ff:ff:ff:ff:ff
配置網絡接口

通過使用以下命令來打開或關閉網絡接口:

ip link set ens33 up
ip link set ens33 down

還可以使用 ip link 子命令來配置網絡接口的屬性。比如,如果你想打開或關閉網絡接口的多播標誌:

ip link set ens33 multicast on
ip link set ens33 multicast off

還可以通過下面的命令來修改 MTU 和分組隊列的長度:

ip link set ens33 mtu 1500
ip link set ens33 txqueuelen 1000
查看路由表

image

linux 系統中,可以自定義從 1-252個路由表,其中,linux系統維護了4個路由表:

0: #系統保留表
253: #defulte table 沒特別指定的默認路由都放在改表
254: #main table 沒指明路由表的所有路由放在該表,**默認表**
255: #locale table 保存本地接口地址,廣播地址、NAT地址 由系統維護,用戶不得更改

顯示所有路由

[root@CentOS71 ~]# ip route
default via 192.168.1.1 dev ens33 proto static metric 100 
192.168.1.0/24 dev ens33 proto kernel scope link src 192.168.1.100 metric 100

image

路由策略 ip rule

使用語法如下:

Usage: ip rule [ list | add | del ] SELECTOR ACTION 

查看規則

ip rule show

image

上圖所顯示內容的第一個字段就是優先級別(prio),數字越小,代表優先級別越高,也代表這條規則越靠前。比如:在進行對數據包條件匹配時,優先級高的就越早被匹配到。從輸出的數據中可以看出,默認優先級別 0、32766 及 32767 已被佔用。

所以,如果在添加規則時沒有特別指定prio優先,默認就是從32766開始向下遞減,也就是說從32765開始,如需指定,可以使用下面的命令:

ip rule add xxxxx  xxxx table xxxx prio 6666

添加規則,有兩種方法:

  • 根據源IP地址
ip rule add from 192.168.100.10 table 10  
ip rule add from 192.168.100.0/24 table 20 
  • 根據目標IP地址
ip rule add to 192.168.100.10 table 10  
ip rule add to 192.168.100.0/24 table 20 

ip route還可以結合iptables做高級路由策略,比如給數據包打上標記等等。

這個工具包的功能十分強大,有興趣的讀者可以自行體驗,也歡迎大家積極分享你在工作中所使用的好用、實用的工具、命令。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章