Linux TCP/IP 网络:net-tools 与 iproute2Linux TCP/IP 网络:net-tools 与 iproute2Linux TCP/IP 网络:net-tools 与 iproute2Linux TCP/IP 网络:net-tools 与 iproute2
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

Linux TCP/IP 网络:net-tools 与 iproute2

许多系统管理员仍然使用 ifconfig、route、arp 和 netstat 命令行工具(统称为 net-tools)的组合来管理各种网络配置并排除故障。 net-tools 最初植根于 BSD TCP/IP 工具包,旨在配置旧版 Linux 内核的网络功能。自 2001 年以来,它在 Linux 社区的开发迄今已停止。一些 Linux 发行版(例如 Arch Linux 和 CentOS/RHEL 7)已经弃用了 net-tools,而其他发行版则计划这样做,转而支持 iproute2。

iproute2 是另一个网络配置工具系列,它的出现是为了取代 net-tools 的功能。 net-tools 通过 procfs (/proc) 和 ioctl 系统调用访问和更改内核网络配置,而 iproute2 通过 netlink 套接字接口与内核通信。众所周知,/proc 接口比 netlink 接口更重量级。撇开性能不谈,iproute2 的用户界面比 net-tools 更直观。例如,网络资源(例如链路、IP地址、路由、隧道等)可以用对象抽象适当地定义,并且您可以使用一致的语法来管理不同的对象。最重要的是,iproute2 迄今为止一直在积极开发中。

如果您仍在使用 net-tools,那么是时候切换到 iproute2 了,特别是如果您想赶上 Linux 内核最新、最强大的网络功能。很可能有很多事情可以使用 iproute2 完成,但不能使用 net-tools 完成,例如基于源的路由、QoS、VLAN、绑定、网桥等。还值得注意的是,网络管理器等更高级别的网络配置工具依赖于 iproute2。

对于那些想要进行切换的人,这里是 net-tools 与 iproute2 比较的总结。

显示所有连接的网络接口

以下命令显示所有可用网络接口的列表(无论它们是否处于活动状态)。

使用net-tools:


$ ifconfig -a

使用iproute2:


$ ip link show

激活或停用网络接口

要激活/停用特定网络接口,请使用这些命令。

使用net-tools:


$ sudo ifconfig eth1 up
$ sudo ifconfig eth1 down

使用iproute2:


$ sudo ip link set down eth1
$ sudo ip link set up eth1

将 IPv4 地址分配给网络接口

使用这些命令配置网络接口的 IPv4 地址。

使用net-tools:


$ sudo ifconfig eth1 10.0.0.1/24

使用iproute2:


$ sudo ip addr add 10.0.0.1/24 dev eth1

请注意,使用iproute2,您可以为一个接口分配多个 IP 地址,而使用ifconfig 则无法做到这一点。使用 ifconfig 解决此缺陷的方法是使用 IP 别名。


$ sudo ip addr add 10.0.0.1/24 broadcast 10.0.0.255 dev eth1
$ sudo ip addr add 10.0.0.2/24 broadcast 10.0.0.255 dev eth1
$ sudo ip addr add 10.0.0.3/24 broadcast 10.0.0.255 dev eth1

从网络接口中删除 IPv4 地址

就 IP 地址删除而言,除了将 0 分配给接口之外,没有其他方法可以使用 net-tools 从网络接口删除 IPv4 地址。 iproute2 可以正确处理这个问题。

使用net-tools:


$ sudo ifconfig eth1 0

使用iproute2:


$ sudo ip addr del 10.0.0.1/24 dev eth1

显示网络接口的 IPv4 地址

检查特定网络接口的 IPv4 地址可以按如下方式完成。

使用net-tools:


$ ifconfig eth1

使用iproute2:


$ ip addr show dev eth1

同样,如果为一个接口分配了多个 IP 地址,iproute2 将显示所有这些地址,而 net-tools 仅显示一个 IP 地址。

为网络接口分配 IPv6 地址

使用这些命令将 IPv6 地址添加到网络接口。与 IPv4 不同,net-tools 和 iproute2 都允许您向接口添加多个 IPv6 地址。

