
私は学生で、MatlabやAutoCADなどを使用するために大学のVPNに頻繁に接続する必要があります。Windows PPTPではなく、より制御しやすいOpenVPNネットワークを使用しています。このVPNネットワークはすべてのトラフィックをサーバー経由でルーティングするように強制しますが、私はそれが気に入らないので、これを無効にするために次のコードを追加しました。ルート-nopullクライアント構成に。この時点ではプログラムは大学のライセンスサーバーに接続できないので、VPNに接続した後のルーティングテーブルがどのようになっているかを確認しました(画像を参照)。これで、VPNサーバーがこのネットワークからIPを提供していることがわかりました。2xx.xx.26.0/30つまり、各コンピュータは異なるサブネットに属しています。画像からわかるように、IPサーバーが私に与えたIPは2xx.xx.26.105なので、唯一の選択肢はゲートウェイが2xx.xx.26.106ネットワーク内のライセンスサーバIPは2xx.xx.28.34私が使用しているインターフェースのIDは29そこで、次のコマンドでルート ルールを追加しました: route add 2xx.xx.28.34 2xx.xx.26.106 if 29
(結果は画像で赤くマークされています)。これでライセンス サーバーに接続できるようになりましたが、VPN に再接続するたびに、別のサブネットにスローされ、ゲートウェイが変更され、別の静的ルートを追加する必要があります。これを回避する方法はありますか? 可能ですか?
私のルーティングテーブル
答え1
最善策は、「--route-up」スクリプトを使用することです。
次に、そのスクリプトで環境変数「route_vpn_gateway」を使用して、特定のネットワークを VPN ゲートウェイ経由でルーティングできます。
#!/bin/sh
route del all default
route add 2xx.xx.28.34 $route_vpn_gateway if $dev
# do this for ebery net that needs to be routed via the VPN