别再傻傻地用 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 的對比
安裝與使用
安裝
centos 安裝 iproute2 命令
yum?install?-y?iproute
[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緩存表
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
查看路由表
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
路由策略 ip rule
使用語法如下:
Usage:?ip?rule?[?list?|?add?|?del?]?SELECTOR?ACTION?
查看規則
ip?rule?show
上圖所顯示內容的第一個字段就是優先級別(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做高級路由策略,比如給數據包打上標記等等。
這個工具包的功能十分強大,有興趣的讀者可以自行體驗,也歡迎大家積極分享你在工作中所使用的好用、實用的工具、命令。
總結
以上是生活随笔為你收集整理的别再傻傻地用 ifconfig 查地址了!这条命令足以让你摘掉小白工程师的帽子的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 记一次 .NET某收银软件 非托管泄露分
- 下一篇: Prometheus 与 Victori