菜鸟科技网

route命令如何查看或修改路由表?

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

route命令如何查看或修改路由表?-图1
(图片来源网络,侵删)

route 命令的基本语法

route [-f] [-p] [command [destination] [mask netmask] [gateway] [metric]] 
      [if interface]

核心参数说明:

  • -f: 清除所有条目的路由表,这个操作是永久的,直到你手动添加新的路由,它会删除所有不是主机路由(mask 255.255.255.255)、网络路由或默认路由的条目。
  • -p: 将路由设置为“永久”路由,默认情况下,手动添加的路由在系统重启后会丢失,使用 -p 参数可以使路由持久化,保存在注册表中,重启后依然有效。注意: -p 参数不能与 add 命令中的 ifmetric 参数一起使用。
  • command: 要执行的操作,主要有四个:
    • add: 添加一条新的路由。
    • delete: 删除一条路由。
    • change: 修改现有路由的网关或接口。
    • print: 显示路由表,这是最常用的命令,可以简写为 route print
  • destination: 目标网络或主机的 IP 地址。168.2.0168.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/24168.2.0/24,你的电脑在 168.1.0 网段,但需要访问 168.2.0 网段的资源,主路由器不知道如何到达 168.2.0 网段,但你知道一个可以直接访问到该网段的“旁路”路由器,地址为 168.1.10

你需要添加一条路由,告诉电脑:要去 168.2.0 这个网段,请通过 168.1.10 这个网关。

route命令如何查看或修改路由表?-图2
(图片来源网络,侵删)
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命令如何查看或修改路由表?-图3
(图片来源网络,侵删)
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

你可以这样做:

  1. 确保默认路由指向互联网出口: 通常情况下,主默认路由会指向你的互联网网关 0.0.1

  2. 添加一条更具体的内网路由: 你需要添加一条指向 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

重要注意事项

  1. 管理员权限:在 Windows Vista 及更高版本中,执行 route addchangedelete 等修改操作必须以管理员身份运行命令提示符或 PowerShell。
  2. 持久化 vs 临时-p 参数非常重要,对于服务器或需要稳定网络环境的电脑,-p 是首选,对于临时排错或测试,不使用 -p 更安全。
  3. 网关可达性:你设置的 gateway 必须是你电脑本地子网内的一个地址,或者与你电脑在同一网段,否则,电脑根本不知道如何到达这个“网关”,路由条目将无效。
  4. 跃点数:在复杂的网络环境中,合理设置 metric 可以精确控制流量走向,默认情况下,直连路由的跃点数很低,而通过网关的路由跃点数较高。
  5. 现代替代方案:对于图形化界面,可以使用 netsh interface ipv4 add route 命令,功能更强大,在 PowerShell 中,可以使用 New-NetRoute cmdlet,这是更现代、更推荐的方式,但 route 命令因其简单直接,在快速排查和脚本中依然非常有用。
分享:
扫描分享到社交APP
上一篇
下一篇