windows/linux添加路由
一、路由追踪(路径诊断)
Windows系统
tracert命令: 功能:追踪数据包路径,显示每个节点的IP和延迟。 示例:tracert 8.8.8.8(追踪到Google DNS的路由)。 pathping命令: 结合tracert和ping,提供节点丢包率和延迟统计。
Linux系统
traceroute命令: 默认使用UDP协议,可切换为ICMP(-I参数)或TCP(-T参数)。 示例:traceroute -I google.com(ICMP协议追踪)。 mtr命令: 实时刷新路径和延迟,支持持续监控:mtr 8.8.8.8。 tracepath命令: 无需root权限,自动检测MTU(最大传输单元)。
二、路由表查看
Windows
route print:
显示活动路由(目标网段、掩码、网关、接口、跃点数)及永久路由。
Linux
route -n:
以数字格式输出路由表(避免DNS解析延迟)。
ip route show:
更现代的替代命令,支持IPv4/IPv6和策略路由。
三、路由操作(增删改)
3.1. 路由命令参数详解
3.1.1. Windows 路由命令参数详解
1. 基本语法
route add [目标网络] mask [子网掩码] [网关] [参数]
2. 常用参数
|
参数 |
作用 |
示例 |
|---|---|---|
|
|
永久路由(重启后保留) |
|
|
|
指定子网掩码 |
|
|
|
数据包转发的下一跳IP |
|
|
|
强制指定发送数据的网卡(解决多网卡冲突) |
|
|
|
路由优先级(数值越小优先级越高) |
|
|
|
删除路由 |
|
3. 关键参数说明
if 14: 在您的 route print输出中,接口列表显示: 14...f4 6b 8c a4 cb 42 ......Intel(R) Ethernet Connection X722 for 1GbE #2 if 14表示强制使用 第二个物理网卡(索引为14)发送数据包。 何时需要?当主机有多个网卡(如一个连接内网,一个连接外网),需明确指定出口网卡避免路由混乱。 metric: 系统默认根据网卡速度自动计算(如千兆网卡通常为 20,百兆为 30)。 手动设置可覆盖默认值(例如:metric 10优先于 metric 20)。
3.1.2. Linux 路由命令参数详解
1. 基本语法(传统 route命令)
route add -net [目标网络] netmask [子网掩码] gw [网关] dev [网卡]
2. 现代语法(ip route命令)
ip route add [目标网络]/[掩码位数] via [网关] dev [网卡]
3. 常用参数
|
参数 |
作用 |
示例 |
|---|---|---|
|
|
目标为网络(非单主机) |
|
|
|
子网掩码(传统命令) |
|
|
|
指定网关(传统命令) |
|
|
|
指定网关(现代命令) |
|
|
|
强制指定发送数据的网卡 |
|
|
|
路由优先级 |
|
|
|
指定源IP(多IP绑定时使用) |
|
|
|
使用自定义路由表(非默认 |
|
4. 关键参数说明
dev eth0: 类似 Windows 的 if,指定数据从哪个网卡发出(如 eth0、ens33)。 查看网卡名: ip link show # 或 ifconfig metric: Linux 的 metric值越大优先级越低(与 Windows 相反)。 默认值通常为 0(主路由表)或 100(辅助路由)。
3.1.3. 跨系统对比
|
功能 |
Windows 命令 |
Linux 命令(传统) |
Linux 命令(现代) |
|---|---|---|---|
|
添加路由 |
|
|
|
|
永久生效 |
|
写入 |
写入 |
|
指定网卡 |
|
|
|
|
优先级控制 |
|
|
|
3.1.4. 实际案例
1. Windows 示例
route add -p 39.153.157.18 mask 255.255.255.255 172.17.11.1 if 14 metric 10 解释:永久添加一条路由,所有到 39.153.157.18的流量通过 172.17.11.1网关,从索引为 14的网卡发出,优先级为 10。
2. Linux 示例
ip route add 39.153.157.18/32 via 172.17.11.1 dev eth0 metric 100 解释:所有到 39.153.157.18的流量通过 172.17.11.1网关,从 eth0网卡发出,优先级为 100。
3.1.5. 常见问题
Q1: 如何查看网卡接口索引(Windows)? 运行 route print,在 “接口列表” 部分找到对应网卡的索引号(如 14)。 Q2: Linux 如何让路由永久生效? Ubuntu/Debian:编辑 /etc/network/interfaces,添加: post-up ip route add 39.153.157.18/32 via 172.17.11.1 dev eth0 CentOS/RHEL:创建文件 /etc/sysconfig/network-scripts/route-eth0,内容: 39.153.157.18/32 via 172.17.11.1 dev eth0 Q3: 如何删除路由? Windows: route delete 39.153.157.18 Linux: ip route del 39.153.157.18/32
3.1.6. 总结
Windows 的 if和 Linux 的 dev均用于绑定出口网卡,解决多网卡路由冲突。
掩码选择: /32(255.255.255.255)用于单主机,/24(255.255.255.0)用于网段。 优先级: Windows:metric值越小越优先。 Linux:metric值越大越优先。
3.2. 添加路由
Windows:
临时添加:route add 192.168.2.0 mask 255.255.255.0 192.168.1.1 永久添加:route add -p 192.168.2.0 mask 255.255.255.0 192.168.1.1
Linux:
传统命令:route add -net 192.168.2.0 netmask 255.255.255.0 gw 192.168.1.1 ip命令:ip route add 192.168.2.0/24 via 192.168.1.1 dev eth0
3.2. 删除路由
Windows:
route delete 192.168.2.0(删除目标网段路由)。
Linux:
route del -net 192.168.2.0 netmask 255.255.255.0 ip route del 192.168.2.0/24 via 192.168.1.1
3.3. 修改路由
Windows:
直接修改网关:route change 192.168.2.0 mask 255.255.255.0 192.168.1.2
Linux:
需先删除旧路由再添加新路由(无直接修改命令)。
四、高级功能与注意事项
协议选择:
Linux中可通过参数切换协议(如traceroute -T用TCP SYN包),绕过防火墙限制。
Windows的tracert仅支持ICMP,灵活性较低。
双网卡路由配置:
案例:Windows双网卡需删除默认路由,为不同网段添加静态路由(如办公网和互联网分离)。
路由度量值(Metric):
作用:优先级控制(数值越低优先级越高)。
示例:route add 192.168.2.0 mask 255.255.255.0 192.168.1.1 metric 10
4.1. 永久路由保存
4.1.1 Windows:
命令结构:
route add 192.168.2.0 mask 255.255.255.0 192.168.1.1 metric 10
参数详解
|
部分 |
含义 |
|---|---|
|
|
添加一条静态路由 |
|
|
目标网络地址,表示该路由规则适用的目标网段 |
|
|
子网掩码,与目标地址共同定义网段范围(这里是标准的C类局域网掩码) |
|
|
网关地址(下一跳),数据包必须通过此IP转发到目标网络 |
|
|
路由优先级,数值越小优先级越高(当多条路由冲突时选择此值最小的路径)实际作用 |
4.1.1.1 实际作用
这条命令的意思是:
“所有发送到 192.168.2.0/24网段的数据包,必须通过网关 192.168.1.1转发,且该路由的优先级为10。”
4.1.1.2 典型应用场景
多网卡环境:
例如:一台电脑同时连接内网(192.168.1.0/24)和专线(192.168.2.0/24),需手动指定专网流量走特定网关。
企业网络分区:
若 192.168.2.0/24是财务部子网,192.168.1.1是连接该子网的核心交换机IP。
路由优先级控制:
如果存在另一条到 192.168.2.0/24的路由(如 metric 20),系统会优先选择 metric 10的路径。
验证路由是否生效
route print | findstr 192.168.2.0
预期输出:
192.168.2.0 255.255.255.0 192.168.1.1 192.168.1.100 10 (其中 192.168.1.100是本机用于发送数据的网卡IP)
4.1.1.3 注意事项
网关必须可达:
执行前需确认能 ping 通 192.168.1.1,否则路由无效。
永久生效:
默认重启后路由会丢失,需加 -p参数永久保存:
route add -p 192.168.2.0 mask 255.255.255.0 192.168.1.1 metric 10
冲突处理:
若已有相同目标的路由,需先删除旧规则:
route delete 192.168.2.0
Linux系统差异:
在Linux中需使用 ip route命令,例如:
ip route add 192.168.2.0/24 via 192.168.1.1 dev eth0 metric 10
Linux:需将路由命令写入/etc/network/interfaces或/etc/sysconfig/network-scripts/(CentOS)
永久生效(写入配置文件): Ubuntu/Debian:
编辑
/etc/network/interfaces
添加: post-up ip route add 39.153.157.19/32 via 172.11.11.1 dev eth0
CentOS/RHEL:
编辑
/etc/sysconfig/network-scripts/route-eth0
添加: 39.153.157.19/32 via 172.11.11.1
4.1.2. Ubuntu/Debian 系统
配置行( /etc/network/interfaces):
post-up ip route add 39.153.157.19/32 via 172.11.11.1 dev eth0
参数解析:
|
部分 |
含义 |
|---|---|
|
|
表示在网卡启动( |
|
|
添加一条静态路由。 |
|
|
目标IP地址, |
|
|
指定下一跳网关地址(数据包转发到的下一个节点)。 |
|
|
指定从哪个网络接口(如 |
作用:
-
当系统启动或网卡
eth0激活时,自动添加一条规则:“所有发送到
39.153.157.19的数据包,通过网关172.11.11.1从eth0网卡发出。”
4.1.2.1. CentOS/RHEL 系统
配置行( /etc/sysconfig/network-scripts/route-eth0):
参数解析:
|
部分 |
含义 |
|---|---|
|
|
目标IP地址, |
|
|
指定下一跳网关地址。 |
作用:
-
系统启动时自动加载该文件,将规则添加到路由表:
“所有发送到
39.153.157.19的数据包,通过网关172.11.11.1转发。” -
注意:
-
文件名
route-eth0中的eth0需与实际网卡名一致(如ens33)。 -
若需指定出口网卡,需额外配置(默认根据网关自动选择接口)。
-
4.1.2.2. 共同原理
-
永久性:写入配置文件后,重启网络服务或系统时规则会自动生效,避免手动重复添加。
-
精确控制:
/32掩码确保仅影响39.153.157.19,其他流量走默认路由。 -
依赖网关:
via 172.11.11.1要求该网关必须可达(否则路由无效)。
4.1.2.3. 验证配置是否生效
Ubuntu/Debian:
CentOS/RHEL:
预期输出:
39.153.157.19 via 172.11.11.1 dev eth0
4.2. 故障排查
问题1:配置未生效
-
原因:网卡名不匹配(如配置中是
eth0,实际为ens33)。 -
解决:
问题2:网关不可达
-
现象:路由存在但
telnet仍不通。 -
解决:
总结
|
配置项 |
Ubuntu/Debian |
CentOS/RHEL |
|---|---|---|
|
配置文件 |
|
|
|
语法 |
|
|
|
生效命令 |
|
|
|
核心作用 |
指定单个IP的转发路径 |
同上 |
通过以上配置,您无需修改网卡默认网关,即可精准控制到 39.153.157.19的路由路径。
4.3. 替代工具:
tcptraceroute(Linux):基于TCP协议,穿透防火墙能力更强。
Wireshark:深度分析路由路径的底层数据包。
五、综合命令速查表
|
操作 |
Windows命令 |
Linux命令 |
|---|---|---|
|
路由追踪 |
|
|
|
路由表查看 |
|
|
|
添加路由 |
|
|
|
删除路由 |
|
|
|
修改路由 |
|
需删除后重新添加 |
六、避坑指南
权限问题:Windows需以管理员运行CMD;Linux的traceroute部分参数需sudo。
防火墙干扰:Linux建议用tcptraceroute或mtr -T(TCP模式)避免被拦截。
路由冲突:避免多网卡默认网关冲突,通过metric调整优先级。
掌握这些操作可覆盖90%的路由管理场景。若需更深入的策略路由(如基于源IP的路由选择),可进一步研究Linux的ip rule命令或Windows的netsh脚本。

浙公网安备 33010602011771号