複数のネットワークインターフェイス(LANおよびワイヤレス)を使用していますが、優先インターフェイスの順序を変更する方法があることに気付きました。有線ネットワークを使用して作業や電子メールなどを(安全に)実行し、無線VLAN=を使用して他の方法(ポートと場合によってはWebsenseによってブロックされる)にアクセスする)をするにはどうすればよいですか?
秘訣はルーティングテーブルを調整することです(これは宛先ポートやソースアプリには依存しませんが、宛先ホストに依存します)。これは、LinuxまたはOS Xを使用していることを前提としています(タグが示すとおり)。
デフォルトゲートウェイが1.2.3.4で、6.7.8.9でトラフィックをルーティングできるVPNがあるとします。メールトラフィックを6.7.8.9経由でルーティングする場合は、次のようにします。
Sudo route add mail.myserver.com 6.7.8.9
ルートのバージョンによっては、アドレスとネクストホップの間に「gw」キーワードが必要になる場合があります。そのネクストホップを介してネット全体のルートを作成する場合は、次のように、宛先のCIDR表記でネットマスクを追加するだけです。
Sudo route add 192.168.0.0/24 6.7.8.9
既存のルーティングテーブルを表示する場合は、
netstat -nrl
or
ip route list
Windowsを使用している場合は、「net route」を使用するとほとんどの方法が得られますが、構文はまったく異なります。
2つのNICを同時にアクティブにするだけの場合は、ネットワークデバイスのリストの下にある歯車を選択して、システム設定/ネットワークでサービスオーダーを設定できます。必要な順序をドラッグアンドドロップします。
たとえば、MBPでEtherとWiFiを常にアクティブにし、Wi-Fiの上にEtherを設定しています。私は職場でEtherを使用しているので、NICプロキシ設定あり、Wi-Fiなしで設定しました。家に帰るときに、設定を調整する必要はありません。これを行うこともできます。端末を使用して/usr/bin/networksetup -ordernetworkservices
。
しかし、アクティブとアプリの両方にデフォルト以外を使用させるために、@ Andorのアドバイスを少し簡単に試してみました。アプリでEtherを使用しない場合は、アプリのプロキシ設定をWi-FiアダプターのIPアドレスに設定します。それは外に出るためにそのインターフェースを使用し、そのようにして会社のプロキシと監視サーバーをバイパスします。したがって、Etherのアドレスが1.2.3.4で、サービスオーダーでWi-Fi(5.6.7.8)の前にある場合、アプリプロキシは5.6.7.8になります。
Macの場合、私が使用する簡単な解決策があります。これは実際には@Andorのソリューションの実装です。プロキシをインストールし、それを使用するようにアプリを構成します。
インストールしました SquidMan
構成に次の行を追加します。 x.x.x.x
の代わりに、プライベートアプリに使用するIPを指定する必要があります。
tcp_outgoing_address x.x.x.x
SquidManを起動し、プロキシとして使用するようにアプリを構成します。
この情報を別のページで見つけるのに1時間を費やしたので、他の人がより速くそれを行うのに役立つことを願っています。
おそらく、低レベルのIO制御関数(ioctl)を使用する必要があります。特に:
ioctl( socket, SIOCGIFADDR, ... ); // Get network interface address
そして
ioctl( socket, SIOCSIFADDR, ... ); // Set network interface address
詳細は このマニュアルページ を参照してください。
問題は、ネットワーク接続への複数のゲートウェイがあり、管理が少し難しいということです...
一部のサーバーまたはネットワーク関連のUNIXおよびLinuxツールには、通常、「インターフェイス」と呼ばれるフラグがあり、tcpdumpのように、使用するインターフェイスを指定できます。次に例を示します。
tcpdump -i eth0
しかし、標準的なデスクトップソフトウェアのルーティングについて質問しているように、少し難しくなります...
とにかくそのためのトリックを教えてあげることができます...その問題に対処するための私の通常の修正は、プロキシを使用し、ゲートウェイを1つだけにすることです。現在インターネットを使用しているほとんどすべてのソフトウェアには、プロキシを構成するためのオプションがあるため、次のいずれかの方法で行うことができます。
1.-ネットワークの「セキュリティ保護されていない」(つまり、ポリシーが適用されていない)部分にプロキシを設定し、ソフトウェアがそのプロキシをポイントするようにします。
2.-別の「安全でない」場所、たとえば自宅、またはインターネット上の専用サーバーにSSHサーバーを設定し、Socksがソックスプロキシサーバーを作成する特別な機能を介して接続を開く:
ssh -D 1234 user@Host
それはあなたのコンピュータにポート「1234」でソックスプロキシサーバーを作成し、「ユーザー」を使って「ホスト」に接続し、「ホスト」が持つ接続を介してインターネットに行きます...そして、ローカルソフトウェアでは、プロキシ設定ツールを開き、localhost:1234を指定するだけです。
企業のインターネットポリシーを回避するための素晴らしいトリック:P
:D
ビジネスアプリケーションを仮想マシン内で実行しています。上記の手順を使用してWiFiを優先接続として設定し、イーサネットポートを「ブリッジ」アダプターとして使用するように仮想マシンを構成しました。
これで、仮想マシン内で実行されているものはすべてイーサネットポートにハードリンクされます。 WiFiが接続されている限り、他のすべてのアプリケーション(仮想マシン以外)の優先接続はWiFiです。
アプリケーションを特定のイーサネットポートに強制的にバインドするために使用できるユーティリティはあると思いますが、MacOSについては調査していません。
前述のルーティング方法は「素人」にとってはやや複雑ですが、特に接続で同じIPアドレスを繰り返し取得する場合は、実行可能なアプローチとしても良いようです。
この質問はOSXに関するものですが、Windows 7 64ビットで動作する次のものはここに残しておきます。この質問は、 アプリケーションを特定のアダプタ に強制的に通過させるときに上位の結果の1つとして浮かび上がったので、以下が他の人に役立つかもしれません。
http://www.howtogeek.com/117890/how-to-force-an-application-to-use-a-specific-network-card/
上記のガイドでは、 ForceBindIp と呼ばれるユーティリティを使用しています。このユーティリティは、Windows NT/2000/XP/2003
しかし、Windows 7-64ビットで動作させるのに問題はありませんでした。