做什么

现代 Linux 网络管理统一入口——取代了 ifconfig / route / arp

三个核心子命令

ip addr        # 简写 ip a       看 IP 地址(含接口)
ip link        # 简写 ip l       看接口(不含 IP)
ip route       # 简写 ip r       看路由表

看 IP

ip a
# 1: lo: <LOOPBACK,UP,LOWER_UP> ...
#     inet 127.0.0.1/8 scope host lo
# 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> ...
#     inet 192.168.1.100/24 brd 192.168.1.255 scope global eth0

ip -br a                          # 简洁版(推荐)
# lo               UNKNOWN        127.0.0.1/8
# eth0             UP             192.168.1.100/24

ip -br a show eth0                # 仅某接口

看路由

ip r
# default via 192.168.1.1 dev eth0
# 192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.100

ip r show default                 # 仅默认路由

改配置(临时,重启失效)

sudo ip a add 192.168.1.200/24 dev eth0
sudo ip a del 192.168.1.200/24 dev eth0

sudo ip r add default via 192.168.1.1
sudo ip r del default
sudo ip r add 10.0.0.0/8 via 192.168.1.254

sudo ip link set eth0 down        # 关接口
sudo ip link set eth0 up          # 开接口
sudo ip link set eth0 mtu 1400    # 改 MTU
sudo ip link set dev eth0 promisc on    # 混杂模式

永久改

不直接用 ip —— 改发行版的网络配置:

  • Ubuntu Server/etc/netplan/*.yamlsudo netplan apply
  • RHEL/Rocky:NetworkManager(nmcli)或 /etc/sysconfig/network-scripts/
  • Debian 老式/etc/network/interfaces

常用速查

ip neigh                          # ARP 缓存(等同老的 arp -a)
ip -s link                        # 接口统计(收发包计数 / 错误)
ip route get 1.1.1.1              # 看到达某 IP 走哪条路由
ip link show eth0                 # 接口详细(含 MAC)

看 MAC 地址

ip link show eth0
# 2: eth0: ...
#    link/ether aa:bb:cc:dd:ee:ff brd ff:ff:ff:ff:ff:ff

  • ifconfig 在现代 Ubuntu 默认没装——apt install net-tools 才有
  • 改 IP 后已建立的 TCP 连接会断
  • 临时修改重启失效——永久改要走发行版的配置工具