题 我应该退出使用Ifconfig吗?


使用安装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的的 “主要”发行版。不应该假设该信息适用于所有发行版,尤其不适用于其他操作系统。


155
2017-12-17 08:52




你越早切换越好。我花了 个月 取代肌肉记忆 ifconfig。它确实使Windows上的操作更加有趣。 “ip add - 不,等等,不是吗, ifcon - 啊,唉 ipconfig“ - Charles
也许别名会有所帮助: alias ipconfig='echo ipconfig is deprecated, use ip instead'。当然,你设置了更有意义的别名。 - ott--
ifconfig 已弃用?我一定住在山洞里 - wim
我发现一个名为“ip”的命令具有进行链路级操作的能力。 - James O'Gorman
它仅在某些操作系统上弃用。如果你使用Linux以外的东西,我相信ifconfig仍在使用中。例如,我在FreeBSD上看不到这样的警告。 - Stefan Lasiewski


答案:


引用 托马斯皮尔彻的网站(CC-BY-SA): 

ifconfig vs ip

命令 /bin/ip 已经有一段时间了。但人们继续使用旧命令 /sbin/ifconfig。我们要清楚一点: ifconfig 不会很快消失,但它的新版本, ip,更强大,最终将取代它。

手册页 ip 起初可能看起来令人生畏,但是一旦熟悉了命令语法,就会很容易理解。此页面不会介绍ip的新功能。如果相反,它更具有并排比较 ifconfig 和 ip 快速浏览命令语法。

显示网络设备和配置 

ifconfig

ip addr show
ip link show

启用网络接口

ifconfig eth0 up
ip link set eth0 up

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

ifconfig eth0 down
ip link set eth0 down

143
2017-12-17 09:48



有趣的是,在每个用例中你提到的ip命令都更长,更复杂。可能是人们仍然使用的主要原因 ifconfig - TheLQ
@TheLQ: ip 提供了更多,更多的功能。当然它更复杂。无论如何,许多命令可以缩短。例如 ip addr show 可以缩短为 ip a, ip link show 至 ip l, ip link set eth0 up 至 ip l set eth0 up 等等。这带来了 ip 与...相提并论 ifconfig。 - BatchyX
请记住,整个世界都不是Linux机器。 Solaris,AIX,HP-UX,所有BSD和SCO(并不是任何人都关心的) 他们)全部使用 ifconfig。如果你想成为一个 UNIX 管理员(不只是一个 Linux的 admin)你应该确保你至少熟悉ifconfig及其基本语法...... - voretaq7
你的第一个例子回答了它。为什么在1时运行2个命令? - ott--
@ott ip addr show 几乎包括输出 ip link show。 - nyuszika7h


是, ifconfig 不推荐使用iproute2( ip 命令) 在Linux上

同样, arproute 和 netstat 命令也已弃用。

但是,当其他一些Unix使用时,iproute2是特定于Linux的 ifconfig,所以如果你打算使用另一个Unix,它可能有助于了解/记住它是如何工作的......

要学习“新方法”,我建议你看看这3个链接:

根据最后一个链接, ifconfig 没有维持+ 15年

除了Debian积累的补丁质量,网络工具   在1.60版本之后,包没有看到任何上游开发,   大约在2001年4月15日发布。


38
2018-04-30 09:56



ifconfig 是由BSD在当天开发的。 Linux基本上使用了BSD的IP堆栈(就像Windows和其他时候一样,为什么 ipconfig 仍然类似于 ifconfig)。在2.4内核Linux开始与BSD的堆栈大相径庭,这是2001年的开始。这不是偶然的 ifconfig 从那时起,在Linux中一直没有得到很好的维护。 - Chris S
10年!?我想,是时候在GitHub上启动“保存ifconfig”项目了。 - kenchilada


ifconfig 现在已被弃用多年,有时间需要转换,特别是在像你这样的情况下。


19
2017-12-17 08:57



我也喜欢它的cisco-esque命令缩短。 “ip a”=“ip address show” - Coops
MEH。有足够的脚本和其他工具围绕ifconfig构建,我觉得不需要切换,直到它消失... - Jason Antman
我从来没有听说过 ip。我刚刚在FreeBSD服务器上测试过它 ip: Command not found.。也许 ifconfig 仅在Linux上弃用。 - ctype.h
@ ctype.h:的确,它只在linux上被弃用了。 ifconfig的发布目标是从1999年开始。 ip 已经是2.4内核的推荐选择。 - BatchyX


ip 一直是替代品 ifconfig 有一段时间,可能在某个时候 ifconfig 将更新,但我不会等待它并学会与之合作 ip 同样。它支持所有linux distri


5
2017-12-17 08:57



ip已经成为ifconfig的替代品 在Linux上,作为一些发行版的选择。 - Kaz
似乎极不可能使ifconfig与linux完全兼容。命令如 ifconfig eth0 192.168.0.7/24 没有明确的含义:例如。如果 eth0 已经有2个ip地址(两个在它上面,而不是一个像eth0:1这样的别名)。 - Jasen