Vpn

如何讓 forticlient 在 OSX El Capitan 中工作

  • May 15, 2018

自 OSX El Capitan 以來,forticlient VPN 軟體在使用水平分割時很糟糕。問題是 DNS 請求在普通主介面上發送到 VPN 隧道的 DNS。

我們如何通過正確的介面(即 VPN 隧道)發送 DNS 請求

編輯後的答案

(重新)改進了幾乎所有其他人的改進答案(@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

使用 sudo 使您放入的文件可執行並執行(在連接 VPN 後)。在腳本進行任何更改之前,它會查看您目前的預設路由,因此知道您目前的網關和介面。


舊答案

這不是一個完整的解決方案,您必須在每次 VPN 連接設置後執行以下兩項高級操作:

  1. 我們必須將隧道的介面設置為ppp0
  2. 重做預設路由(因為1.隱式設置了錯誤的預設網關,拆分隧道以後應該仍然可以正常工作)

scutil-forti例如,使用名稱創建一個文件

d.init
get State:/Network/Service/forticlientsslvpn/IPv4
d.add InterfaceName ppp0
set State:/Network/Service/forticlientsslvpn/IPv4

重做網關路由,因此製作另一個文件 , 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

現在,執行,

$ cat scutil-forti |sudo scutil ; bash routes-forti

引用自:https://serverfault.com/questions/728702