今天看到有人說ifconfig、route、arp等命令已通過氣了,我內心一驚。這些東西,我纔剛剛學會,咋能說過氣就過氣了呢?不成,我得看個究竟。
通過多方查找,在Debian的網站上,我還真找到net-tools做者Martin Ferrari的一封公開信,發佈於2009年3月15日。他信中說,net-tools不能支持Linux內核中的諸多現代功能,在自動化中應用起來很是困難。而另外一方面,自2007年以來,一直隨Linux 2.2版發行的iproute的功能已經完成覆蓋net-tools,且性能更優。特別是,net-tools中的ipmaddr中的代碼來自iproute中的ip maddr;iptunnel,則來自iproute中的ip tunnel。總的來講,他以爲有必要放棄net-tools,號召你們使用iproute。
在Linux CentOS 7裏,運行man route,就能看到,命令簡介下有一行字:
This program is obsolete. For replacement, check for ip route.(本程序已通過期,請使用ip route命令)
我一一查詢了ifconfig、ipmaddr、iptunnel、nameif、arp等命令,個個都是如此。兩組工具的對照表以下:
net-tools中被iproute2替代、過氣的工具對照表
1)地址及連接配置
ip addr, ip link, ip -s取代了ifconfig
2)查看路由表
ip route取代了route
3)查看網絡鄰居
ip neigh取代了arp
4)查看網絡通道
ip tunnel取代了iptunnel
5)網絡接口改名
ifrename, ip link set name取代了nameif
6)多播
ip maddr取代了ipmaddr
7)多種網絡統計數據
ip -s, ss, ip route取代了nestat
8)用mii與網卡自動協商工做狀態
ethtool取代了mii-toolhtml
Wikipedia上,把netstat也算做net-tools,也在過氣之列。但權威的Linux基金會網站上沒有netstat。查詢netstat的幫助信息,也沒有講這個命令要obsolete。linux
iproute2,也稱做iproute,是一個用戶空間的工具集,可用來管理、監控Linux內核中的網絡功能,包括路由、網絡接口、通道、流量控制,以及網絡相關的設備驅動等等。iproute2與Linux內核之間,經過netlink協議通訊。
iproute2是一個開源項目,以GNU GPL 2許可發行。它的開發,緊跟Linux內核網絡組件的步伐。2013年12月,其代碼庫由Stephen Hemminger來管理。原來的做者Alexey Kuznetsov在負責Linux內核質量管理(QoS)工做。
iproute2包括如下命令行工具:網絡
我如今還在使用ifconfig等命令。咱們來試一試ip系列的命令:工具
如今,也知道兩組看似等效的命令之間有着很大的差異,以致於一個大紅大紫,一個慘遭拋棄。這種差異具體又是什麼?我也沒有時間去深究。不過,要是你的工做跟這些相關,確定會知道,在雲計算等新興的技術棧中,繼續使用net-tools系列工具將不合時宜。必要的時候,還應該去閱讀工具的源代碼,以發現它們之間的區別。性能
意識到這個問題,咱們應該儘量再也不發表跟哪些過氣的命令相關的文章或博客,加速這些命令退出內核的步伐。那些拒不使用iproute之類新命令,仍然宣傳如net-tool這類過氣命令的人,是否是就成了技術領域內的保守力量?要知道,他們曾經也是很潮、很前衛的一羣人。
最後,我要說的是:我居然這麼落伍,這麼遲鈍。那封信早在2009年就已經公開,而我在9年以後的2018年纔讀到。看來,我也有點過氣了。網站
參考資料:
https://lists.debian.org/debian-devel/2009/03/msg00780.html
https://en.wikipedia.org/wiki/Iproute2
https://wiki.linuxfoundation.org/networking/net-tools
https://wiki.linuxfoundation.org/networking/iproute2
https://www.tecmint.com/ip-command-examples雲計算