文档章节

过气的ifconfig 你还在用吗

大别阿郎
 大别阿郎
发布于 2018/11/30 20:52
字数 1210
阅读 98
收藏 0

1

今天看到有人说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-tool

Wikipedia上,把netstat也算作net-tools,也在过气之列。但权威的Linux基金会网站上没有netstat。查询netstat的帮助信息,也没有讲这个命令要obsolete。

2

iproute2,也称作iproute,是一个用户空间的工具集,可用来管理、监控Linux内核中的网络功能,包括路由、网络接口、通道、流量控制,以及网络相关的设备驱动等等。iproute2与Linux内核之间,通过netlink协议通信。
iproute2是一个开源项目,以GNU GPL 2许可发行。它的开发,紧跟Linux内核网络组件的步伐。2013年12月,其代码库由Stephen Hemminger来管理。原来的作者Alexey Kuznetsov在负责Linux内核质量管理(QoS)工作。
iproute2包括以下命令行工具:

  • ip
  • ss
  • bridge
  • rtacct
  • rtmon
  • tc (traffic control,流量控制)
  • ctstat
  • lnstat
  • nstat
  • routef
  • routel
  • rtstat
  • tipc
  • arpd
  • devlink

我现在还在使用ifconfig等命令。我们来试一试ip系列的命令:

  • ip addr/ ip a  #查看所有的网络设备
  • ip addr show eth0  #查看eth0的详细信息
  • ip route  #查看所有的路由
  • ip neigh #查看当前内核中记录的网络邻居,为ip neighbour的省略形式
  • ip link set eth0 up #启动网络接口eth0
  • ip link set br0 down #关闭网络接口br0
  • ip addr add 192.168.1.5 dev eth1  #为eth1添加ip地址
  • ip addr del 192.168.1.5/24 dev eth1 #删除eth1网卡的ip地址
  • ip route add 172.25.250.0/24 via 192.168.1.100 dev eth0 #添加固定路由
  • ip route del  172.25.250.0/24 #删除固定路由
  • ip route add default via 192.168.1.1  #添加缺省网关
  • ip route add default via 192.168.1.1  #删除固定网关

现在,也知道两组看似等效的命令之间有着很大的差别,以至于一个大红大紫,一个惨遭抛弃。这种差别具体又是什么?我也没有时间去深究。不过,要是你的工作跟这些相关,肯定会知道,在云计算等新兴的技术栈中,继续使用net-tools系列工具将不合时宜。必要的时候,还应该去阅读工具的源代码,以发现它们之间的区别。

3

意识到这个问题,我们应该尽可能不再发表跟哪些过气的命令相关的文章或博客,加速这些命令退出内核的步伐。那些拒不使用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

© 著作权归作者所有

大别阿郎
粉丝 8
博文 52
码字总数 33145
作品 0
广州
个人站长
私信 提问
雷布斯来西雅图了,小伙伴们快去求偶遇啊!

西雅图IT圈:seattleit 【今日作者】Dexter 读书巨慢理事会会长 最近,某��白宫过气网红来到了中国 虽然已经过气,但是来头很大 随便几秒钟握个手,收费就要25万 从现场图片来看—— 已经是...

m68futkmurmtj
2017/12/09
0
0
服务器网络配置出现问题

使用的是阿里的ECS,系统是centos6.5 之前因为苹果去搞IPV6,修改配置了之后,发现远程连不上了,用阿里的网页版连上之后,启动neetwork服务报了如下的错误 求教各位大神,这个ipv6是哪来的啊?.......

Hham
2017/03/02
63
0
CheungSSH国产自动化运维工具开源Web界面

CheungSSH web2.0 发布文档 CheungSSH简介 CheungSSH是一款中国人自主研发的Linux运维自动化管理服务器软件,是具有中国特设社会主义的IT自动化运维管理软件 CheungSSH优势 简单,不需要特定...

ttttdsads
2015/12/23
0
0
CheungSSH国产自动化运维工具开源Web界面

CheungSSH web2.0 发布文档 新版已经发布,请用3.0 CheungSSH简介 CheungSSH是一款中国人自主研发的Linux运维自动化管理服务器软件, CheungSSH优势 简单,不需要特定的语法,不需要学习,即...

ttttdsads
2015/08/14
0
0
CheungSSH运维自动化软件 批量管理上千台服务器

CheungSSH web2.0 发布文档 CheungSSH简介 CheungSSH是一款中国人自主研发的Linux运维自动化管理服务器软件,是具有中国特设社会主义的IT自动化运维管理软件 CheungSSH优势 简单,不需要特定...

ttttdsads
2015/10/27
0
0

没有更多内容

加载失败,请刷新页面

加载更多

c 基础教程六:c 循环结构

有的时候,我们可能需要多次执行同一块代码,c 语言提供了如下几种循环,各有特色。 while 循环 for 循环 do-while 循环 while 循环 只要给定的条件为真,C 语言中的 while 循环语句会重复执...

故城以南丶思念不安
22分钟前
4
0
spark 常见操作

为spark DataFrom 添加一个为 空的新列,使用UDF函数 想产生一个IntegerType类型列为null的DataFrame该怎么做。 import org.apache.spark.sql.functions._import org.apache.spark.sql.type...

蜉先生
33分钟前
2
0
Flutter for Web 详细预研

首先感谢@栖冰 @祖建国 一起对FFW的预研做的投入! 背景 Google在最新的Google I/O上推出了Flutter for Web,旨在进一步解决一次代码,多端运行的问题。Flutter for Web还处于早期试验版,官...

阿里云云栖社区
43分钟前
1
0
mongodb自动备份脚本

mongodb自动备份脚本 2019年04月08日 13:27:28 遗失的曾经! 阅读数 73 #!/bin/bash# 要备份的数据库名'多个数据库用空格分开# 备份文件要保存的目录basepath="/data/backup/dump$(da...

linjin200
44分钟前
1
0
如何使用pagehelper分页

<c:if test="${page != null && page.getTotal() > 0 }"> <nav style="text-align: center"><ul class="pagination pagination-lg"><li><a>共 ${page.total } 条记录</a></l......

南桥北木
53分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部