IP 与路由
ip 命令是 iproute2 工具包的核心,是现代 Linux 系统中管理网络接口、IP 地址和路由的标准工具。本文介绍如何在 CentOS / AlmaLinux / Rocky Linux 上使用 ip 命令进行网络配置。
ip addr — 管理 IP 地址
Section titled “ip addr — 管理 IP 地址”查看所有接口的 IP 地址
Section titled “查看所有接口的 IP 地址”ip addr show简写形式:
ip a查看指定接口的 IP 地址
Section titled “查看指定接口的 IP 地址”ip addr show dev ens33只显示 IPv4 地址
Section titled “只显示 IPv4 地址”ip -4 addr show只显示 IPv6 地址
Section titled “只显示 IPv6 地址”ip -6 addr show临时添加 IP 地址
Section titled “临时添加 IP 地址”sudo ip addr add 192.168.1.200/24 dev ens33一个接口可以绑定多个 IP 地址:
sudo ip addr add 192.168.1.201/24 dev ens33删除 IP 地址
Section titled “删除 IP 地址”sudo ip addr del 192.168.1.200/24 dev ens33ip link — 管理网络接口
Section titled “ip link — 管理网络接口”查看所有接口状态
Section titled “查看所有接口状态”ip link show简写:
ip l启用/禁用接口
Section titled “启用/禁用接口”sudo ip link set ens33 upsudo ip link set ens33 down修改 MTU 值
Section titled “修改 MTU 值”sudo ip link set ens33 mtu 9000查看接口统计信息
Section titled “查看接口统计信息”ip -s link show ens33ip route — 路由管理
Section titled “ip route — 路由管理”ip route show简写:
ip r输出示例:
default via 192.168.1.1 dev ens33 proto dhcp metric 100192.168.1.0/24 dev ens33 proto kernel scope link src 192.168.1.100 metric 100default via 192.168.1.1— 默认网关192.168.1.0/24 dev ens33— 直连网段
查看到某个目标的路由
Section titled “查看到某个目标的路由”ip route get 8.8.8.8配置默认网关
Section titled “配置默认网关”临时修改默认网关
Section titled “临时修改默认网关”sudo ip route del defaultsudo ip route add default via 192.168.1.254 dev ens33通过 nmcli 永久设置默认网关
Section titled “通过 nmcli 永久设置默认网关”sudo nmcli connection modify ens33 ipv4.gateway 192.168.1.1sudo nmcli connection up ens33添加静态路由
Section titled “添加静态路由”临时添加静态路由
Section titled “临时添加静态路由”sudo ip route add 10.10.0.0/16 via 192.168.1.254 dev ens33sudo ip route add 172.16.5.10/32 via 192.168.1.254删除静态路由
Section titled “删除静态路由”sudo ip route del 10.10.0.0/16通过 nmcli 永久添加静态路由
Section titled “通过 nmcli 永久添加静态路由”临时路由重启后会丢失,使用 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查看永久配置的路由
Section titled “查看永久配置的路由”nmcli connection show ens33 | grep ipv4.routes删除永久静态路由
Section titled “删除永久静态路由”sudo nmcli connection modify ens33 -ipv4.routes "10.10.0.0/16 192.168.1.254"sudo nmcli connection up ens33ip 命令与 ifconfig 对比
Section titled “ip 命令与 ifconfig 对比”ifconfig 属于 net-tools 包,在新版 EL 系统中已不再默认安装。ip 命令功能更强大,是推荐使用的替代工具。
| 用途 | ifconfig (旧) | ip (新) |
|---|---|---|
| 查看所有接口 | ifconfig | ip addr show |
| 查看指定接口 | ifconfig ens33 | ip addr show dev ens33 |
| 添加 IP 地址 | ifconfig ens33 192.168.1.100 netmask 255.255.255.0 | ip addr add 192.168.1.100/24 dev ens33 |
| 启用接口 | ifconfig ens33 up | ip link set ens33 up |
| 禁用接口 | ifconfig ens33 down | ip link set ens33 down |
| 查看路由表 | route -n | ip route show |
| 添加默认网关 | route add default gw 192.168.1.1 | ip route add default via 192.168.1.1 |
| 查看接口统计 | ifconfig ens33 | ip -s link show ens33 |
如果你仍然需要 ifconfig,可以安装 net-tools:
sudo dnf install net-tools以 JSON 格式输出(便于脚本解析)
Section titled “以 JSON 格式输出(便于脚本解析)”ip -j addr show ens33配合 jq 格式化输出:
ip -j addr show ens33 | jq .以简洁格式输出
Section titled “以简洁格式输出”ip -br addr showip -br link show监控网络变化
Section titled “监控网络变化”ip monitor routeip monitor all查看 ARP 邻居表
Section titled “查看 ARP 邻居表”ip neighbour show