route 命令是一个用于显示和操作 IP 路由表的命令行工具,它告诉你的电脑当需要发送数据到一个特定的网络或 IP 地址时,应该通过哪个“网关”(Gateway)或“下一跳”(Next Hop)地址来发送。

route 命令的基本语法
route [-f] [-p] [command [destination] [mask netmask] [gateway] [metric]]
[if interface]
核心参数说明:
-f: 清除所有条目的路由表,这个操作是永久的,直到你手动添加新的路由,它会删除所有不是主机路由(mask 255.255.255.255)、网络路由或默认路由的条目。-p: 将路由设置为“永久”路由,默认情况下,手动添加的路由在系统重启后会丢失,使用-p参数可以使路由持久化,保存在注册表中,重启后依然有效。注意:-p参数不能与add命令中的if和metric参数一起使用。command: 要执行的操作,主要有四个:add: 添加一条新的路由。delete: 删除一条路由。change: 修改现有路由的网关或接口。print: 显示路由表,这是最常用的命令,可以简写为route print。
destination: 目标网络或主机的 IP 地址。168.2.0或168.2.50。mask netmask: 目标网络的子网掩码。255.255.0,如果省略,默认为255.255.255(表示一个单一主机)。gateway: 数据包要发送到的网关(路由器)的 IP 地址,这是路由的核心。metric: 路由的“跃点数”(Metric),跃点数是一个成本值,系统会使用它来选择最佳路径,跃点数越低,路由优先级越高,如果有多条路由可以到达同一个目的地,系统会选择跃点数最小的那条。if interface: 指定接口的索引号,你可以通过ipconfig /all查看各网络接口的索引,通常可以省略,系统会自动选择。
最常用和实用的命令示例
查看路由表 (route print)
这是了解当前网络配置的第一步,它会显示你的电脑知道的所有“路”。
route print
输出结果会分为几部分,重点关注 Network Destination(目标网络)、Netmask(子网掩码)、Gateway(网关)和 Interface(接口)这几列。
0.0.0:这是默认路由,当目标地址不在任何其他特定路由条目中时,数据包都会通过这里的网关发送(通常是你的主路由器)。0.0.0:本地回环地址,用于本机通信。168.1.0:你所在局域网的路由,直接通过本机网卡发送到同一网段的设备,无需经过网关。0.0.0:多播地址。
添加一条永久路由
场景: 公司内网有两个子网 168.1.0/24 和 168.2.0/24,你的电脑在 168.1.0 网段,但需要访问 168.2.0 网段的资源,主路由器不知道如何到达 168.2.0 网段,但你知道一个可以直接访问到该网段的“旁路”路由器,地址为 168.1.10。
你需要添加一条路由,告诉电脑:要去 168.2.0 这个网段,请通过 168.1.10 这个网关。

route -p add 192.168.2.0 mask 255.255.255.0 192.168.1.10
-p: 使此路由永久生效,重启电脑后依然存在。add: 添加操作。168.2.0: 目标网络。mask 255.255.255.0: 目标网络的子网掩码。168.1.10: 网关地址。
添加后,再次运行 route print,你会看到新增加的这条路由。
添加一条临时路由
如果你只是临时需要访问某个网络,不希望它永久存在,可以去掉 -p 参数。
route add 10.0.0.0 mask 255.0.0.0 192.168.1.1
这条路由会在电脑重启或使用 route -f 命令后失效。
删除一条路由
使用 delete 命令,并指定目标网络和掩码。

route delete 192.168.2.0 mask 255.255.255.0
系统会自动匹配并删除该条目。
修改一条路由
假设你之前添加的网关 168.1.10 出了问题,现在需要更换为 168.1.20。
route change 192.168.2.0 mask 255.255.255.0 192.168.1.20
清除所有路由表(慎用)
这个命令会删除除了永久路由和接口相关路由之外的所有条目,包括默认路由。
route -f
警告: 执行此命令后,你可能会失去与外部网络的连接,除非你立即添加新的默认路由,通常用于重置网络问题。
实战应用场景
场景:访问不同出口(多线路策略)
假设你有一台电脑,有两块网卡:
- 网卡A:连接到内网
168.1.0/24,网关是168.1.1。 - 网卡B:连接到互联网,网关是
0.0.1。
现在你希望:
- 访问公司内网
10.0.0/16的资源时,走网卡A的网关168.1.1。 - 访问所有其他互联网资源时,走网卡B的网关
0.0.1。
你可以这样做:
-
确保默认路由指向互联网出口: 通常情况下,主默认路由会指向你的互联网网关
0.0.1。 -
添加一条更具体的内网路由: 你需要添加一条指向
10.0.0网络的路由,并指定它走内网网关。route -p add 10.10.0.0 mask 255.255.0.0 192.168.1.1
为什么这样有效? 这是因为路由选择遵循“最长前缀匹配”原则,当你访问
10.5.50时:- 系统发现有一条精确匹配的路由
10.0.0/16。 - 系统也有一条通配的路由
0.0.0/0(默认路由)。 10.0.0/16的掩码位数(16位)比0.0.0/0的掩码位数(0位)更长,因此系统会选择更具体的路由,将数据包发送到168.1.1。
- 系统发现有一条精确匹配的路由
重要注意事项
- 管理员权限:在 Windows Vista 及更高版本中,执行
route add、change、delete等修改操作必须以管理员身份运行命令提示符或 PowerShell。 - 持久化 vs 临时:
-p参数非常重要,对于服务器或需要稳定网络环境的电脑,-p是首选,对于临时排错或测试,不使用-p更安全。 - 网关可达性:你设置的
gateway必须是你电脑本地子网内的一个地址,或者与你电脑在同一网段,否则,电脑根本不知道如何到达这个“网关”,路由条目将无效。 - 跃点数:在复杂的网络环境中,合理设置
metric可以精确控制流量走向,默认情况下,直连路由的跃点数很低,而通过网关的路由跃点数较高。 - 现代替代方案:对于图形化界面,可以使用
netsh interface ipv4 add route命令,功能更强大,在 PowerShell 中,可以使用New-NetRoutecmdlet,这是更现代、更推荐的方式,但route命令因其简单直接,在快速排查和脚本中依然非常有用。
