ip 是什么
ip 是 iproute2 套件的主命令,用一套统一语法管理网络配置:addr 管地址、link 管网卡与链路状态、route 管路由表、neigh 管邻居(ARP)表、rule 管策略路由。它取代了 ifconfig、route、arp 这组老工具,原因不只是维护状态——新版工具能表达策略路由、多播、隧道等净图能力,而老工具的输出格式也早已不适合用脚本解析。排查网络问题的第一步通常就是它与 ss 的组合。
基本信息
| 适用平台 | Linux(iproute2,主流发行版默认安装);老系统可能需要单独安装 iproute 或 iproute2 包 |
|---|---|
| 命令语法 | ip [选项] 对象 { 命令 | help } |
| 常用对象 | addr 地址、link 链路、route 路由、neigh 邻居表、rule 策略路由、tunnel 隧道 |
| 常用选项 | -br 简洁输出(brief)、-4/-6 指定协议族、-s 显示统计信息、-c 彩色输出、-o 每行输出一条记录 |
| 权限要求 | 查询类命令普通用户可用;add、del、set 等修改类命令需要 root 或 CAP_NET_ADMIN |
典型使用场景
- 快速体检:ip -br addr 与 ip -br link 一屏看完全部接口状态、地址与 MAC
- 排查路由:ip route get 目标地址 直接给出本机将使用哪条路由与哪个源地址
- 定位 ARP 问题:ip neigh show 查看邻居表状态,与网关通信异常时常用
- 确认接口统计:ip -s link 看收发包、错误与丢弃计数
- 临时调整:临时加地址或改 MTU 用于验证(重启失效)
- 识别多地址与多网卡:确认服务绑定的是哪个地址,避免 0.0.0.0 与内网地址混淆
常用示例
常用示例
ip addr show # 等价 ip a
ip -br addr # 简洁模式:接口 + 状态 + 地址
ip -br link # 各网卡 UP/DOWN 一眼看全
ip route show
ip route get 8.8.8.8 # 目标地址会走哪条路由、用哪个源地址
ip neigh show # 邻居表(ARP)
ip -s link show eth0 # 收发包与错误统计
ip addr add 192.168.1.50/24 dev eth0 # 临时加地址(重启失效)
ip link set eth0 mtu 1400 # 临时改 MTU
tracepath 8.8.8.8 # iproute2 自带的路径探测排查要点对照
| 对象 | 看什么 | 异常信号 |
|---|---|---|
| link | 接口是否 UP、MTU、MAC、收发包计数 | DOWN 或 errors、dropped 持续增长 |
| addr | 接口上的 IP 与掩码、是否缺少预期地址 | 地址缺失或掩码写错导致同网段不通 |
| route | 默认网关、各网段路由、是否有多条同网段路由 | 缺默认路由、网关不可达 |
| route get | 本机对某个目标实际选用的路由与源地址 | 源地址不是预期网卡,说明选路或绑定有问题 |
| neigh | 邻居表状态:REACHABLE、STALE、FAILED | FAILED 说明二层解析失败,通常是链路或设备问题 |
ip route get 是定位「为什么不通」的高效工具:它不需要真的发包,就能给出内核会选用的出口接口、下一跳与源地址。抓包看到源地址与预期不符时,用它可以快速确认是策略路由、掩码还是多网卡选路的问题。
临时配置与永久配置要分开:ip addr add、ip route add 等修改在重启后全部丢失,用于验证假设很合适。需要持久化时应使用发行版的管理方式——RHEL 系用 nmcli 或 network-scripts、Debian/Ubuntu 用 netplan 或 networking 服务,把配置写进对应的配置文件。先临时生效验证假设、确认无误再落盘,是网络变更最稳妥的顺序。
在远程 SSH 会话里修改网络配置是高危操作:ip link set eth0 down、改错掩码或删掉默认路由都可能立刻切断自己的连接。执行前先准备带外访问(控制台或管理网),并用命令的临时生效特性做最小化验证。
常用子命令速查
| 子命令 | 作用 | 排查用途 |
|---|---|---|
| ip addr | 接口与地址 | 确认地址与掩码 |
| ip link | 接口开关与 MTU | 确认是否启用与帧长 |
| ip route | 路由表 | 确认默认网关与明细路由 |
| ip neigh | 链路层邻居表 | 确认同网段可达性 |
| ip -s link | 收发统计与错误计数 | 看丢包与错误是否增长 |
| ip route get 目标地址 | 查看实际选路 | 验证源地址与出口 |
永久化要按发行版分支:NetworkManager 环境用 nmcli 或 nmtui,systemd-networkd 用 .network 单元,旧版 RHEL 系列用 ifcfg 文件,Ubuntu 侧常用 netplan。用 ip 命令改的都是运行时状态,改完必须同步进配置文件,否则重启即回退。