Windowsでアプリケーション固有のルーティングテーブルを設定する方法


14

ネットワークインターフェイス1(net1)と2(net2)が両方ともインターネットに接続されているとします。アプリケーション1(app1)でnet1を使用し、アプリケーション2(app2)でnet2を使用するようにします。Windowsでどのようにできますか?

上記の状況の具体例が必要な場合は、以下を検討してください。

  • Windows 7を搭載したラップトップ
  • net1 = Verizonインターネットモデムへの有線接続
  • net2 = Comcastインターネットモデムへのワイヤレス接続
  • app1 = Internet Explorer
  • app2 = Firefox
  • 「IEはVerizonを使用するがComcastは使用しない」と「FirefoxはComcastを使用するがVerizonは使用しない」ようにしたい

ルーティングテーブルを介して行う必要はありません。他にアイデアがあれば、教えてください!

回答:


6

ForceBindIPがあなたが探しているもののように聞こえます:)

ForceBindIP-Windowsアプリケーションを特定のインターフェイスにバインドします

ForceBindIPは、別のアプリケーションに自分自身を挿入し、特定のWindowsソケット呼び出しを行う方法を変更するフリーウェアWindowsアプリケーションです。これにより、他のアプリケーションに特定のネットワークインターフェイス/ IPアドレスの使用を強制できます。これは、複数のインターフェイスがある環境にいて、アプリケーションに特定のインターフェイスにバインドするためのそのようなオプションがない場合に便利です。

ForceBindIPで動作することがテストされているプログラムには、DC ++、uTorrent、Quake II、Quake III、Diablo II、StarCraft、Internet Explorer、Mozilla Firefox、Google Earth、Infantry、Real Player、Unreal Tournament 2004(-i)、Outlookなどがあります2000(-iが必要)。動作しないプログラムには、GetRight(アンチデバッガー/フォーク技術)、WinCVS(フォークcvs.exe)が含まれます

ForceBindIPを使用して、IPアドレスとプログラムを引数として使用して、アプリケーションを起動するショートカットを簡単に作成できます。

代替テキスト

ForceBindIPはフリーウェアです。


2
素晴らしいソフトウェア!残念ながら、VPNセットアップ(「リモートネットワークのデフォルトゲートウェイを使用する」が無効になっているため、インターネットへの接続が通過しない)では機能しないようです。IEをVPNインターフェース(PPPアダプター)にバインドしようとしましたが、トラフィックはまだVPNを通過しません(whatismyip.comで確認)
netvope

1

vmware playerなどを実行する必要はありません。セカンダリアダプター(つまり、より高いメトリックを持つアダプター)でweakhostreceiveを有効にします。

次に、squidを実行し、squidを設定して、tcp_outgoing_addressをセカンダリアダプターのIPアドレスに使用し、すべてのアプリケーションをプロキシします。

forcebindipも動作を開始するはずです。

MS win7スタックにバグがあると思います。パケットがセカンダリアダプタに到着すると、有効なパケットであっても破棄されます。

weakhost receiveの有効化については、http: //technet.microsoft.com/en-us/magazine/2007.09.cableguy.aspxに記載されています。

netsh interface ipv4 set interface [InterfaceNameOrIndex] weakhostsend=enabled|disabled

netsh interface ipv4 set interface [InterfaceNameOrIndex] weakhostreceive=enabled|disabled

netsh interface ipv6 set interface [InterfaceNameOrIndex] weakhostsend=enabled|disabled

netsh interface ipv6 set interface [InterfaceNameOrIndex] weakhostreceive=enabled|disabled

0

これは不可能だと確信しています。あるインターフェイスまたは別のインターフェイスでトラフィックを送信できる最も近いものは、サブネットとルーティングエントリです。

ただし、2つのアプリケーションがネットワーク上で通信する場合は、同じネットワークを使用します。

技術的には、アプリケーションは発信トラフィックを特定のインターフェイスにバインドできますが、そのためにはアプリを書き直す必要があります。


0

同様の要件があり、特定のアプリケーションが特定のインターネット接続を経由することを望んでいましたが、IPまたはポートを介して実行することはできませんでした。

私の解決策は:

(コンピューターのIPはxxx100であることに注意してください

a)xxx101のマングルルールを設定してwan2経由にする

b)ip xxx101で(opensshがインストールされた)ubuntuliteのコピーでvmwareプレーヤーを実行します

c)「プロキシ」を使用してアプリケーションをバインドし、vmwareマシンを介してトンネルを強制します。これは、wan2を介してのみルーティングされます。

これは、アプリケーションレベルでそれを行う方法を考えることができる唯一の(非常に厄介な)方法です(プロキシーには、Windows 7 x64でテストして実行できる試用版があります)。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.