为什么这个 ROUTE ADD 命令会失败?

为什么这个 ROUTE ADD 命令会失败?

我试图通过添加一条通向“无处”的特定路由(而不是默认网关)来阻止对单个 IP 地址的访问:

route ADD 199.239.136.200 MASK 255.255.255.255 127.0.0.1 METRIC 10

问题是该命令失败并出现以下错误:

路线添加失败:参数不正确。

它没有说明哪个参数不正确。我可能违反了网络基础的隐含规则,但我不知道它是什么。你知道哪个参数不正确吗?更重要的是,为什么?

谢谢。

答案1

不能将环回设备 (127.0.0.1) 用作网关。这没有意义。

此命令的意思是“通过此网关路由所有发往此地址的流量”。由于环回不会路由到任何网络,因此它不起作用。

找出您希望此流量通过哪个网关并改用该网关。在评论中,您提到使用自己的 IP 地址。这可能会起作用,因为您的 IP 无法路由流量。我还没有测试过,所以 ymmv:

route ADD 199.239.136.200 MASK 255.255.255.255 <OWN_IP> METRIC 10

可能值得你去看看维基百科关于环回的文章了解更多信息。此外,请查看这个超级用户问题有关网关在路由中的作用的信息。

答案2

您正在尝试将自己的设备添加为网关,对于您计算机上的每个端口,我都能想出一个这样做的理由。问题是,Windows 不允许您将 127.0.0.1 设置为网关。这可能是因为它没有被 Windows ipconfig 定义。因此,Windows 不再使用 127.0.0.1 作为网关,而是将其重新定义为“On-Link”:

Destination    Netmask     Gateway    Interface    Metric 
127.0.0.0      255.0.0.0   On-link    10.10.2.210  11

要设置 On-Link 网关,您必须将其指定为 0.0.0.0 。我猜微软知道这个网关是不可能的,所以他们内部将其定义为本地地址网关。

要设置它,只需使用:

C:\Windows\system32>route add 127.0.0.0 mask 255.0.0.0 0.0.0.0
 OK!

C:\Windows\system32>route add 127.0.0.1 mask 255.255.255.255 0.0.0.0
 OK!

确保您指定自己的度量和接口,因为 Windows 可能不会选择您想要使用的度量和接口。

答案3

将子网掩码设置为 255.255.255.255 后,您将屏蔽地址的每一位,这对我来说听起来是个问题

相关内容