仕事/何にでもVPN接続を行った後、現在、コマンドプロンプトに移動して手動でルートを追加する必要があります。
例えば。
ROUTE ADD 10.1.0.0 255.255.0.0 172.16.3.0 METRIC 1
またはコマンドが何であれ。
VPN接続に成功した後、これを自動的に行うことはできますか?
1ステップのプロセスにしたい場合は、 rasdial を実行してVPN接続を自動化し、ROUTE ADDを実行するバッチファイルを作成できます。
rasdial "connection name" username password ('*' to Prompt for password)
ROUTE ADD 10.1.0.0 255.255.0.0 172.16.3.0
これは、Microsoft VPNに接続していることを前提としていますが、同じ方法でOpenVPNクライアントをスクリプト化することもできます。
openvpn c:\path\to\config-file.ovpn
ROUTE ADD 10.1.0.0 255.255.0.0 172.16.3.0
複数のVPNがある場合、ランダムな順序で接続するとインターフェイスIDが変化するという問題が発生する可能性があります。その場合、通常のROUTE -P ADD 10.0.0.0 MASK 255.255.0.0 10.0.0.1 IF 42
動作しません。次回VPNに接続するときに、インターフェイス番号が異なる場合があります。
Powershellには、VPN接続にルートを追加し、VPNが切断されたときにそれらを再び削除するコマンドレットがあります: Add-VpnConnectionRoute 。インターフェイスIDを指定しなくても機能します。
基本的な構文は次のとおりです。
Add-VpnConnectionRoute -ConnectionName "VPN Connection Name" -DestinationPrefix 10.0.0.0/16
このコマンドを入力すると、VPNの接続/切断時にルートが自動的に作成/削除されます。
netsh interface ipv4 add route [destination/prefixlength] "[interface/connection name]"
私はそれを使用して、サーバーなどのリモートサブネット上のホストに静的ルートを追加することにより、サブネットが重複している接続を処理しています。
ルートを永続化できます(route -p
)そのため、毎回入力する必要はありません。 openVPNを使用している場合、サーバーはルートをクライアントに送信できます:Push "route 192.168.1.0 255.255.255.0"
例えば。他のVPNサーバーについてはわかりませんが、同様のオプションがあると思います。