如何将静态TCP / IP路由添加到Windows路由表

在某些特定类型的环境中,您可能会发现将静态路由添加到Windows中的路由表很有用。这是解决方法。

有关的:如何使用Traceroute识别网络问题

路由表规定了所有数据包离开系统后的去向,无论该系统是物理路由器还是PC。大多数路由器(包括Windows PC内置的路由器)都使用某种形式的动态路由,其中​​路由器能够根据从其他路由器获得的信息来选择最佳的位置来转发数据包。如果您使用traceroute命令来查看数据包到达最终目的地时建立的连接,则可以在工作中看到它。

如果您想始终将某些流量转发到特定的路由器或网关,大多数路由器还允许您添加静态路由(不会动态更新的路由)。为什么?好吧,大多数人可能不会在家庭或小型企业中使用Windows,但这在某些情况下可能很有用,例如:

  • 您有两个Internet连接(也许一个用于常规用途,一个用于连接到工作网络),并且您希望到某个IP地址范围的所有流量都通过这些连接之一流出。
  • 您已经在网络上设置了多个子网,并且需要将流量定向到特定的子网。静态路由在测试这些类型的环境中特别有用。
  • 您实际上是将Windows PC用作网络的路由器,并且希望对其进行更好的控制。

如果有任何适合您的内容,请继续阅读。您需要深入研究命令提示符,才能向Windows路由表中添加静态路由,但这很简单,我们将逐步指导您完成操作。

查看Windows路由表

在开始添加路由之前,先查看路由表可能会有所帮助。按下Windows + X,然后在“高级用户”菜单上选择“命令提示符(Admin)”,以启动命令提示符。

笔记:如果您在Power Users菜单上看到PowerShell而不是Command Prompt,那是Windows 10的Creators Update附带的一个开关。如果需要,可以很容易地切换回显示在Power Users菜单上的Command Prompt,或者您可以尝试PowerShell。您可以在PowerShell中执行与命令提示符中几乎相同的所有操作,以及许多其他有用的操作。

有关的:如何在Windows + X Power Users菜单上放回命令提示符

在命令提示符处,键入以下命令,然后按Enter键:

路线打印

您会看到一长串的网络目标,以及将数据包转发到该目的地时网关将其转发到的网关。除非您已经向表格添加了静态路由,否则您在此处看到的所有内容都会动态生成。

将静态路由添加到Windows路由表

要将静态路由添加到表格,请使用以下语法键入命令:

路线ADD destination_network 面具 子网掩码  gateway_ip metric_cost

子网掩码metric_cost 组件对于命令是可选的。如果您未指定子网掩码,则会自动使用255.255.255.0。如果您未指定指标费用,则将使用比目标条目0.0.0.0大一个的费用。度量成本值只是相对于表中其他成本的成本,当Windows在可能到达同一目的地的多个路由之间做出决定时使用该度量值。

因此,例如,如果您要添加一条路由,以指定绑定到192.168.35.0子网的所有流量都流向了192.168.0.2的网关,而您只想使用自动度量标准成本,则可以使用以下命令:

路由添加192.168.35.0掩码255.255.255.0 192.168.0.2

如果您要使用 路线打印 命令以查看表格,您将看到新的静态路由。

这很容易,但是还有一点不足。添加静态路由时,默认情况下,它仅持续到下一次启动Windows时为止。原因是许多公司使用协调的静态路由列表,该列表会经常更新。他们只是分发一个批处理脚本文件,而不是在每台计算机上添加和更新所有这些路由,而是在Windows启动期间添加最新的路由。这使路由表保持相对整洁。

有关的:如何在Windows上编写批处理脚本

您当然可以自己使用批处理脚本方法。编写批处理脚本并不难。但是,如果您只是添加一条或两条您不希望经常更改的静态路线,则可以添加 -p 该命令的选项以使路由持久化。即使Windows启动,持久的路由也会保留在原位。使用我们之前使用的相同命令,可以通过以下修改使该路由持久化:

路由-p添加192.168.35.0掩码255.255.255.0 192.168.0.2

从Windows路由表中删除静态路由

当然,有时候您可能想从表中删除静态路由。您所要做的就是使用以下语法键入命令:

路线删除 destination_network

因此,要删除我们先前使用目标网络192.168.35.0创建的路由,我们要做的就是键入以下命令,然后按Enter:

路由删除192.168.35.0

是的,在管理大多数家庭和小型企业网络时,使用静态路由有些深奥。但是,如果您确实需要这样做,这是一个非常简单的过程。而且,如果您现在不需要这样做,至少您知道将来可以选择这样做。


$config[zx-auto] not found$config[zx-overlay] not found