私はしばしばリモートで働きます。 Network Managerを使用してVPN接続をセットアップしましたが、これは非常にうまく機能しています。現在設定されているVPN(証明書付きパスワード(TLS)タイプを使用)。私がしたいのは、VPNを介して特定のトラフィックのみをルーティングし、他のすべてのトラフィックを通常のローカルインターネット接続でルーティングすることです。
これは可能ですか?
私の状況を説明するために、VPNネットワークで通常行わなければならない接続のタイプの例を示します。職場のネットワークに「イントラネット」ウェブサイトが設定されているため、VPNを使用する場合にのみこのウェブサイトにアクセスできますが、Googleやaskubuntu.comなどの他のサイトにアクセスするのと同じ方法でアクセスできます。リモートデスクトップ経由でVPN接続を介してデスクトップコンピューターに接続することがよくあります。ここでは、デスクトップコンピューターの名前(IPアドレス)、ユーザー名、およびパスワードを入力します。 IPアドレス、ユーザー名、パスワードを入力するMySQL Workbenchを使用してMySQLサーバーに接続します。私はしばしばSSHを使用してLinuxサーバーに接続します。
上記のすべての接続には、VPNが必要です。ただし、仕事用ネットワークの外部のリソース(Gmail、Stack Overflow、Gamingなど)に接続するだけでなく、通常のWebサーフィンも行っています。これらの接続はVPNを必要としないため、VPN接続を介してアクセスしないことを望みますが、VPNはこれを非常に遅くします。
このリンクに記載されている手法を試しました: http://darrenwatt.com/split-tunnel-ubuntu/
これは私にはうまくいかないようでした。具体的には、「ネットワーク上のリソースにのみこの接続を使用する」チェックボックスをオンにしてVPNに接続した後、「イントラネット」サイトに接続できませんでした。
VPNを介してトラフィックを選択的にルーティングする方法を知っている人はいますか?これは理にかなっていますか?
ありがとう!!
これが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を介してルーティングされ、それ以外はデフォルトのgwになります。