Windows 多网卡(网络)连接下,有没有方法让不同 IP(网段)的网络连接走不同的网卡出口

2018-04-12 11:20:56 +08:00
 cyn

场景

公司网络太渣,并且有万恶的深信服。所以现在用无限流量卡+随身 4G 路由器+随身 WiFi (台式机),使用设置跃点数来调整网络优先级连接顺序的方式来使无线网卡(自己网络)优先级高于有线网卡(公司网络),使用自己的网络上网。

问题

因为工作经常要访问内网(公司网络)的 SVN,数据库等,需要频繁断开和连接 WiFi 连接来切换自己网络和公司网络的环境。所以想求问 V 友有没有方法让不同 IP(网段)的网络连接走不同的网卡出口,这样就可以访问外网时使用自己网络,访问内网时使用公司网络。

9703 次点击
所在节点    宽带症候群
10 条回复
dinxvx
2018-04-12 11:25:48 +08:00
route delete 0.0.0.0
route -p add 10.130.0.0 mask 255.255.0.0 10.130.2.254
route -p add 0.0.0.0 mask 0.0.0.0 192.168.4.1


原理:

如果访问 10.130 网段的话,就先走第一条 route -p add 10.130.0.0 mask 255.255.0.0 10.130.2.254 命令所指定的 route 路由,除此以外的访问,都走 0.0.0.0 这条路由,命令就是 route -p add 0.0.0.0 mask 0.0.0.0 192.168.4.1。它的参数-p 是永久保存到 route 里面,重启电脑也不会丢失,重启电脑也不需要两次输入这两条命令。
honeycomb
2018-04-12 11:26:02 +08:00
设置本地路由表?
有的学校上外网会用 VPN,就会靠类似的手段
Liqianyu
2018-04-12 11:26:36 +08:00
使用路由表。
在 Windows 10 使用过 LAN + Wi-Fi + PPPoE 三出口分流。
所以方法就是
route ADD 你需要的内网地址 有线网关 IF 接口号
以上所需要的信息都可以通过 route -4 print 获得

把路由表设置为-p 的永久路由就可以重启不变了。
smileawei
2018-04-12 17:20:45 +08:00
路由表了解一下
cwek
2018-04-12 19:26:13 +08:00
路由表
qshujun
2018-04-12 21:40:14 +08:00
静态路由
kennylam777
2018-04-12 21:58:32 +08:00
樓主都調好了優先序, 路由表就不用 delete route 再 add default route 了, 直接把公司內網的 IP 段指到 LAN gateway 去, 路由表的規則是小 subnet 比大 subnet 甚至 default route 都要優先
datocp
2018-04-13 00:02:12 +08:00
win7 远程 vpn 网络访问

以前闲聊中大嘴吧说可以实现 vpn 访问,结果最近 ERP 上线同事就想能否在家里进行办公。 花了半天时间使用 softethervpn 根据以往的经验很快就建立完毕。可是想在 win7 下面公司的网络使用 vpn 接口访问,家里的网络依然使用家里的网络访问,却从早上 8 点折腾到下午 15 点。哈,记得当年有一次也想帮人家解决这个事情的,结果当然是没成功了。。。 对于普通用户来说,你最好提供最简单的方案,不然人家折腾半天就想扔鼠标了。1,双网卡路由不想折腾太麻烦,直接去除 VPN 虚拟网卡 网关 右击虚拟网卡 /属性 /网络 /Internet 协议版本 4(TCP/IPv4)/属性 /高级 /在远程网络上使用默认网关(去除) 2,然后就一直郁闷在通过 nslookup www.qq.com ,dns 服务器一直是远程 vpn 网关。公司使用的联通网关,家里使用的电信网络,虽然最终流量下载依然是电信的线路,但是查询 ip138.com 时明显感觉页面打开不顺畅。 虽然网上也有提供改变网卡优先级的方法 通过 win7 网络和共享中心 /更改适配器设置 / 在网络连接界面按 alt 键 /高级 /高级设置 /适配器绑定 这种方法至少在使用 win7 自带的 l2tp 客户端时是没有任何效果的。 老外的链接提供了一种注册表方法,windows 系统似乎总是有最后一块网络生效优先级高的错觉。
https://rdpfiles.com/2011/08/25/windows-vpn-client-and-local-dns-resolution/

@echo off FOR /F "tokens=1,2,*" %%A in ('reg query "HKLM\System\CurrentControlSet\Services\Tcpip\Linkage" /v Bind /t REG_MULTI_SZ ^|find "REG_MULTI_SZ"') do set value=%%C\0\Device\{515685E7-64C1-4247-8382-004BC5D54B3C} reg ADD "HKLM\System\CurrentControlSet\Services\Tcpip\Linkage" /v Bind /t REG_MULTI_SZ /f /d %value% >nul 2>&1 似乎在这个页面提到了 netsh 命令,可惜没效果 Unfortunately, Windows VPN is not able to do "Split-DNS". You can however remove the DNS Server from the VPN connection after you have connected to the remote site. You can do this by issuing: netsh interface ipv4 delete dnsservers name="name of the VPN" address=all validate=no You HAVE to do this every time you connect to the VPN Network. 最终的批处理
@echo off
::在注册表特定位置查询出虚拟网卡 GUID,预先写入注册表,避免 windows 更改 DNS 查询顺序
FOR /F "tokens=1,2,*" %%A in ('reg query "HKLM\System\CurrentControlSet\Services\Tcpip\Linkage" /v Bind /t REG_MULTI_SZ ^|find "REG_MULTI_SZ"') do set value=%%C\0\Device\{515685E7-64C1-4247-8382-004BC5D54B3C} reg ADD "HKLM\System\CurrentControlSet\Services\Tcpip\Linkage" /v Bind /t REG_MULTI_SZ /f /d %value% >nul 2>&1
::使用 windows 的客户端进行 vpn 拔号 rasdial "VPN 名称" VPN 用户名 VPN 密码
::查询出当前电脑的 vpn ip 192.168.30.x,特定的 ip 通过 vpn 接口进行访问
ipconfig |find /i "192.168.30.">check.txt for /f "tokens=2 delims=:" %%i in (check.txt) do echo %%i>check.txt for /f "tokens=1 delims= " %%I in (check.txt) do set myip=%%I echo 你的当前 VPN IP 地址为%myip% echo y|del check.txt route add 192.168.1.11 mask 255.255.255.255 %myip% route add 192.168.1.12 mask 255.255.255.255 %myip%

这排版将就看吧。。。
suiyanhehao
2018-04-13 09:42:31 +08:00
@dinxvx -P 没必要吧 手动执行一下得了
78778443
2018-07-30 11:24:34 +08:00
我也遇到这个问题了,在知乎上看到了处理方案。

https://zhuanlan.zhihu.com/p/40854453

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/446169

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX