リモートプライベートネットワーク上には、ファイルサーバとデータベースサーバの2つのサーバがあります(念のため、これらは両方ともWinマシンです)
ファイルサーバーにはかなり堅牢な認証機構があり、遠隔地から直接接続できるようになっています
データベースサーバーはシンプルなユーザー名とパスワードを使用するため、不正アクセスを防ぐためにローカルネットワークにロックダウンされており、外部からのトラフィックはブロックされています
データベースサーバーにアクセスするために、WindowsのOpenVPNクライアントを使ってプライベートネットワーク上のVPNサーバーに接続しています
デフォルトでは、OpenVPN は VPN サーバーが存在するリモートネットワーク向けのすべてのネットワークパケットを VPN 経由でルーティングします。残念ながら、VPN を通してファイルサーバにアクセスするのは非常に遅いです!
Question:
OpenVPN クライアントを設定して、単一の特定の IP アドレス宛ての VPN を通してのみトラフィックをルーティングするように設定するにはどうすればいいですか?
66 Brian Lacy 2012-08-03
OpenVpnの正しい設定は
route-nopull
route 192.168.0.0 255.255.255.0
これらのエントリは .ovpn ファイルに属しており、すべての 192.168.0.* サブネットトラフィックを VPN 経由で誘導します
1つのIPのみ(192.168.0.1)の場合
route-nopull
route 192.168.0.1 255.255.255.255
79 Thomas 2013-08-06
Goals
- VPNが接続されている場合でも、デフォルトではすべてのインターネットトラフィックにプレーンなインターネット接続を使用します
- VPNを介して特定のIPアドレスにトラフィックをルーティングします
Steps
Win + Rを押して、
ncpa.cpl
を実行しますVPN接続を右クリックして、プロパティ→ネットワーキングに進みます
インターネットプロトコルバージョン4を選択し、プロパティ→Advanced….へ
リモートネットワークでデフォルトのゲートウェイを使用する] のチェックボックスをオフにして、[OK] をクリックします
(オプション) インターネットプロトコルバージョン6の場合は、前の手順を繰り返します
(再)VPNに接続します
コマンドプロンプトを開き、
route print -4
を実行しますインターフェイスリストでVPNのインターフェイスを、アクティブルートでVPNのゲートウェイをスポットします
私のマシンでは、私が持っています
Interface List 32...........................Super Free VPN [...] Active Routes: Network Destination Netmask Gateway Interface Metric 0.0.0.0 0.0.0.0 On-link 10.6.6.127 31 10.0.0.0 255.0.0.0 10.88.1.1 10.88.1.102 31
ここでは、VPN のゲートウェイは
10.xxx.xxx.xxx
ブロックのゲートウェイなので、10.88.1.1
となりますVPNへの接続があるときはいつでもアクティブなルートに追加される永続的なルートを追加します
route -p add 23.22.135.169 10.88.1.1 if 32
この例では、
23.22.135.169
がwhatismyip.org
のIP、10.88.1.1
がゲートウェイのIP、32
がインターフェースの番号です(オプション)
route print -6
の場合は前の手順を繰り返します設定をテストします
すべてがうまくいった場合、whatismyip.orgとwww.whatismyip.cxは異なるIPを表示するようになりました
28 Dennis 2012-08-03
OpenVPNクライアントの設定に、次のような行を追加します
route The.IP.To.Go 255.255.255.255
(ここで、The.IP.To.Goは、VPNを介してルーティングしたいIPです)
これは、OS のルーティングテーブルにエントリを作成するよう OpenVPN に指示します
代わりに、OpenVPN サーバはサーバ設定に追加することで、このルーティング設定をクライアントに「プッシュ」するようにすることができます
push "route The.IP.To.Go 255.255.255.255"
EDIT: 一つ見落としていたことがありました – すべてのトラフィックのデフォルト転送…サーバー上で無効にするか、クライアントが “push” ディレクティブを無視するように選択することができます (なので、二番目のオプションである “push” ルートは動作しません)
route-nopull
14 Adam 2013-02-04
OpenVPN上でルーティングされるものをカスタマイズするための簡単なlinux / networkmanagerフレンドリーなソリューションを求めているコメントに応えて、GUIフレンドリーな方法で設定してみました。この回答は、私の知る限りでは、Thomas の回答の GUI 版に過ぎません
ステップ1:VPN構成を選択します
ステップ2:関連するタブ(IPv4またはIPv6のいずれか)に移動します
ステップ3:右下の「ルート…」ボタンをクリックします
ステップ4: 希望するルートを追加します(この場合は192.168.0.*からVPNを経由してすべてのトラフィックをリダイレクトします)
ステップ5: 「この接続ではリソースのみを使用する」にチェックを入れて、VPNに接続してもデフォルトのゲートウェイの設定を変更して、すべてのトラフィックをVPN経由でルーティングすることがないようにします
4 DeveloperACE 2020-01-10
iptables -A PREROUTING -t mangle -i <LAN_interface> \
-d <remote_network>/<remote_netmask> -j ROUTE --gw <openvpn_host_ip>
-2 Dharmesh 2015-02-13