hbo*_*ert 10 vpn fortinet split-tunnel
自从 OSX El Capitan 以来,当使用水平分割时,forticlient VPN 软件就失效了。问题是 DNS 请求是在正常的主接口上发送到 VPN 隧道的 DNS。
我们如何通过正确的接口(即 VPN 隧道)发送 DNS 请求
hbo*_*ert 11
(重新)改进了几乎所有人的改进答案(@elmart,@user26312,我自己)。脚本中不需要编辑:
#!/bin/bash
default_line=$(netstat -rn |grep default)
gateway=$(echo $default_line | awk '{print $2}')
interface=$(echo $default_line | awk '{print $6}')
echo $gateway
echo $interface
scutil <<EOF
d.init
get State:/Network/Service/forticlientsslvpn/IPv4
d.add InterfaceName ppp0
set State:/Network/Service/forticlientsslvpn/IPv4
EOF
route delete default
route delete -ifscope $interface default
route add -ifscope $interface default $gateway
route add -net 0.0.0.0 -interface $interface
Run Code Online (Sandbox Code Playgroud)
使用 sudo 使您放入的文件可执行并执行(在与 VPN 连接后)。在脚本进行任何更改之前,它会查看您当前的默认路由,从而了解您当前的网关和接口。
这不是一个完整的解决方案,您必须在每次 VPN 连接设置后执行以下两项高级操作:
ppp0
创建一个文件名scutil-forti
,例如
d.init
get State:/Network/Service/forticlientsslvpn/IPv4
d.add InterfaceName ppp0
set State:/Network/Service/forticlientsslvpn/IPv4
Run Code Online (Sandbox Code Playgroud)
重做网关路由,因此创建另一个文件 ,routes-forti
与(注意具有特定网络设置的行):
sudo route delete default
sudo route delete -ifscope en0 default # This line depends on your interface
sudo route add -ifscope en0 default 192.168.2.252 # This depends on your normal local gateway.
sudo route add -net 0.0.0.0 -interface en0
Run Code Online (Sandbox Code Playgroud)
现在,执行,
$ cat scutil-forti |sudo scutil ; bash routes-forti
Run Code Online (Sandbox Code Playgroud)
我已将 @hbogert 的解决方案改造成更易于管理的单个脚本:
#!/bin/bash
scutil <<EOF
d.init
get State:/Network/Service/forticlientsslvpn/IPv4
d.add InterfaceName ppp0
set State:/Network/Service/forticlientsslvpn/IPv4
EOF
route delete default
route delete -ifscope en0 default
route add -ifscope en0 default 192.168.1.1
route add -net 0.0.0.0 -interface en0
Run Code Online (Sandbox Code Playgroud)
假设您使用的是 en0 接口和 192.168.1.1 默认网关。如果没有,请将它们替换为相应的值。如果您不认识它们,请键入route get www.google.com
以获取它们。然后:
chmod u+x fix-vpn
)。sudo fix-vpn
在连接到 vpn 后使用 sudo ( )运行它。我试过了,它有效。正如我所说,这只是对先前解决方案的返工。我只是将它作为单独的答案发布,因为我在评论中没有足够的空间。
顺便说一句,我还认为这可以包含在/etc/ppp/ip-up
脚本中,以便在连接时自动执行。但由于某种原因,它不能那样工作。如果有人可以对此进行解释/改进,请这样做。
归档时间: |
|
查看次数: |
25281 次 |
最近记录: |