
我經常遠距工作。我使用網路管理器來設定 VPN 連接,效果非常好。我目前設定的 VPN 使用帶有憑證的密碼 (TLS) 類型。我想做的只是透過 VPN 路由某些流量,並透過正常的本地網路連線路由所有其他流量。
這可能嗎?
為了幫助解釋我的情況,我將舉一個我通常必須與 VPN 網路建立的連接類型的範例。我們在工作網路上設定了一個「Intranet」網站,因此只有當我使用 VPN 時才能存取網站,但存取方式與造訪其他網站(例如 Google 或 askubuntu.com)的方式相同。我經常透過遠端桌面透過 VPN 連線連接到桌上型計算機,在其中輸入桌上型電腦的名稱(IP 位址)、使用者名稱和密碼。我使用 MySQL Workbench 連接到 MySQL 伺服器,您可以在其中輸入 IP 位址、使用者名稱和密碼。我經常使用 SSH 連接到 Linux 伺服器。
對於上述所有連接,我都需要 VPN。不過,我也會進行一些正常的網路衝浪,以及連接到工作網路以外的資源(Gmail、Stack Overflow、遊戲等)。對於這些連接,我不希望透過 VPN 連接進行訪問,因為這些連接不需要我的 VPN,VPN 只會讓速度變慢。
我已經嘗試過此連結中描述的技術:http://darrenwatt.com/split-tunnel-ubuntu/
這似乎對我不起作用。具體來說,在選中「僅將此連接用於其網路上的資源」複選框並連接 VPN 後,我無法連接到「Intranet」網站。
有誰知道如何選擇性地透過 VPN 路由流量?這樣有道理嗎?
謝謝!
答案1
我不知道 NM 是如何運作的,但我寫了腳本
#!/bin/bash
function routeadd {
route add -host xxx.xxx.xxx.xxx dev ppp0
route add -net xxx.xxx.xxx.xxx/xx dev ppp0
}
function makepptp {
echo pty \"pptp xxx.xxx.xxx.xxx --nolaunchpppd\" >> /etc/ppp/peers/vpn;
echo remotename PPTP >> /etc/ppp/peers/vpn;
echo require-mppe-128 >> /etc/ppp/peers/vpn;
echo file /etc/ppp/options.pptp >> /etc/ppp/peers/vpn;
echo ipparam vpn >> /etc/ppp/peers/vpn;
pppd call vpn &
}
if [ -a /etc/ppp/chap-secrets ];
then
rm /etc/ppp/chap-secrets
echo $1 PPTP $2 '*' >> /etc/ppp/chap-secrets;
else
echo $1 PPTP $2 '*' >> /etc/ppp/chap-secrets;
fi
if [ -e /etc/ppp/peers/vpn ];
then
rm /etc/ppp/peers/vpn;
echo name $1 >> /etc/ppp/peers/vpn;
makepptp;
sleep 8;
routeadd;
else
echo name $1 >> /etc/ppp/peers/vpn;
makepptp;
sleep 8;
routeadd;
fi
用法:
sudo /path_to_script/vpn username password
注意:給腳本設定執行權限
只有當您新增路由時,流量才會透過 VPN 路由,其他任何內容均採用預設閘道。