我阅读了一些有关'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变体上)。ipifconfigroutearpipifconfigip
解析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的用法的两篇主要论文。