跳转到内容

IP 与路由

ip 命令是 iproute2 工具包的核心,是现代 Linux 系统中管理网络接口、IP 地址和路由的标准工具。本文介绍如何在 CentOS / AlmaLinux / Rocky Linux 上使用 ip 命令进行网络配置。

列出所有网络接口及其 IP 地址
ip addr show

简写形式:

简写方式查看 IP 地址
ip a
只查看 ens33 的 IP 信息
ip addr show dev ens33
过滤只显示 IPv4 信息
ip -4 addr show
过滤只显示 IPv6 信息
ip -6 addr show
为 ens33 添加一个临时 IP 地址
sudo ip addr add 192.168.1.200/24 dev ens33

一个接口可以绑定多个 IP 地址:

添加第二个 IP 地址
sudo ip addr add 192.168.1.201/24 dev ens33
删除临时添加的 IP 地址
sudo ip addr del 192.168.1.200/24 dev ens33
列出所有网络接口的链路状态
ip link show

简写:

简写方式查看链路状态
ip l
启用 ens33 接口
sudo ip link set ens33 up
禁用 ens33 接口
sudo ip link set ens33 down
将 ens33 的 MTU 设为 9000(巨型帧)
sudo ip link set ens33 mtu 9000
显示接口的收发包统计
ip -s link show ens33
显示当前路由表
ip route show

简写:

简写方式查看路由表
ip r

输出示例:

default via 192.168.1.1 dev ens33 proto dhcp metric 100
192.168.1.0/24 dev ens33 proto kernel scope link src 192.168.1.100 metric 100
  • default via 192.168.1.1 — 默认网关
  • 192.168.1.0/24 dev ens33 — 直连网段
查看访问 8.8.8.8 会走哪条路由
ip route get 8.8.8.8
删除当前默认网关
sudo ip route del default
添加新的默认网关
sudo ip route add default via 192.168.1.254 dev ens33
永久配置默认网关
sudo nmcli connection modify ens33 ipv4.gateway 192.168.1.1
sudo nmcli connection up ens33
添加到 10.10.0.0/16 网段的静态路由
sudo ip route add 10.10.0.0/16 via 192.168.1.254 dev ens33
添加到特定主机的路由
sudo ip route add 172.16.5.10/32 via 192.168.1.254
删除静态路由
sudo ip route del 10.10.0.0/16

临时路由重启后会丢失,使用 nmcli 可以持久化:

为连接添加永久静态路由
sudo nmcli connection modify ens33 +ipv4.routes "10.10.0.0/16 192.168.1.254"

添加多条路由:

添加多条永久静态路由
sudo nmcli connection modify ens33 \
+ipv4.routes "10.10.0.0/16 192.168.1.254" \
+ipv4.routes "172.16.0.0/12 192.168.1.253"

使配置生效:

重新激活连接以应用路由
sudo nmcli connection up ens33
查看 nmcli 中配置的静态路由
nmcli connection show ens33 | grep ipv4.routes
删除某条永久路由
sudo nmcli connection modify ens33 -ipv4.routes "10.10.0.0/16 192.168.1.254"
sudo nmcli connection up ens33

ifconfig 属于 net-tools 包,在新版 EL 系统中已不再默认安装。ip 命令功能更强大,是推荐使用的替代工具。

用途ifconfig (旧)ip (新)
查看所有接口ifconfigip addr show
查看指定接口ifconfig ens33ip addr show dev ens33
添加 IP 地址ifconfig ens33 192.168.1.100 netmask 255.255.255.0ip addr add 192.168.1.100/24 dev ens33
启用接口ifconfig ens33 upip link set ens33 up
禁用接口ifconfig ens33 downip link set ens33 down
查看路由表route -nip route show
添加默认网关route add default gw 192.168.1.1ip route add default via 192.168.1.1
查看接口统计ifconfig ens33ip -s link show ens33

如果你仍然需要 ifconfig,可以安装 net-tools

安装 net-tools 包(提供 ifconfig)
sudo dnf install net-tools

以 JSON 格式输出(便于脚本解析)

Section titled “以 JSON 格式输出(便于脚本解析)”
以 JSON 格式输出 IP 地址信息
ip -j addr show ens33

配合 jq 格式化输出:

用 jq 美化 JSON 输出
ip -j addr show ens33 | jq .
简洁模式显示 IP 地址
ip -br addr show
简洁模式显示链路状态
ip -br link show
实时监控路由变化
ip monitor route
实时监控所有网络事件
ip monitor all
显示 ARP 邻居缓存
ip neighbour show