web-dev-qa-db-ja.com

Windows 10のアウトバウンドUDPトラフィックに対してのみVPNをセットアップする

Vpn接続をバイパスして、インバウンドトラフィックを直接受け入れながら、vpnを介してアウトバウンド/アウトバウンドトラフィックのみをルーティングすることは可能ですか? UDPパケットのルーティングに主に関心があります。

私が見たのは 問題に関するlinux/unixに関する質問 で、ルーティングテーブルを使用すると便利です。複数のサービスとクライアントを調査しましたが、この機能を提供するものはないようです。それは単に非常にニッチな機能ですか、それともWindowsマシンでは技術的に実行可能ではありませんか?

6
Nikita

VPNはWindowsとLinuxの両方で同様に機能します。VPNは、ドライバーをインストールする仮想TAPネットワークアダプターを作成します。ドライバーはVPNプロバイダーのサーバーと常に接触しており、発信および着信接続この仮想アダプター上を処理します。デフォルトでは、デフォルトのルールがコンピュータのルーティングテーブルに追加され、すべての発信接続がデフォルトでVPNを通過します。

VPNプロバイダーは、ISPと非常によく似た機能を備えています。コンピューターに1つのアドレスを割り当てるIPアドレスの範囲を所有しています。このIPアドレスを使用するすべての接続は、VPNプロバイダーを通過します。

つまり、コンピューターには2つのIPアドレスがあり、1つはISP経由で、もう1つはVPNプロバイダー経由です。

VPN IPアドレスへの着信接続は、仮想TAPネットワークアダプターを介して到着します(呼び出し元が互換性のあるVPNクライアントを正しく使用する必要があります)。 ISP IPアドレスへの着信接続はすべてルーターに到達し、物理アダプターへの接続を通過します。ルーターは、コンピューター上に作成されたVPNについて何も認識していません(ルーター自体がVPNに接続している場合を除きます)。

つまり、デフォルトでは、状況は希望どおりです。送信接続はデフォルトでVPNのTAPアダプターを通過しますが、パブリックアドレスを使用する受信接続は、物理アダプターで終了します。

唯一の問題は、特定のプログラムが物理アダプターで着信接続をリッスンできるようにすることです。これは、次の2つの方法で実現できます。

  • VPNクライアントを起動する前にこのプログラムを起動してください(動作する場合としない場合があります)
  • このプログラムを物理インターフェースにバインドします。開発者でない場合は、無料の ForceBindIP を試すことができます。これは、自分自身を別のアプリケーションに挿入し、特定のWindowsソケット呼び出しの方法を変更して、アプリケーションに強制的に特定のネットワークインターフェイス/ IPアドレス。
    記事 Windowsアプリケーションを特定のネットワークアダプターに簡単にバインドする3 ForceBindIP GUI も参照してください。

このソリューションの実行可能性は、ハードウェア(主にルーター)とソフトウェア(VPNドライバーとオペレーティングシステム)に大きく依存します。

6
harrymc