Routing

不指定網關的 Windows 靜態路由(下一跳)

  • July 14, 2020

我有以下情況:

電腦 A: 198.51.100.8, 網路遮罩255.255.255.0

電腦 B: 203.0.113.9, 網路遮罩255.255.255.0

兩台電腦在同一個 LAN 網段上;在這兩種情況下都沒有指定預設網關。

為了讓這兩台電腦相互通信,我添加了兩條靜態路由,如下所示:

route add 203.0.113.9 mask 255.255.255.255 198.51.100.8

但是,我更願意通過指定網路介面而不是指定網關 IP 地址來添加靜態路由。

這可以通過使用以下命令在 Linux 上實現:

ip route add 203.0.113.9 dev eth0

同樣在 FreeBSD 中:

route add 203.0.113.9/32 -iface fxp0 -cloning

但是,我不知道如何使用 Windows 執行此操作。理想情況下,我想做類似的事情:

route add 203.0.113.9 mask 255.255.255.255 if 2

但這只是列印出route命令的用法,這告訴我我做錯了。我也嘗試過使用netsh,它告訴我:

> netsh routing ip add persistentroute 203.0.113.9 255.255.255.255 "Local Area Connection"
Specify the next-hop for non point-to-point interfaces.

有什麼想法或建議嗎?


更新:當我最初發布這個問題時,我使用的是 Windows XP。但我忽略了提及這一點。

我會留下灰熊的原始答案,因為它對我最初的問題是正確的。但是,如果您使用的是比 XP/2003 更新的 Windows 版本,請嘗試其他答案之一。

Windows 可能無法做到這一點

http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/route.mspx

Quote: 對於本地連接的子網路由,網關地址是分配給連接到子網的介面的 IP 地址。

0.0.0.0在 Windows 中,您可以通過作為網關傳遞,在不知道網關的情況下添加基於介面的路由

這給出了這樣的東西:

route add <IPtoRoute> mask <MaskOfTheIp> 0.0.0.0 IF <InterfaceNumber>

route add 203.0.113.9 mask 255.255.255.255 0.0.0.0 IF 2

引用自:https://serverfault.com/questions/115654