ip route 是什么
ip route 用来查看和操作内核路由表,判断「去某个地址的包会从哪张网卡出去、走哪个网关」靠的就是它。show 列出全部路由,get 按目标地址做一次真实选路查询,直接给出使用的出口网卡、源地址与下一跳,比人眼看表更接近实际行为;add、del、replace 用于临时增删路由。多网卡、双线接入、VPN 场景最容易在路由上出问题,而策略路由(ip rule 配合多张路由表)会让「主表里看到的」与「实际生效的」不一致。
基本信息
| 适用平台 | Linux(iproute2 中的 ip 命令);传统 route 命令已废弃 |
|---|---|
| 命令语法 | ip route {show|get|add|del|replace} ... |
| 常用子命令 | show 列出路由 get 查选路 add 添加 del 删除 replace 添加或替换 table 指定路由表 |
| 权限说明 | 查看普通用户可做,增删改需要 root |
| 关联命令 | ip rule 查看策略路由规则、ip route show table all 查看全部表 |
典型使用场景
- 选路核对:判断到某个内网或公网地址实际走哪张网卡、哪个网关
- 跨网段访问:临时添加静态路由访问其他网段或专线对端
- 故障定位:区分「没有路由」与「路由对但网关不通」两类问题
- 多云与 VPN:核对隧道建立后路由是否按预期注入
- 云主机调整:更换默认网关或补充辅助网段路由
常用示例
常用示例
ip route show # 列出主路由表
ip route get 8.8.8.8 # 去公网地址走哪条路
ip route get 10.1.1.5 # 内网目的地选路核对
ip route add 10.20.0.0/16 via 10.0.0.1 # 临时添加静态路由
ip route del 10.20.0.0/16 # 删除路由
ip route replace default via 10.0.0.1 # 修改默认网关(高危)
ip rule list # 策略路由规则
ip route show table all | head # 查看所有路由表route get 输出读法
| 输出片段 | 含义 | 怎么看 |
|---|---|---|
| 8.8.8.8 via 10.0.0.1 | 目标地址与下一跳网关 | 网关是否符合网络规划 |
| dev eth0 | 命中的出口网卡 | 与预期网卡不一致时检查路由优先级 |
| src 10.0.0.5 | 选中的源地址 | 源地址错误会导致回包被丢弃 |
| cache 与 uid | 查询上下文与缓存的选路信息 | 有策略路由时要结合 ip rule 一起看 |
删除或修改默认路由会在瞬间断网,尤其会切断当前的 SSH 会话。改动前先准备好回滚命令,能用 replace 就不要先 del 再 add。
由 ip route 临时添加的路由重启后失效。需要持久化时写入发行版对应的配置文件,或通过 NetworkManager(nmcli)维护,避免重启后路由静默消失。