我在 Windows 上有多个网络接口客户机器。我希望根据目标服务器的 IP(实际上,我更喜欢域名)让一些 IP 流量通过一张卡,而其他流量通过另一张卡。
我看不到使用 Windows GUI 进行配置的方法。
我可以在 WinXP+ 中执行此操作吗?
如果很复杂,那么一些指向好文章的指针就足够了,因为我的谷歌搜索技巧似乎在这里失败了。
答案1
您可以使用“route”命令。本质上,您可以告诉您的机器根据目标 IP 范围将流量发送到不同的网关。从 cmd.exe 中输入“route”以查看使用行为。
以下是我本地机器上“route print”的输出。您可以看到,由于我有一个启用了拆分隧道的 VPN 连接,因此一些网络(由 VPN 服务器定义)被发送到 VPN(172.16.143.151),而一些被发送到我的本地网络接口(192.168.0.16)
C:\Documents and Settings\jj33>route print
===========================================================================
Interface List
0x1 ........................... MS TCP Loopback interface
0x3 ...00 1f e1 3d 61 06 ...... Dell Wireless 1395 WLAN Mini-Card - Packet Scheduler Miniport
0x10005 ...00 1e 37 fc ca c8 ...... Bluetooth Personal Area Network - Packet Scheduler Miniport
0x100006 ...00 05 9a 3c 78 00 ...... Cisco Systems VPN Adapter - Packet Scheduler Miniport
0x120002 ...00 1d 09 d7 78 65 ...... Broadcom NetXtreme 57xx Gigabit Controller- Packet Scheduler Miniport
===========================================================================
===========================================================================
Active Routes:
Network Destination Netmask Gateway Interface Metric
0.0.0.0 0.0.0.0 192.168.0.1 192.168.0.16 25
10.0.0.0 255.0.0.0 172.16.143.151 172.16.143.151 1
69.8.143.78 255.255.255.255 172.16.143.151 172.16.143.151 1
69.8.147.133 255.255.255.255 192.168.0.1 192.168.0.16 1
72.4.16.0 255.255.255.248 172.16.143.151 172.16.143.151 1
72.4.78.130 255.255.255.255 172.16.143.151 172.16.143.151 1
89.101.16.0 255.255.255.0 172.16.143.151 172.16.143.151 1
127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1
169.254.0.0 255.255.0.0 192.168.0.16 192.168.0.16 20
172.16.0.0 255.240.0.0 172.16.143.151 172.16.143.151 1
172.16.143.0 255.255.255.0 172.16.143.151 172.16.143.151 25
172.16.143.151 255.255.255.255 127.0.0.1 127.0.0.1 25
172.16.255.255 255.255.255.255 172.16.143.151 172.16.143.151 25
192.168.0.0 255.255.255.0 192.168.0.16 192.168.0.16 25
192.168.0.4 255.255.255.255 192.168.0.16 192.168.0.16 1
192.168.0.16 255.255.255.255 127.0.0.1 127.0.0.1 25
192.168.0.255 255.255.255.255 192.168.0.16 192.168.0.16 25
192.168.100.0 255.255.255.0 172.16.143.151 172.16.143.151 1
206.220.212.0 255.255.252.0 172.16.143.151 172.16.143.151 1
216.135.0.0 255.255.252.0 172.16.143.151 172.16.143.151 1
224.0.0.0 240.0.0.0 172.16.143.151 172.16.143.151 25
224.0.0.0 240.0.0.0 192.168.0.16 192.168.0.16 25
255.255.255.255 255.255.255.255 172.16.143.151 172.16.143.151 1
255.255.255.255 255.255.255.255 192.168.0.16 192.168.0.16 1
255.255.255.255 255.255.255.255 192.168.0.16 120002 1
255.255.255.255 255.255.255.255 192.168.0.16 10005 1
Default Gateway: 192.168.0.1
===========================================================================
Persistent Routes:
None
现在,所有这些都是动态路由。不过,您可以使用 route 命令来复制类似的东西。尝试谷歌搜索“向窗口添加静态路由”更多细节
答案2
无论您使用哪种平台,这个问题都是相似的。首先,我假设您有两个网络适配器,并且它们都连接到同一个子网。如果它们连接到不同的子网,答案是相似的。
用一个例子来说明解决问题的方法:
根据 IP 路由流量
适配器:
- 答案1:
10.20.100.101/24
- A2:
10.20.100.102/24
- 两者的默认网关:
10.20.100.1
目标地址/网络以及您希望如何访问它们:
10.20.100.201
通过 A110.20.100.202
通过 A210.20.101.0/24
通过 A110.20.102.0/24
通过 A2
这意味着您要设置以下直接和网关路由。ip routes
为简单起见,我使用与 Linux 上类似的符号:
10.20.100.201/32 dev A1
10.20.100.202/32 dev A2
10.20.101.0/24 via 10.20.100.1 dev A1
10.20.102.0/24 via 10.20.100.1 dev A2
如何使这些路由存在、如何引用适当的适配器以及如何使它们持久取决于您使用的操作系统。我将描述如何在 XP 中执行此操作。
首先,您必须识别每个接口的接口号。如上一个答案所述,使用route print
。假设前几行显示:
C:\>route print
===========================================================================
Interface List
0x1 ........................... MS TCP Loopback interface
0x120002 ...00 1d 09 d7 78 65 ...... Broadcom NetXtreme 57xx Gigabit Controller
0x120003 ...00 1d 09 d7 78 66 ...... Broadcom NetXtreme 57xx Gigabit Controller
假设您确定 0x120002 是适配器 A1,而 0x120003 是适配器 A2,那么您可以键入以下命令:
C:\> route -p add 10.20.100.201 mask 255.255.255.255 10.20.100.101 IF 0x120002
C:\> route -p add 10.20.100.202 mask 255.255.255.255 10.20.100.102 IF 0x120003
C:\> route -p add 10.20.101.0 mask 255.255.255.0 10.20.100.1 IF 0x120002
C:\> route -p add 10.20.102.0 mask 255.255.255.0 10.20.100.1 IF 0x120003
使用该-p
选项可以使路由持久,这意味着它们在重启后仍然可用。
根据域名路由流量
为此,我将使用相同的方法,但将域名划分为不同的子网,以使路由条目更容易。例如,使用上面的数据:
mynetwork1.company.localnet
=10.20.101.0/24
mynetwork2.company.localnet
=10.20.102.0/24