Windows 操作系统添加路由完整教程 - 命令行 + 图形界面多种方法详解
前言
在 Windows 操作系统中,路由表决定了网络数据包的转发路径。当需要访问特定网段、配置多网卡环境、搭建 VPN 或解决网络连通性问题时,经常需要手动添加路由。本文详细介绍 Windows 系统添加路由的多种方法,包括命令行(route 命令、netsh 命令、PowerShell)和图形界面操作,适用于 Windows 10/11、Windows Server 2016/2019/2022 等版本。
适用系统:Windows 10/11、Windows Server 2016/2019/2022
权限要求:管理员权限
一、路由基础概念
1.1 什么是路由表
路由表是操作系统中存储的网络路径信息表,当计算机需要发送数据包时,会根据目标 IP 地址查询路由表,确定从哪个网卡发出、通过哪个网关转发。
1.2 路由表关键参数
| 参数 | 说明 | 示例 |
|---|---|---|
| 目标网络 | 要访问的目标网段 | 192.168.10.0 |
| 子网掩码 | 定义网络范围 | 255.255.255.0 |
| 网关 | 下一跳路由器 IP | 192.168.1.1 |
| 接口 | 本地网卡接口 | 192.168.1.100 |
| 跃点数 | 路由优先级(值越小优先级越高) | 10 |
1.3 常见应用场景
- 多网卡环境 - 内网和外网同时访问
- VPN 连接 - 指定流量通过 VPN 隧道
- 网络隔离 - 不同部门访问不同网段
- 故障排查 - 解决网络连通性问题
- 负载均衡 - 多出口路由选择
---
二、查看当前路由表
2.1 使用 route print 命令
# 以管理员身份打开命令提示符(CMD)
# 方法 1:Win+X → Windows PowerShell(管理员)
# 方法 2:搜索"cmd" → 右键"以管理员身份运行"
# 查看完整路由表
route print
# 查看 IPv4 路由表
route print -4
# 查看 IPv6 路由表
route print -6
# 示例输出:
# ===========================================================================
# 接口列表
# 15...00 0c 29 1a 2b 3c ......Intel(R) Ethernet Connection
# 12...00 0c 29 1a 2b 3d ......VMware Virtual Ethernet Adapter
# ===========================================================================
# IPv4 路由表
# ===========================================================================
# 活动路由:
# 网络目标 网络掩码 网关 接口 跃点数
# 0.0.0.0 0.0.0.0 192.168.1.1 192.168.1.100 25
# 10.0.0.0 255.0.0.0 192.168.1.2 192.168.1.100 10
# 192.168.1.0 255.255.255.0 在链路上 192.168.1.100 281
2.2 使用 netsh 命令
# 查看 IPv4 路由表
netsh interface ipv4 show route
# 查看 IPv6 路由表
netsh interface ipv6 show route
# 示例输出:
# 发布 类型 跃点数 预 前缀 索引 下一个跃点
# 否 手动 256 否 0.0.0.0/0 15 192.168.1.1
# 否 手动 256 否 10.0.0.0/8 15 192.168.1.2
2.3 使用 PowerShell
# 查看 IPv4 路由表
Get-NetRoute -AddressFamily IPv4
# 查看 IPv6 路由表
Get-NetRoute -AddressFamily IPv6
# 查看特定接口的路由
Get-NetRoute -InterfaceIndex 15
# 查看详细信息
Get-NetRoute | Format-Table -AutoSize
# 示例输出:
# ifIndex DestinationPrefix NextHop RouteMetric PolicyStore
# ------- ----------------- ------- ----------- -----------
# 15 0.0.0.0/0 192.168.1.1 25 ActiveStore
# 15 10.0.0.0/8 192.168.1.2 10 ActiveStore
2.4 路由表字段说明
| 字段 | 说明 |
|---|---|
| 网络目标 | 目标网络地址或主机地址 |
| 网络掩码 | 子网掩码,定义网络范围 |
| 网关 | 下一跳地址,"在链路上"表示直连 |
| 接口 | 本地网卡 IP 地址 |
| 跃点数 | 路由优先级,数值越小优先级越高 |
| ifIndex | 接口索引号 |
---
三、使用 route 命令添加路由
3.1 添加临时路由(重启后消失)
# 基本语法
route add 目标网络 mask 子网掩码 网关
# 示例 1:添加到达 10.0.0.0/8 网段的路由
route add 10.0.0.0 mask 255.0.0.0 192.168.1.2
# 示例 2:添加到达特定主机的路由(/32)
route add 172.16.1.100 mask 255.255.255.255 192.168.1.1
# 示例 3:添加路由并指定跃点数
route add 192.168.10.0 mask 255.255.255.0 192.168.1.3 metric 10
# 示例 4:添加默认路由(所有流量通过此网关)
route add 0.0.0.0 mask 0.0.0.0 192.168.1.1
# 验证添加结果
route print | findstr "10.0.0.0"
route print | findstr "192.168.10.0"
3.2 添加永久路由(重启后保留)
# 使用 -p 参数创建永久路由
route -p add 目标网络 mask 子网掩码 网关
# 示例 1:永久路由到 10.0.0.0/8
route -p add 10.0.0.0 mask 255.0.0.0 192.168.1.2
# 示例 2:永久路由并指定跃点数
route -p add 192.168.10.0 mask 255.255.255.0 192.168.1.3 metric 10
# 示例 3:永久路由到多个网段
route -p add 172.16.0.0 mask 255.255.0.0 192.168.1.2
route -p add 172.17.0.0 mask 255.255.0.0 192.168.1.2
route -p add 172.18.0.0 mask 255.255.0.0 192.168.1.2
# 验证永久路由
route print
# 永久路由会在路由表中显示为"永久路由"部分
3.3 指定网络接口
# 先查看接口索引号
route print
# 或使用
netsh interface ipv4 show interfaces
# 示例输出:
# Idx Met MTU 状态 名称
# --- ---------- ---------- ------------ ---------------------------
# 15 25 1500 connected Ethernet
# 12 25 1500 connected VMware Network Adapter
# 使用 if 参数指定接口
route add 10.0.0.0 mask 255.0.0.0 192.168.1.2 if 15
# 永久路由指定接口
route -p add 10.0.0.0 mask 255.0.0.0 192.168.1.2 if 15
3.4 修改现有路由
# 修改路由的网关
route change 10.0.0.0 mask 255.0.0.0 192.168.1.5
# 修改路由的跃点数
route change 10.0.0.0 mask 255.0.0.0 192.168.1.2 metric 20
# 同时修改网关和跃点数
route change 10.0.0.0 mask 255.0.0.0 192.168.1.5 metric 15
3.5 删除路由
# 删除特定路由
route delete 10.0.0.0
# 删除后验证
route print | findstr "10.0.0.0"
# 删除所有路由(谨慎使用)
route -f
# 删除默认路由
route delete 0.0.0.0
---
四、使用 netsh 命令添加路由
4.1 添加临时路由
# 基本语法
netsh interface ipv4 add route 目标网络/掩码长度 接口名称 网关
# 示例 1:添加路由
netsh interface ipv4 add route 10.0.0.0/8 "Ethernet" 192.168.1.2
# 示例 2:指定跃点数
netsh interface ipv4 add route 192.168.10.0/24 "Ethernet" 192.168.1.3 metric=10
# 示例 3:使用接口索引号
netsh interface ipv4 add route 10.0.0.0/8 15 192.168.1.2
# 验证
netsh interface ipv4 show route
4.2 添加永久路由
# netsh 添加的路由默认是永久的
# 使用 store=persistent 参数明确指定
netsh interface ipv4 add route 10.0.0.0/8 "Ethernet" 192.168.1.2 store=persistent
# 查看持久化路由
netsh interface ipv4 show route
4.3 删除路由
# 删除路由
netsh interface ipv4 delete route 10.0.0.0/8 "Ethernet"
# 或删除所有到特定网络的路由
netsh interface ipv4 delete route 10.0.0.0/8
---
五、使用 PowerShell 添加路由
5.1 添加临时路由
# 基本语法
New-NetRoute -DestinationPrefix 目标网络/掩码长度 -NextHop 网关 -InterfaceIndex 接口索引
# 示例 1:添加路由
New-NetRoute -DestinationPrefix "10.0.0.0/8" -NextHop "192.168.1.2" -InterfaceIndex 15
# 示例 2:指定跃点数
New-NetRoute -DestinationPrefix "192.168.10.0/24" -NextHop "192.168.1.3" -RouteMetric 10 -InterfaceIndex 15
# 示例 3:添加默认路由
New-NetRoute -DestinationPrefix "0.0.0.0/0" -NextHop "192.168.1.1" -InterfaceIndex 15
# 验证
Get-NetRoute -AddressFamily IPv4 | Where-Object {$_.DestinationPrefix -like "10.0.0.0*"}
5.2 添加永久路由
# PowerShell 添加的路由默认是永久的
# 使用-PolicyStore ActiveStore 参数
New-NetRoute -DestinationPrefix "10.0.0.0/8" -NextHop "192.168.1.2" -InterfaceIndex 15 -PolicyStore ActiveStore
# 永久保存
New-NetRoute -DestinationPrefix "10.0.0.0/8" -NextHop "192.168.1.2" -InterfaceIndex 15 -PolicyStore PersistentStore,ActiveStore
5.3 修改路由
# 修改路由的跃点数
Set-NetRoute -DestinationPrefix "10.0.0.0/8" -NextHop "192.168.1.2" -RouteMetric 20
# 修改路由的网关
Set-NetRoute -DestinationPrefix "10.0.0.0/8" -InterfaceIndex 15 -NextHop "192.168.1.5"
5.4 删除路由
# 删除路由
Remove-NetRoute -DestinationPrefix "10.0.0.0/8" -NextHop "192.168.1.2" -Confirm:$false
# 删除所有到特定网络的路由
Get-NetRoute -DestinationPrefix "10.0.0.0/*" | Remove-NetRoute -Confirm:$false
# 删除默认路由
Remove-NetRoute -DestinationPrefix "0.0.0.0/0" -Confirm:$false
---
六、图形界面添加路由
6.1 通过"路由和远程访问"添加(服务器版)
# 仅适用于 Windows Server 版本
# 步骤 1:打开路由和远程访问
1. 打开"服务器管理器"
2. 工具 → 路由和远程访问
# 步骤 2:配置路由
1. 展开服务器名称
2. 展开"IPv4"
3. 右键点击"静态路由"
4. 选择"新建静态路由"
# 步骤 3:填写路由信息
- 接口:选择网卡
- 目标:10.0.0.0
- 网络掩码:255.0.0.0
- 网关:192.168.1.2
- 跃点数:10
# 步骤 4:确认添加
点击"确定"保存
6.2 通过注册表添加永久路由
# 警告:修改注册表有风险,请先备份!
# 步骤 1:打开注册表编辑器
Win+R → 输入 regedit → 回车
# 步骤 2:导航到路由配置项
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\PersistentRoutes
# 步骤 3:添加字符串值
1. 右键 → 新建 → 字符串值
2. 名称:自定义名称(如 Route1)
3. 值数据:目标网络,掩码,网关,跃点数,接口
示例:10.0.0.0,255.0.0.0,192.168.1.2,10,15
# 步骤 4:重启计算机生效
6.3 通过批处理脚本添加
# 创建批处理文件 add_routes.bat
@echo off
echo 正在添加路由...
route -p add 10.0.0.0 mask 255.0.0.0 192.168.1.2 metric 10
route -p add 172.16.0.0 mask 255.255.0.0 192.168.1.2 metric 10
route -p add 192.168.10.0 mask 255.255.255.0 192.168.1.3 metric 20
echo 路由添加完成!
pause
# 以管理员身份运行批处理文件
# 右键 → 以管理员身份运行
---
七、实战场景示例
7.1 场景 1:双网卡同时访问内网和外网
环境说明:
- 网卡 1(Ethernet):192.168.1.100/24,网关 192.168.1.1(外网)
- 网卡 2(Ethernet 2):10.1.1.100/24,网关 10.1.1.1(内网)
- 需求:默认走外网,内网网段(10.x.x.x、172.16.x.x)走内网
# 以管理员身份打开 CMD
# 1. 查看当前路由表
route print
# 2. 删除默认路由(如果有冲突)
route delete 0.0.0.0
# 3. 添加默认路由(外网)
route -p add 0.0.0.0 mask 0.0.0.0 192.168.1.1 metric 25
# 4. 添加内网路由
route -p add 10.0.0.0 mask 255.0.0.0 10.1.1.1 metric 10
route -p add 172.16.0.0 mask 255.255.0.0 10.1.1.1 metric 10
route -p add 172.17.0.0 mask 255.255.0.0 10.1.1.1 metric 10
# 5. 验证
route print
ping www.baidu.com # 测试外网
ping 10.1.1.50 # 测试内网
7.2 场景 2:VPN 流量分流
环境说明:
- 本地网络:192.168.1.0/24
- VPN 网络:10.8.0.0/24,网关 10.8.0.1
- 需求:访问公司内网(192.168.100.0/24)走 VPN,其他走本地
# 连接 VPN 后执行
# 1. 查看 VPN 接口索引
route print | findstr "10.8"
# 2. 添加公司内网路由(通过 VPN)
route -p add 192.168.100.0 mask 255.255.255.0 10.8.0.1 metric 1
# 3. 添加其他需要通过 VPN 访问的网段
route -p add 192.168.101.0 mask 255.255.255.0 10.8.0.1 metric 1
route -p add 192.168.102.0 mask 255.255.255.0 10.8.0.1 metric 1
# 4. 验证
tracert 192.168.100.50 # 应该通过 VPN
7.3 场景 3:多出口负载均衡
# 两条宽带出口,根据目标网段选择出口
# 出口 1:电信,网关 192.168.1.1
# 出口 2:联通,网关 192.168.2.1
# 电信路由(访问电信资源)
route -p add 61.135.0.0 mask 255.255.0.0 192.168.1.1 metric 10
route -p add 61.136.0.0 mask 255.255.0.0 192.168.1.1 metric 10
# 联通路由(访问联通资源)
route -p add 123.125.0.0 mask 255.255.0.0 192.168.2.1 metric 10
route -p add 123.126.0.0 mask 255.255.0.0 192.168.2.1 metric 10
# 默认路由(主出口)
route -p add 0.0.0.0 mask 0.0.0.0 192.168.1.1 metric 25
7.4 场景 4:访问特定服务器
# 需要访问特定服务器,通过指定网关
# 访问数据库服务器
route -p add 192.168.50.100 mask 255.255.255.255 192.168.1.254 metric 1
# 访问文件服务器
route -p add 192.168.50.101 mask 255.255.255.255 192.168.1.254 metric 1
# 访问备份服务器
route -p add 192.168.50.102 mask 255.255.255.255 192.168.1.254 metric 1
---
八、路由持久化方法
8.1 不同方法的持久性对比
| 方法 | 默认持久性 | 永久保存参数 |
|---|---|---|
| route add | 临时(重启消失) | -p |
| netsh add route | 永久 | store=persistent |
| PowerShell New-NetRoute | 临时 | -PolicyStore PersistentStore |
8.2 开机自动添加路由脚本
# 创建 PowerShell 脚本 C:\Scripts\Add-Routes.ps1
# 等待网络初始化
Start-Sleep -Seconds 10
# 添加路由
New-NetRoute -DestinationPrefix "10.0.0.0/8" -NextHop "192.168.1.2" -InterfaceIndex 15 -PolicyStore ActiveStore
New-NetRoute -DestinationPrefix "172.16.0.0/12" -NextHop "192.168.1.2" -InterfaceIndex 15 -PolicyStore ActiveStore
# 记录日志
Add-Content -Path "C:\Logs
outes.log" -Value "$(Get-Date): Routes added successfully"
# 创建任务计划
# 1. 打开任务计划程序(taskschd.msc)
# 2. 创建基本任务
# 3. 触发器:启动时
# 4. 操作:启动程序
# 程序:powershell.exe
# 参数:-ExecutionPolicy Bypass -File "C:\Scripts\Add-Routes.ps1"
# 5. 勾选"使用最高权限运行"
---
九、故障排查
9.1 路由不生效
# 1. 检查路由表
route print
netsh interface ipv4 show route
# 2. 检查路由优先级(跃点数)
# 跃点数小的路由优先
route print | findstr "10.0.0.0"
# 3. 检查网关是否可达
ping 192.168.1.2
# 4. 检查防火墙
netsh advfirewall show allprofiles
# 5. 测试路由
tracert -d 10.1.1.50
pathping 10.1.1.50
9.2 路由冲突
# 查看是否有重复路由
route print | findstr "10.0.0.0"
# 删除冲突路由
route delete 10.0.0.0
# 重新添加(指定不同跃点数)
route -p add 10.0.0.0 mask 255.0.0.0 192.168.1.2 metric 10
9.3 重启后路由丢失
# 确保使用了 -p 参数
route -p add 10.0.0.0 mask 255.0.0.0 192.168.1.2
# 检查注册表
reg query HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\PersistentRoutes
# 或使用 PowerShell 永久保存
New-NetRoute -DestinationPrefix "10.0.0.0/8" -NextHop "192.168.1.2" -PolicyStore PersistentStore
9.4 常见错误代码
| 错误信息 | 原因 | 解决方法 |
|---|---|---|
| The route addition failed: 5 | 权限不足 | 以管理员身份运行 |
| The parameter is incorrect | 参数格式错误 | 检查 IP、掩码格式 |
| The route already exists | 路由已存在 | 先删除再添加 |
| The system cannot find the file specified | 接口不存在 | 检查接口名称/索引 |
---
十、最佳实践建议
10.1 路由规划
- 提前规划好网段和网关,避免冲突
- 使用合理的跃点数,确保优先级正确
- 记录所有路由配置,便于维护和故障排查
10.2 安全建议
- 谨慎添加默认路由(0.0.0.0/0)
- 定期审查路由表,删除无用路由
- 生产环境变更前在测试环境验证
10.3 文档管理
- 保存路由配置脚本
- 记录变更时间和原因
- 建立路由配置文档
10.4 监控告警
- 监控关键路由状态
- 配置路由变更告警
- 定期检查路由可达性
---
总结
Windows 系统添加路由有多种方法,每种方法都有其适用场景:
| 方法 | 优点 | 缺点 | 推荐场景 |
|---|---|---|---|
| route 命令 | 简单直观 兼容性好 |
功能相对基础 | 快速配置 临时测试 |
| netsh 命令 | 功能丰富 支持持久化 |
语法稍复杂 | 服务器配置 批量管理 |
| PowerShell | 功能强大 易于自动化 |
需要 PowerShell 环境 | 自动化脚本 批量部署 |
| 图形界面 | 直观易用 无需记命令 |
效率低 不适合批量 |
初次配置 不熟悉命令行 |
推荐做法:
- ✅ 临时测试使用
route add - ✅ 永久配置使用
route -p add或 PowerShell - ✅ 批量部署使用 PowerShell 脚本
- ✅ 重要变更先备份路由表
- ✅ 生产环境在维护窗口操作
掌握这些方法后,你可以灵活应对各种网络路由配置需求!🚀
注:本文基于 Windows 10/11 和 Windows Server 2019/2022 编写。不同版本可能在命令和界面上略有差异,请根据实际情况调整。生产环境操作前建议在测试环境验证。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。





