需检查系统路由表以确认网络路径或排查连通性问题,可使用route -n或ip route show查看,用route add或ip route add添加临时路由,并通过ip route get、ping和tcpdump验证生效。

如果您需要确认当前Linux系统中已配置的网络路径,或排查数据包无法到达特定目标的问题,则需检查系统路由表。以下是查询及添加路由规则的具体操作方法:
一、使用 route 命令查看路由表
route 命令是传统路由管理工具,可直接显示内核IP路由表内容,-n 参数避免DNS解析,提升响应速度与准确性。
1、在终端中执行 route -n 命令,输出将包含 Destination(目标网络)、Gateway(网关)、Genmask(子网掩码)、Iface(出口接口)等字段。
2、若仅需查看默认路由,可执行 route -n | grep '^0.0.0.0' 过滤出 default 条目。
3、如需查看主机路由(单IP目标),可执行 route -n | grep 'UH',其中 UH 标志表示该行为主机路由。
二、使用 ip route 命令查看路由表
ip route 是现代推荐的替代命令,属于 iproute2 工具集,输出更结构化,支持 IPv4/IPv6 统一语法,且不依赖过时的 net-tools 包。
1、运行 ip route show 显示全部当前生效的路由条目,包括 kernel 自动添加的直连网段和静态配置项。
2、如需筛选特定目标网络,例如 192.168.5.0/24,执行 ip route show 192.168.5.0/24。
3、查看默认网关时,可直接输入 ip route | grep 'default via' 获取下一跳地址与出接口。
三、使用 route 命令添加临时路由
route add 添加的路由仅存在于内存中,系统重启、网络服务重载或网卡 down/up 后即丢失,适用于调试与临时通路建立。
1、向指定主机添加路由:执行 sudo route add -host 10.0.0.100 gw 192.168.1.1 dev eth0,表示访问 10.0.0.100 时经由 192.168.1.1 转发,强制走 eth0 接口。
2、向指定网络添加路由:执行 sudo route add -net 172.16.0.0 netmask 255.255.0.0 gw 192.168.2.254,使所有发往 172.16.0.0/16 的流量经该网关转发。
3、添加默认路由(覆盖原有):先删除原默认路由 sudo route del default,再执行 sudo route add default gw 192.168.10.1 dev ens33。
四、使用 ip route 命令添加临时路由
ip route add 提供更清晰的 CIDR 表达方式与接口绑定能力,是当前主流发行版首选的临时路由配置方式。
1、为单个主机添加路由:运行 sudo ip route add 10.20.30.40/32 via 192.168.1.254 dev eth1,/32 明确标识主机路由。
2、为网络段添加路由:执行 sudo ip route add 192.168.100.0/24 via 10.1.1.1 dev bond0,指定下一跳与物理出口设备。
3、添加带度量值的多路径路由:使用 sudo ip route add 10.0.0.0/8 via 172.16.0.1 dev eth2 metric 200 设置跃点数,影响选路优先级。
五、验证路由是否生效
添加路由后必须验证其是否被内核接受并参与实际转发决策,避免因语法错误或冲突导致静默失败。
1、立即执行 ip route get 192.168.200.5,该命令模拟查找过程并返回匹配路由及其出接口与网关。
2、对目标地址发起连通性测试:运行 ping -c 3 -I eth0 192.168.200.5,-I 强制指定源接口,验证路由是否按预期路径转发。
3、抓包确认实际路径:执行 tcpdump -i any host 192.168.200.5 -n -c 2,观察数据包是否从预期接口发出并携带正确目的地址。










