Leg*_*las 175 networking windows vpn routing
我想使用 Windows VPN 但仅用于特定网络,因此它不会接管我的整个网络连接。
例如,不要让 VPN 成为默认路由,而是让它成为 192.168.123.0/24 的路由
(我可以看到在这个问题中有一个针对 Ubuntu 的解决方案,但有时我也必须在 Windows 上执行此操作)
这是否可以自动化,以便每当我连接到 VPN 时它都会这样做?
TRS*_*-80 166
您可以通过转到 VPN 的属性、Networking
选项卡、Internet Protocol (TCP/IP)
属性、Advanced
、取消勾选来关闭接管整个连接Use default gateway on remote network
。这可能会或可能不会留下路由,192.168.123.0/24
具体取决于 VPN 服务器的设置。如果没有,您每次都必须手动添加路由,尽管您可以将其放入批处理文件中。
要手动添加路由,请运行(以管理员身份):
route -p add 192.168.0.12 mask 255.255.255.255 10.100.100.254
Run Code Online (Sandbox Code Playgroud)
此示例将192.168.0.12
通过 VPN 网关创建到 IP 的持久路由(无需在重新启动后运行该命令)10.100.100.254
。
有关更多信息,请访问http://technet.microsoft.com/en-us/library/bb878117.aspx
Der*_*ter 24
在 Windows 8+ 中使用Add-VpnConnectionRoute cmdlet。
Add-VpnConnectionRoute -ConnectionName 'My VPN Connection' -DestinationPrefix 192.168.123.0/24
Run Code Online (Sandbox Code Playgroud)
小智 21
我成功地使用了@TRS-80的技术来实现这一点。
我在家工作,我的电子邮件必须通过 VPN 连接到公司网络(我讨厌网络邮件!!)。
同时,我需要不断地浏览信息,还需要 youtube 来播放我的背景音乐……现在你绝对不想通过 VPN 播放 youtube,因为这听起来像机器人唱歌!!!:)
我所做的只是关注@TRS-80:
VPN 属性,网络选项卡,“Internet 协议 (TCP/IP)”属性,高级,取消勾选“在远程网络上使用默认网关”
然后做了我自己的:
在 DNS 选项卡下,勾选“在 DNS 中注册此连接地址”
一切顺利!
Way*_*yne 10
当然,此答案并未反映您的要求,但我专门为此目的使用了 VM。这样,只有虚拟机内部的网络受路由限制。
您可能会从其他人那里找到一些更好的答案,但至少这可能会给您一些考虑,因为它是创建 VM 后的简单解决方案。
小智 10
像我这样对网络不太了解的新手的“简短”指南。这里没有太多新内容,但总结了以前的答案和其他相关主题中描述的所有好的选项。整个过程包括3个基本步骤:
1) 使所有流量不通过 VPN。为此,您必须取消Use default gateway on remote network
选中 VPN 设置中的复选框。确保为 IPv4 和 IPv6 取消选中此复选框。通常我只是完全禁用 VPN 连接的 IPv6 协议。
(!)(有时)可能取消选中该复选框足以进行正常工作 - 根据我的经验,可以在建立 VPN 连接后自动添加必要的路由(将通过 VPN 引导必要的流量)。我不知道这些规则的确切配置位置和方式,但存在这种情况 - 可能是 VPN 网络管理员完成的一些魔术。
2) 仅通过 VPN 传输必要的流量。为此,您需要定义路由。在这里你有 3 个选择:
2.1)通过VPN网关添加永久路由:
route -p add a.b.c.d/<CIDR> w.x.y.z
或者 route -p add a.b.c.d mask e.f.g.h w.x.y.z
其中 'VPN 网关' = '您在 VPN 网络上的 IP' =w.x.y.z
和目标地址/网络 = a.b.c.d
。您可以w.x.y.z
通过执行ipconfig
和查找您的 VPN 连接名称来找到,或者,如果您使用 PowerShell,您可以通过执行获得紧凑的输出ipconfig | grep -A5 PPP
(在找到每个 PPP 连接后将输出 5 行)。
缺点:如果您的 VPN IP 发生变化,您将不得不重新创建路由。
2.2)通过VPN网络接口添加永久路由:
route -p add a.b.c.d/<CIDR> 0.0.0.0 IF <interface number>
哪里a.b.c.d
是目标地址/网络,interface number
是您的 VPN 连接的标识符。这个 ID 可以通过执行找到netstat -rn
,或者,为了更紧凑的输出,netstat -rn | grep -A10 'Interface List'
.
优点:如果您的 VPN 地址 ( w.x.y.z
) 发生变化,则无需更改任何内容。
缺点:如果您删除 VPN 连接,则需要使用新 ID 重新创建路由。
2.3) 使用 PowerShell cmdlet:
Add-VpnConnectionRoute -ConnectionName '<VPN connection name>' -DestinationPrefix a.b.c.d/<CIDR>
优点:每次建立VPN连接时添加必要的路由,每次断开连接时删除。
缺点:没有Get-VpnConnectionRoutes
cmdlet,因此很难管理这些规则。
3) 检查并确保路由按预期工作!
如果添加了持久路由,则可以通过执行来检查它们netstat -rn | grep -A10 'Persistent Routes'
。
最后,tracert
针对应该通过 VPN 访问的 IP 地址和应该在没有 VPN 的情况下工作的 IP 地址运行一些命令。
小智 8
我发现它需要在路由命令中直接指向接口。没有它,Windows 将使用主网卡接口,而不是 VPN。就我而言,它看起来像
route -p add 192.168.10.187 mask 255.255.255.255 0.0.0.0 IF 26
:: ^destination ^mask ^gateway ^interface
Run Code Online (Sandbox Code Playgroud)
注意'IF 26'。
归档时间: |
|
查看次数: |
334597 次 |
最近记录: |