在拆分 VPN 12.04 中選擇性路由流量

在拆分 VPN 12.04 中選擇性路由流量

我經常遠距工作。我使用網路管理器來設定 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 路由,其他任何內容均採用預設閘道。

相關內容