我在本地网络中有两个子网 - 我需要通过本地端口从一秒到一秒访问,而不使用网关。
在linux中我使用这个:
ip route add 90.5.5.0/24 dev eth0(服务器有 IP 例如 91.6.6.5)。数据直接发送到 MAC - “所以只留在路由器中”。
请问如何在windows中设置这个?
谢谢帕维尔
编辑:这与在 Windows cmd 中指定到接口的路由不重复- 我的问题是来自一个本地物理网络中的一个接口的两个 /24 子网 - 我不需要使用网关来到达第二个子网 - 但是如何?
您假设 Windows 网络堆栈的实现与 Linux 网络堆栈完全相同并且具有相同的优化。这不一定是真的。
但如果我理解正确,您首先要使用
netsh interface ipv4 show interfaces
标识您希望附加路由规范的接口的编号。我会用[IFnumber]
识别这个号码。那么,如果系统自己的IP地址是91.6.6.5,那么表示90.5.5.0/24网络也是通过同一个网卡直接连接的路由条目,语法为:
换句话说:在 Windows
route
命令的语法中,必须指定网关 IP 地址。但是,如果您不想使用网关,则需要指定接口自己的 IP 地址来代替网关,以满足语法要求。你可以试试这个,看看它是否有效。如果你这样做
route print
了,它现在应该说 90.5.5.0 网络对于具有 91.6.6.5 IP 地址的同一接口是“在线链接”。如果需要,可以在命令中添加一个-p
选项以持久存储路由。但如果它不起作用,您应该认识到这是一种非标准的 IP 联网方式,并且不能保证在所有实施中都能成功。它还会导致从该系统发送到 90.5.5.0/24 网段的数据包具有技术上无效的源 IP 地址;但如果系统只关注第 2 层寻址(“直接发送到 MAC”),它可能会起作用。如果任一端都有一个软件防火墙,该防火墙具有内置的无效数据包过滤器,那么这很容易成为这种技术的阻碍。
处理此问题的正常方法是向网络接口添加辅助 IP 地址(在 90.5.5.0/24 网段内)。添加该 IP 会自动将类似的路由添加到路由表,并确保在将数据包发送到 90.5.5.0/24 网段时使用有效的源 IP 地址。
如果您不需要使用网关来访问其他网络,则不需要路由,您只需将第二个 IP 添加到您的 NIC。
IPv4 属性 -> 高级... -> IP 地址:添加...
如果您正在考虑在两个连接的网络之间进行端口转发,可以通过以下方式完成: