我阅读了一些有关'ifconfig'命令的文章/教程,其中大多数都包含一条共同的声明-
“ ip命令弃用了ifconfig”
并建议学习ip命令。但是他们都没有解释'ip'命令比'ifconfig'更强大。
两者有什么区别?
我阅读了一些有关'ifconfig'命令的文章/教程,其中大多数都包含一条共同的声明-
“ ip命令弃用了ifconfig”
并建议学习ip命令。但是他们都没有解释'ip'命令比'ifconfig'更强大。
两者有什么区别?
Answers:
ifconfig
来自net-tools
,长期以来一直无法完全与Linux网络堆栈保持同步。它还仍然ioctl
用于网络配置,这是与内核进行交互的难看且功能较弱的方式。
Linux网络代码中的许多更改以及许多新功能无法使用net-tools
:多路径路由,策略路由(请参阅RPDB)访问。route
允许您做一些愚蠢的事情,例如使用相同的度量标准将多个路由添加到相同的目的地。
另外:
ifconfig
没有报告某些设备的正确硬件地址。ipip
,sit
,gre
,l2tp
,等在内核静态隧道。tun
或tap
设备。net-tools
任何一个来配置Linux交通控制系统。另请参阅ifconfig
糟透了。
编辑:删除了关于net-tools
开发停止的断言,到现在我忘记了这篇文章的去处。net-tools
自iproute2
发布以来就一直在进行研究,尽管主要是错误修复和较小的增强和功能,例如国际化。
ifconfig
。例如,GNU inetutils中有另一种。这还不是全部。 unix.stackexchange.com/a/504084/5132
ifconfig
是传统命令,用于显示有关网络接口的信息并更改某些设置。特别是,它可以启动和关闭接口。大多数Unix变体中都存在它。
在Linux上,该ifconfig
命令已经有很长时间没有发展了。它所做的仍然很好。如果您正在使用ifconfig
某物,则没有理由停下来。
Linux还提供了iproute2工具套件中的ip
命令。该命令将几个古典命令和更多,包括,和。可以做的不止是。另一方面,它并不总是存在,尤其是在嵌入式系统上(从来没有出现在Linux以外的unix变体上)。ip
ifconfig
route
arp
ip
ifconfig
ip
解析ifconfig
输出有点烂。解析ip
输出有点烂。那里没有赢家。
ip
的输出相当简单,并且肯定比容易得多ifconfig
。我也很喜欢在很多情况下,ip
命令的输出可以用作对另一个ip
命令的输入,而几乎不需要修改(例如,的每一行都ip route show
可以用作的参数ip route add
)。
ip route
,ip rule
输出非常清晰并且很容易解析。但是ip link
,还是ip addr
很痛苦的。我真的希望有人提交补丁或类似的东西来ip addr
打印出准确的语句,也许需要切换一下,就像使用时一样,使用当前的设置进行设置ip route show
。
只是为pilona的答案添加一些内容。在2005年左右,引入了一种控制网络堆栈的新机制-netlink套接字。
要配置网络接口iproute2
,请使用全双工netlink套接字机制,同时ifconfig
依赖于ioctl
系统调用。这是有关netlink的动机和rtnetlink的用法的两篇主要论文。