文章目录
核心
bash
# 查看完整路由表
ip route
# 查询单个IP的路由匹配结果(你上面用的重点命令)
ip route get 42.247.111.130
bash
# 样例1:走网关(正常NAT转发)
42.247.111.130 via 172.17.0.1 dev eth0 src 172.17.0.2 cache
# 样例2:直连路由,不走网关(内核认为二层可达)
42.247.111.130 dev eth0 src 172.17.0.2 cache
精确路由 > 子网直连路由 > 默认路由
常用命令
bash
# 1. 添加【网关路由】(访问目标网段走指定下一跳)
ip route add 42.247.111.130/32 via 172.17.0.1 dev eth0
# 2. 添加【直连路由】,不走网关,直接ARP
ip route add 42.247.111.130/32 dev eth0
# 3. 添加默认路由(所有不知道的流量都走这个网关)
ip route add default via 172.17.0.1 dev eth0
# 4. 删除路由(写法和add保持一致,add→del)
ip route del 42.247.111.130/32 dev eth0
# 5. 修改已有路由(change)
ip route change 42.247.111.130/32 via 172.17.0.1 dev eth0
# 6. 清空路由缓存(排查缓存异常时用)
ip route flush cache
附加参数(高频)
metric N:路由权重,数字越小优先级越高
bash
ip route add 10.0.0.0/24 via 172.17.0.1 dev eth0 metric 100
table N:指定路由表(多路由表 / 策略路由)scope link:链路域路由,仅本网口二层可达(直连路由默认带这个标记)