![强制流量从同一网络上的特定网卡发出](https://linux22.com/image/796068/%E5%BC%BA%E5%88%B6%E6%B5%81%E9%87%8F%E4%BB%8E%E5%90%8C%E4%B8%80%E7%BD%91%E7%BB%9C%E4%B8%8A%E7%9A%84%E7%89%B9%E5%AE%9A%E7%BD%91%E5%8D%A1%E5%8F%91%E5%87%BA.png)
在 Windows Server 2008 上,我有 2 个网卡,都配置在同一个网络上(我将在稍后解释其用途)NIC1:10.35.1.98 掩码:255.255.0.0 网关:10.35.1.254 NIC2:10.35.1.99 掩码:255.255.0.0 网关:10.35.1.254
我想要做的是将流量通过 10.35.1.98 IP 路由到 IP 范围在 1.1.3.x 内的 cisco VPN 客户端,并将所有其他流量通过 10.35.1.99 IP。目前,流量正在成功通过 .99 IP。
我需要 2 个 IP 的原因是我们希望一个应用程序能够通过 cisco vpn 客户端运行(当笔记本电脑通过 aircard 与 cisco 连接时),但当汽车使用 aircard/cisco vpn 时,我们不希望另一个应用程序运行。我们的 cisco vpn 配置文件基本上使得笔记本电脑未连接到 WIFI 时 .99 IP 无法访问,一旦笔记本电脑连接到主网络的 WIFI,.99 IP 即可访问,并且与第二个应用程序的通信将成功完成。
这两个应用程序是相关的,不能分成不同的服务器,这就是为什么它们都驻留在同一个服务器上。
我觉得肯定有一条路由可以添加到路由表中,但我不知道如何指定要使用的特定接口,尤其是因为它们都在同一个网络上。大多数其他人想这样做只是为了让一个连接优先于另一个连接,以达到互联网目的。但这里的情况并非如此。
提前致谢!
答案1
免责声明:这是丑陋和糟糕的,你不应该这样做。
操作方法如下(从提升的命令提示符):
首先,执行 aroute print
并获取要强制流量流出的接口的名称。这将是接口列表中条目左侧的数字。然后,输入以下命令:
route add -p 1.1.3.0 MASK 255.255.255.0 10.35.1.254 METRIC 1 IF <foo>
如果您执行route print
,您应该会在路由表中看到该路由。确保它具有最低度量。
答案2
使用 NETSH。
IT 确实解决了很多麻烦。
从提升的命令行 - 找到您希望流量流出的接口的名称:netsh interface ipv4 show interface
注意这一点。然后您将把流量路由出去。此时我通常会转到主机级别 - 并只制作安装后脚本来管理它,这样我以后就不必调试一堆网络路由了……所以:
netsh 接口 ipv4 添加路由 xxx.xxx.xxx.xxx/32 接口="" 度量=1
您在此处输入 metric=1 是为了不让流量流出您的默认路由,对吗?
无论如何 - 由于各种原因,我不得不一直这样做。如果您不了解 NETSH,这是一个非常复杂且丑陋的过程。如果您了解,那么您只会对这些问题一笑置之。