Linux 作为一款开源的操作系统,其网络子系统的灵活性和强大功能一直是其重要优势,在 Linux 网络管理中,ip link 是一个核心且基础的工具,它属于 iproute2 软件包,主要用于管理和查看网络接口的链路层状态,与传统的 ifconfig 命令相比,ip link 提供了更丰富的功能和更现代的接口,是 Linux 系统管理员和网络工程师日常工作中不可或缺的利器。

ip link 命令的基本概述
ip link 命令的主要作用是操作网络接口的属性,包括但不限于接口的启用与禁用、修改 MAC 地址、设置接口的 MTU(最大传输单元)、管理接口的 ARP(地址解析协议)行为以及查看接口的详细状态等,它直接与 Linux 内核中的网络设备驱动程序交互,能够精确控制接口在链路层的各种参数,要使用 ip link 命令,通常需要 root 权限,因为它涉及到系统核心网络配置的修改。
常用命令格式与参数
ip link 命令的基本语法结构为 ip [OPTIONS] link show [DEVICE] 或 ip [OPTIONS] link set DEVICE [PROPERTY]。show 用于显示接口信息,set 用于修改接口属性,DEVICE 指定要操作的网络接口名称,如 eth0、lo、wlan0 等。
显示网络接口信息
最常用的 ip link 命令是 ip link show 或其简写 ip link,该命令会列出系统中所有网络接口的详细状态信息。
ip link show
输出结果通常包括接口索引(ifindex)、接口名称、状态(UP/DOWN)、MAC 地址、MTU 大小、队列长度(qlen)等信息,对于每个接口,其状态后会会有 UP 或 DOWN 标识,分别表示接口已启用或禁用;MTU 表示该接口能够传输的最大数据包大小;qlen 表示输出数据包队列的长度。
启用或禁用网络接口
使用 ip link set 命令可以轻松启用或禁用网络接口,要启用名为 eth0 的接口:
sudo ip link set eth0 up
要禁用该接口:
sudo ip link set eth0 down
这在网络故障排查或需要临时断开网络连接时非常有用。

修改网络接口的 MAC 地址
在某些场景下,可能需要临时修改网络接口的 MAC 地址(即 MAC 克隆或spoofing)。ip link 命令也支持此功能,将 eth0 接口的 MAC 地址修改为 00:11:22:33:44:55:
sudo ip link set eth0 address 00:11:22:33:44:55
需要注意的是,并非所有网卡都支持修改 MAC 地址,且修改后可能需要重启网络服务或重新插拔网线才能生效。
设置接口的 MTU 值
MTU(Maximum Transmission Unit)是网络接口能够传输的最大数据包大小,较大的 MTU 可以提高网络传输效率,但可能会导致网络延迟增加或数据包分片。ip link 允许动态调整接口的 MTU 值,将 eth0 的 MTU 设置为 9000:
sudo ip link set eth0 mtu 9000
这在配置 jumbo frame 以支持大文件传输或高性能计算集群中非常常见。
高级应用与场景
ip link 命令不仅限于基本的接口管理,还支持一些高级功能,以满足复杂的网络需求。
管理虚拟网络接口
Linux 支持多种类型的虚拟网络接口,如 VLAN(虚拟局域网)、Bridge(网桥)、Bond(链路聚合)等。ip link 是配置和管理这些虚拟接口的基础工具,创建一个 VLAN 接口 eth0.100,并将其与物理接口 eth0 关联:
sudo ip link add link eth0 name eth0.100 type vlan id 100 sudo ip link set eth0.100 up
这里的 ip link add 用于创建新的虚拟接口,type vlan 指定了接口类型为 VLAN,id 100 指定了 VLAN ID。

监控接口状态变化
ip link 命令还可以与 watch 命令结合使用,实时监控网络接口状态的变化,每秒刷新一次 eth0 接口的状态:
watch -n 1 "ip link show eth0"
这对于观察接口是否频繁掉线或状态波动非常有帮助。
常见问题与注意事项
在使用 ip link 命令时,需要注意以下几点:
- 权限问题:
ip link set等修改操作的命令需要 root 权限,通常使用sudo执行。 - 接口名称变化:在某些 Linux 发行版中(如使用 systemd 的系统),网络接口名称可能会从传统的
eth0变为ens33等基于硬件信息的名称,可以通过ip link查看实际的接口名称。 - 配置持久化:通过
ip link进行的临时配置在系统重启后会丢失,如果需要永久生效,需要将配置写入网络配置文件,如/etc/network/interfaces(Debian/Ubuntu)或 NetworkManager 的配置文件中。
以下是一个 ip link show 输出示例的简化表格,以便更直观地理解:
| 接口索引 | 接口名称 | 状态 | MAC 地址 | MTU | QLEN |
|---|---|---|---|---|---|
| 1 | lo | UP | 00:00:00:00:00:00 | 65536 | 1000 |
| 2 | eth0 | UP | 08:00:27:12:34:56 | 1500 | 1000 |
| 3 | wlan0 | DOWN | 00:1a:2b:3c:4d:5e | 1500 | 1000 |
ip link 命令作为 Linux 网络管理中的基础工具,其功能强大且灵活,无论是简单的接口启用禁用,还是复杂的虚拟网络配置,ip link 都能提供高效、可靠的解决方案,熟练掌握 ip link 命令的使用方法,不仅能够提高日常网络管理的工作效率,还能帮助系统管理员更深入地理解 Linux 网络子系统的运行机制,对于希望深入学习 Linux 网络技术的用户而言,ip link 是一个必须掌握的核心命令,通过结合其丰富的选项和参数,可以精确地控制网络接口的每一个细节,从而构建出稳定、高效的网络环境。

















