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的“主要”发行版有关。不应假定该信息适用于所有发行版,尤其不适用于其他操作系统。
#1 楼
引用Thomas Pircher的网站(cc-by-sa):ifconfig vs ip
命令
/bin/ip
已经存在了一段时间。但是人们继续使用旧命令/sbin/ifconfig
。我们要清楚一点:ifconfig
不会很快消失,但是它的更新版本ip
会更强大,并且最终会取代它。熟悉命令语法,很容易阅读。该页面不会介绍ip的新功能。相反,它具有ip
和ifconfig
的并排比较,以快速概览命令语法。显示网络设备和配置
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
命令)。 同样,
arp
,route
和netstat
命令也已弃用。 但是,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
评论
切换越早越好。我花了几个月的时间来替换ifconfig的肌肉内存。它的确使Windows上的操作更加有趣。 “ ip add-no,等等,不是,ifcon-NO,argh ipconfig”也许别名会有所帮助:别名ipconfig ='echo ipconfig已过时,请改用ip'。当然,您设置了更多有意义的别名。
ifconfig已弃用?我一定是住在山洞里
我很好奇一个名为“ ip”的命令具有执行链接级操作的能力。
仅在某些操作系统上不推荐使用。如果您在Linux之外使用东西,我相信ifconfig仍在使用。例如,我在FreeBSD上没有看到这样的警告。