现在,绝大多数 Linux 发行版和绝大多数 UNIX 都使用古老的 arp, ifconfig 和route 命令。虽然这些工具能够工作,但它们在 Linux2.2 和更高版本的内核上显得有一些落伍。但自2001年起,Linux社区已经对其停止维护。同时,一些Linux发行版比如Arch Linux和CentOS/RHEL 7则已经完全抛弃了net-tools,只支持iproute2。

作为网络配置工具的一份子,iproute2的出现旨在从功能上取代net-tools。net-tools通过procfs(/proc)和ioctl系统调用去访问和改变内核网络配置,而iproute2则通过netlink套接字接口与内核通讯。抛开性能而言,iproute2的用户接口比net-tools显得更加直观。比如,各种网络资源(如link、IP地址、路由和隧道等)均使用合适的对象抽象去定义,使得用户可使用一致的语法去管理不同的对象。

iproute2 工具集包含以下命令行程序 : ip, ss, bridge, rtacct, rtmon, tc, ctstat, lnstat, nstat, routef, routel, rtstat, tipc, arpd, devlink。

下面是替换对照表:

net-tools(被废弃) iproute2 备注
ifconfig ip addr, ip link, ip -s 地址和链路配置
route ip route 路由表
arp ip neigh Neighbors
iptunnel ip tunnel 隧道
nameif ifrename, ip link set name Rename network interfaces
ipmaddr ip maddr 组播
netstat ip -s, ss, ip route 统计

参考

  1. https://www.lartc.org/LARTC-zh_CN.GB2312.pdf
  2. Linux 使用ss命令代替 netstat
  3. iproute2 对决 net-tools
  4. https://en.wikipedia.org/wiki/Iproute2