在日常运维中,最频繁的网络操作就是查看网卡状态、设置 IP 地址、管理路由表。Linux 下完成这些任务的两个主要工具是传统的 ifconfig 和现代推荐的 ip 命令。理解它们的用法和区别,足以应对 90% 的网络配置场景。
1. ifconfig:经典的网络接口工具
ifconfig(interface config)来自 net-tools 软件包,历史悠久,大部分系统管理员最早接触的就是它。虽然在新版 Linux 发行版中逐渐被 ip 替代,但依然广泛可用,输出格式直观,适合快速查看。
查看所有活动网卡
ifconfig
不加参数即列出当前活跃的网络接口(包括环回口 lo 和物理网卡如 eth0、wlan0)。你会看到每个接口的 MAC 地址、IPv4 地址、子网掩码、广播地址、收发数据包统计等信息。
查看指定网卡
ifconfig eth0
仅显示 eth0 的详细信息。如果网卡未启用(down),则不会出现在无参输出中,需要加上 -a 选项显示所有接口(包括未激活的):
ifconfig -a
启用/禁用网卡
sudo ifconfig eth0 up # 启用
sudo ifconfig eth0 down # 禁用
临时设置 IP 地址和子网掩码
sudo ifconfig eth0 192.168.1.100 netmask 255.255.255.0
这会立即生效,但重启网络服务或重启系统后丢失,适合临时调试。
修改 MAC 地址
sudo ifconfig eth0 hw ether 00:11:22:33:44:55
注意:ifconfig 对现代网络特性的支持已显不足(例如多 IP 显示不够清晰、无法直接管理策略路由等),因此建议将 ip 命令作为主要工具学习。
2. ip:功能更强大、设计更统一的现代工具
ip 命令来自 iproute2 工具集,是当前 Linux 网络管理的标准。它通过子命令完成各种操作,语法结构清晰:ip [ OPTIONS ] OBJECT { COMMAND | help }。常用 OBJECT 包括 addr(地址)、link(链路)、route(路由)、neigh(邻居)等。
查看所有接口的链路状态
ip link show
输出包括接口名、状态(UP/DOWN)、MAC 地址、MTU 等。只显示物理接口可以用 ip link show type ethernet。
查看 IP 地址(比 ifconfig 更清晰)
ip addr show # 所有接口的 IP
ip addr show eth0 # 指定接口
输出中每个 IP 地址都标明是 inet(IPv4)还是 inet6(IPv6),且可以直接看到一个接口上绑定的多个 IP(别名),比如 eth0:1 在 ifconfig 中显示为子接口,而 ip 会直接在 eth0 下显示多个 inet 条目。
添加/删除 IP 地址
sudo ip addr add 192.168.1.100/24 dev eth0 # 添加
sudo ip addr del 192.168.1.100/24 dev eth0 # 删除
注意这里必须指明子网掩码用 CIDR 格式(如 /24)。一个接口可以轻松绑定多个 IP。
启用/禁用网卡
sudo ip link set eth0 up
sudo ip link set eth0 down
修改 MAC 地址
sudo ip link set dev eth0 address 00:11:22:33:44:55
查看路由表
ip route show
# 或者简写
ip r
输出会显示默认网关(default via 192.168.1.1 dev eth0)以及各个目标网段的路由条目。在没有参数的情况下,route -n(传统命令) 或 ip route 都能满足查看需求。
添加/删除静态路由
sudo ip route add 10.0.0.0/8 via 192.168.1.254 dev eth0
sudo ip route del 10.0.0.0/8
添加默认网关:
sudo ip route add default via 192.168.1.1
查看邻居表(ARP 缓存)
ip neigh show
替代原来的 arp -n。
3. 使用建议与持久化配置
- 临时 vs 永久:所有
ip和ifconfig命令直接生效,但重启后消失。要让配置永久化,需要修改发行版对应的网络配置文件。例如 Ubuntu 可以通过/etc/netplan/下的 YAML 文件配置,再执行sudo netplan apply;Red Hat 系通常在/etc/sysconfig/network-scripts/ifcfg-eth0中编写。但掌握ip命令是基础,因为永久配置工具底层调用的也是相同的 kernel 接口。 - 命令替代对照表:
| 传统命令 | 现代替代 | 示例 |
| :--- | :--- | :--- |
| ifconfig | ip addr 或 ip link | ip addr show |
| route -n | ip route show | ip route |
| arp -n | ip neigh show | ip neigh |
| netstat -rn | ip route | – |
| netstat -i | ip -s link | 查看接口统计信息 |
- 排错提示:如果发现
ip命令不可用,可能是iproute2包未安装,可使用apt install iproute2或yum install iproute。绝大多数现代发行版默认包含。
掌握 ip 和 ifconfig 的基本操作,你就具备了对 Linux 网络进行实时查看和临时调整的能力。在网络排错、临时搭建服务或云环境中绑定浮动 IP 时,这些命令会频繁用到。