使用net-tools:


$ sudo ifconfig eth1 inet6 add 2002:0db5:0:f102::1/64
$ sudo ifconfig eth1 inet6 add 2003:0db5:0:f102::1/64

使用iproute2:


$ sudo ip -6 addr add 2002:0db5:0:f102::1/64 dev eth1
$ sudo ip -6 addr add 2003:0db5:0:f102::1/64 dev eth1

显示网络接口的 IPv6 地址

显示特定网络接口的 IPv6 地址可以按如下方式完成。 net-tools 和 iproute2 都可以显示所有分配的 IPv6 地址。

使用net-tools:


$ ifconfig eth1

使用iproute2:


$ ip -6 addr show dev eth1

从网络接口中删除 IPv6 地址

使用这些命令从接口中删除任何不必要的 IPv6 地址。

使用net-tools:


$ sudo ifconfig eth1 inet6 del 2002:0db5:0:f102::1/64

使用iproute2:


$ sudo ip -6 addr del 2002:0db5:0:f102::1/64 dev eth1

更改网络接口的 MAC 地址

要欺骗网络接口的 MAC 地址,请使用以下命令。请注意,在更改 MAC 地址之前,您需要先停用该接口。

使用net-tools:


$ sudo ifconfig eth1 hw ether 08:00:27:75:2a:66

使用iproute2:


$ sudo ip link set dev eth1 address 08:00:27:75:2a:67

查看IP路由表

net-tools 有两个选项用于显示内核的 IP 路由表:route 或 netstat。对于iproute2,使用ip route命令。

使用net-tools:


$ route -n

$ netstat -rn

使用iproute2:


$ ip route show

添加或修改默认路由

以下是在内核 IP 路由表中添加或修改默认路由的命令。请注意,使用net-tools,可以通过添加新的默认路由,然后删除旧的默认路由来修改默认路由。对于iproute2,请使用ip route replacement命令。

使用net-tools:


$ sudo route add default gw 192.168.1.2 eth0
$ sudo route del default gw 192.168.1.1 eth0

使用iproute2:


$ sudo ip route add default via 192.168.1.2 dev eth0
$ sudo ip route replace default via 192.168.1.2 dev eth0

添加或删除静态路由

可以使用以下命令添加或删除静态路由。

使用net-tools:


$ sudo route add -net 172.16.32.0/24 gw 192.168.1.1 dev eth0
$ sudo route del -net 172.16.32.0/24

使用iproute2:


$ sudo ip route add 172.16.32.0/24 via 192.168.1.1 dev eth0
$ sudo ip route del 172.16.32.0/24

查看套接字统计信息

以下是检查套接字统计信息的命令(例如,活动/侦听 TCP/UDP 套接字)。

使用net-tools:


$ netstat
$ netstat -l

使用iproute2:


$ ss
$ ss -l

查看ARP表

您可以使用这些命令显示内核的 ARP 表。

使用net-tools:


$ arp -an 

使用iproute2:


$ ip neigh

添加或删除静态 ARP 条目

在本地 ARP 表中添加或删除静态 ARP 条目的操作如下。

使用net-tools:


$ sudo arp -s 192.168.1.100 00:0c:29:c0:5a:ef
$ sudo arp -d 192.168.1.100

使用iproute2:


$ sudo ip neigh add 192.168.1.100 lladdr 00:0c:29:c0:5a:ef dev eth0
$ sudo ip neigh del 192.168.1.100 dev eth0

添加、删除或查看多播地址

要配置或查看网络接口上的多播地址,请使用以下命令。

使用net-tools:


$ sudo ipmaddr add 33:44:00:00:00:01 dev eth0
$ sudo ipmaddr del 33:44:00:00:00:01 dev eth0
$ ipmaddr show dev eth0
$ netstat -g

使用iproute2:


$ sudo ip maddr add 33:44:00:00:00:01 dev eth0
$ sudo ip maddr del 33:44:00:00:00:01 dev eth0
$ ip maddr list dev eth0
©2015-2025 艾丽卡 support@alaica.com