ip 命令详解
更新时间:2026-08-28。本文是「一个命令一个文档」系列,聚焦
ip——网络与远程命令族(见网络命令族)。它来自iproute2,是ifconfig/route/arp的现代统一替代。
ip 是 Linux 网络配置的"瑞士军刀",出自 iproute2 套件。过去要看地址用 ifconfig、看路由用 route、看 ARP 用 arp——现在一个 ip 子命令全包了。新系统里 ifconfig 基本已弃用,学 ip 就够了。
一、看网卡与地址:ip addr
ip addr # 看所有网卡 IP 地址(等同 ip a)
ip addr show eth0 # 只看 eth0
ip -br addr # 简洁一行式(网卡 状态 IP)
ip link # 看网卡链路层状态(up/down、MAC)
ip -br addr把每个网卡压成一行,快速看"哪块网卡 up、拿到什么 IP",比翻一大段ip addr舒服。ip link看的是链路层(网卡本身 up/down、MAC 地址),ip addr才包含 IP。ifconfig的输出基本都能在ip addr里找到对应。
二、看路由:ip route
ip route # 看路由表(到各网段走哪个网关)
ip route get 8.8.8.8 # 查"去某 IP 走哪条路由、出哪个网卡"
ip route add 10.0.0.0/8 via 192.168.1.1 # 加静态路由"为什么连不上某地址?"第一步用
ip route get <目标IP>——它直接告诉你内核会选哪条路由、从哪个网卡出去、下一跳谁。比盯着整张路由表猜高效。ip route是诊断网络连通性的起点,配合 ping / ss 验证。
三、看 ARP / 邻居:ip neigh
ip neigh # 看 ARP 表(IP 与 MAC 的映射)
ip neigh show dev eth0 # 看某网卡上的邻居
ip neigh(neighbor,邻居)就是老arp -a的现代写法,显示局域网内 IP 对应的 MAC 地址。排查"同网段通但不通某机""MAC 冲突"时看它。状态REACHABLE/STALE表示可达/陈旧,FAILED则解析失败。
四、开关与临时配置
ip link set eth0 up # 启用网卡
ip link set eth0 down # 禁用
ip addr add 192.168.1.10/24 dev eth0 # 临时加 IP(重启/网络服务重置后失效)
ip addr del 192.168.1.10/24 dev eth0 # 删 IP这些是临时配置,重启或网络管理服务(NetworkManager/systemd-networkd)重拉后会丢失。持久化要改对应发行版的配置文件(netplan、/etc/network/interfaces、nmcli 等),别只靠
ip命令改完就以为永久生效。
五、ip vs ifconfig 对照
| 老命令 | 现代替代 |
|---|---|
ifconfig | ip addr / ip link |
route | ip route |
arp -a | ip neigh |
ifconfig eth0 up | ip link set eth0 up |
老教程满屏
ifconfig,但新系统默认不带它(或标记弃用)。记住这套对照,遇到老文档能直接翻译。网络连通性完整排障链路见 网络原理。
六、实战:网卡没 IP / 连不上外网
ip -br addr # 看网卡 up 没、拿到 IP 没
ip route get 8.8.8.8 # 看出去走哪、网关对不对
ip neigh # 看网关 MAC 解析到没三步走:网卡 up 且 IP 正确 → 路由指向正确网关 → 网关 ARP 可达。任一步异常就定位到对应环节。这比无头苍蝇式 ping 高效得多。
一句话总结
ip(iproute2)取代 ifconfig/route/arp:ip addr/ip -br addr 看地址与网卡、ip route get <ip> 查出去走哪条路由、ip neigh 看 ARP 表、ip link set 开关网卡;临时配置重启失效需改发行版配置文件。网络排障三步走:网卡 IP → 路由网关 → ARP 可达。老文档里的 ifconfig 都可用 ip 翻译。