Windows 服务器中与“ip route add X dev X”等效的是什么

Windows 服务器中与“ip route add X dev X”等效的是什么

我在本地网络中有两个子网 - 我需要通过本地端口从一个子网访问第二个子网,而不使用网关。

在 Linux 中我使用这个:

ip route add 90.5.5.0/24 dev eth0(服务器有 IP,例如 91.6.6.5)。数据直接发送到 MAC - “因此仅留在路由器中”。

请问我在 Windows 中怎样设置此功能?

谢谢你,帕维尔

编辑:这与在 Windows cmd 中指定到接口的路由- 我的问题是关于一个本地物理网络中一个接口的两个 /24 子网 - 我不需要使用网关来到达第二个子网 - 但是如何呢?

答案1

您假设 Windows 网络堆栈的实现方式与 Linux 网络堆栈完全相同,并且具有相同的优化。但这不一定正确。

但是如果我理解正确的话,您首先需要使用 来netsh interface ipv4 show interfaces识别要附加路由规范的接口编号。我将使用 来[IFnumber]识别这个编号。

那么,如果系统自己的 IP 地址是 91.6.6.5,那么用于告知 90.5.5.0/24 网络也通过同一个 NIC 直接连接的路由条目的语法将是:

route add 90.5.5.0 mask 255.255.255.0 91.6.6.5 IF [IFnumber]

换句话说:在 Windowsroute命令语法中,必须指定网关 IP 地址。但如果您想要使用网关,那么就需要指定接口自己的IP地址来代替网关,以满足语法要求。

您可以尝试一下,看看是否有效。如果有效route print,现在应该会显示 90.5.5.0 网络对于具有 91.6.6.5 IP 地址的同一接口处于“On-link”状态。-p如果需要,请向命令添加一个选项以持久存储路由。

但是如果它不起作用,您应该认识到这是一种非标准的 IP 网络实现方式,并且不能保证在所有实现中都能成功。它还会导致从该系统发送到 90.5.5.0/24 段的数据包具有技术上无效的源 IP 地址;但如果系统仅查看第 2 层寻址(“直接发送到 MAC”),它可能会起作用。如果任一端都有内置无效数据包过滤器的软件防火墙,那么这很容易成为该技术的障碍。

处理此问题的正常方法是向网络接口添加辅助 IP 地址(在 90.5.5.0/24 网段内)。添加该 IP 会自动向路由表添加类似的路由,它将确保在向 90.5.5.0/24 网段发送数据包时有一个有效的源 IP 地址可供使用。

答案2

如果您不需要使用网关来访问其他网络,则您不需要路由,您只需向您的 NIC 添加第二个 IP 即可。

IPv4 属性 -> 高级... -> IP 地址:添加...

如果您正在考虑两个连接的网络之间的端口转发,可以这样做:

netsh interface portproxy add v4tov4 listenport=4422 listenaddress=192.168.1.111 connectport=80 connectaddress=192.168.0.33

相关内容