在安装Infiniband卡的服务器上,当我使用ifconfig命令时,会收到以下警告:

Ifconfig uses the ioctl access method to get the full address 
information, which limits hardware addresses to 8 bytes.
Because Infiniband address has 20 bytes, only the first 8 bytes 
are displayed correctly.
Ifconfig is obsolete! For replacement check ip.


我应该使用ifconfig退出吗?不赞成使用ip命令吗?还是会在不久的将来进行更新?



注意:此问题和解答与GNU / Linux的“主要”发行版有关。不应假定该信息适用于所有发行版,尤其不适用于其他操作系统。



评论

切换越早越好。我花了几个月的时间来替换ifconfig的肌肉内存。它的确使Windows上的操作更加有趣。 “ ip add-no,等等,不是,ifcon-NO,argh ipconfig”

也许别名会有所帮助:别名ipconfig ='echo ipconfig已过时,请改用ip'。当然,您设置了更多有意义的别名。

ifconfig已弃用?我一定是住在山洞里

我很好奇一个名为“ ip”的命令具有执行链接级操作的能力。

仅在某些操作系统上不推荐使用。如果您在Linux之外使用东西,我相信ifconfig仍在使用。例如,我在FreeBSD上没有看到这样的警告。

#1 楼

引用Thomas Pircher的网站(cc-by-sa):

ifconfig vs ip

命令/bin/ip已经存在了一段时间。但是人们继续使用旧命令/sbin/ifconfig。我们要清楚一点:ifconfig不会很快消失,但是它的更新版本ip会更强大,并且最终会取代它。熟悉命令语法,很容易阅读。该页面不会介绍ip的新功能。相反,它具有ipifconfig的并排比较,以快速概览命令语法。

显示网络设备和配置

ifconfig

ip addr show
ip link show


启用网络接口

ifconfig eth0 up
ip link set eth0 up


以类似方式禁用网络接口:

ifconfig eth0 down
ip link set eth0 down


评论


有趣的是,您提到的ip命令在每种使用情况下都更长且更复杂。可能是人们仍然使用ifconfig的主要原因

–TheLQ
2012-12-18 18:20

@TheLQ:ip提供了更多的功能。当然,它更复杂。无论如何,许多命令都可以缩短。例如可以将ip addr show缩短为ip a,将ip link show缩短为ip l,将ip link设置为eth0到ip l设置为eth0等等。这使ip与ifconfig相提并论。

–BatchyX
2012年12月18日19:32

请记住,整个世界都不是Linux机器。 Solaris,AIX,HP-UX,所有BSD和SCO(并非所有人都在乎)都使用ifconfig。如果您想成为unix管理员(而不仅仅是Linux管理员),则应确保您至少熟悉ifconfig及其基本语法...

–voretaq7
2012-12-19 18:17



您的第一个示例回答了它。为什么在执行1条命令时运行2条命令?

– ott--
13年4月30日在18:21

@ott ip addr show几乎包括ip link show的输出。

–nyuszika7h
2014年11月20日18:57

#2 楼

是的,在Linux上不建议使用ifconfig,而推荐使用iproute2(ip命令)。

同样,arproutenetstat命令也已弃用。

但是,iproute2是Linux特定的,当其他一些Unix使用ifconfig时,因此如果您要使用另一个Unix,则可能有助于了解/记住它的工作原理。

要学习“新方法”,建议您看一下这3个链接:



iproute2:ifconfig之后的生活(基础知识,来自poumpoumk的回答),

已弃用的Linux网络命令及其替换(详细信息),

为什么ifconfig很烂(以及运行时如何使用ip)。

根据最后一个链接,ifconfig已有超过15年没有被维护:


除了Debian积累的补丁数量之外,net-tools
软件包没有看到版本1.60之后的任何上游开发,
大约在2001年4月15日发布。


评论


ifconfig由BSD于早些时候开发。 Linux本质上使用了BSD的IP堆栈(与Windows和其他时间一样,为什么ipconfig仍然与ifconfig相似)。从2001年初开始,在2.4内核Linux开始与BSD堆栈大相径庭。从那时起,Linux中的ifconfig一直没有得到很好的维护,这并非偶然。

–克里斯S
13年4月30日在18:02

10年!?我想是时候在GitHub上启动“保存ifconfig”项目了。

– kenchilada
13年5月1日14:46

#3 楼

ifconfig已过时多年,该切换的时间了,尤其是在像您这样的情况下。

评论


我也喜欢它的cisco-esque命令缩写。 “ ip a” =“ IP地址显示”

–勺子
2012年12月17日在11:15

嗯在ifconfig之上构建了足够多的脚本和其他工具,我觉得直到它消失后才需要切换...

–杰森·安特曼(Jason Antman)
2012年12月17日在19:55

我从未听说过ip。我刚刚在FreeBSD服务器上对其进行了测试,并显示ip:找不到命令。也许ifconfig仅在Linux上被弃用。

–ctype.h
2012-12-18 18:25

@ ctype.h:确实,仅在linux上不推荐使用。 ifconfig的发行版针对Linux,其历史可以追溯到1999年。ip已经是2.4内核的推荐选择。

–BatchyX
2012-12-18 18:15

如果Enet接口连接到交换机/路由器,ifconfig在其输出中报告RUNNING。 ip在2020年9月似乎没有等效内容。

– Seamus
20 Sep 6 '23:02

#4 楼

ip替代ifconfig已有一段时间了,可能在某个时候ifconfig会更新,但是我不会等它,也学会了使用ip。它在所有linux distri上都受支持

评论


ip已被Linux上的ifconfig替代,这是某些发行版的选择。

–卡兹
2012-12-19 22:51

似乎不可能使ifconfig与Linux完全兼容。诸如ifconfig eth0 192.168.0.7/24之类的命令没有明确的含义:如果eth0已经有2个IP地址(两个,而不是一个像eth0:1这样的别名)。

–詹森
18 Mar 16 '18 2:23