int1
などの2つのインターフェースを実行する仮想化Linuxボックスがありますint2
。int1
これは「NATネットワーク」であり、int2
VirtualBoxの「ホストのみ」アダプタです。
ターミナルで「google.com」をpingしようとすると、トラフィックがgoogle.comからルーティングされるため、int2
何も応答しません。ただし、ブラウザで「google.com」にアクセスしようとすると問題なく応答します。
ターミナルとFirefoxは両方とも単純なアプリケーションなので、Linuxがどのアプリケーションからのトラフィックをどのインターフェイスを介してルーティングする必要があるかを決定する方法、およびそれをどのように変更できるかを知りたいです。
PS:もしそうなら、Linuxボックスは実際にUbuntuベースのオペレーティングシステムである「Linux Backbox」です。
PPS:ゲストOSからインターネットとホストOSにアクセスしたい場合は、ブリッジ接続を行うことができますが、これは私が使用している会社のコンピュータであり、IT部門がネットワークを検索しながら歩き回りたくありません。 「ゴースト」ホストの場合、Ghost Machineの名前です(文字通り「ゴースト」:D)。
答え1
Linux はルールとルーティングを使用して、使用するインターフェイスを決定します。
これらのルールはパケットの条件と参照するルーティングテーブルを指定し、ip rule show
iproute2を使用している場合はこれらのルールを表示できます。ほとんどの場合、これはローカルテーブル、基本テーブル、基本テーブルを順番に表示することを意味します。
ルーティングテーブルには、パケットを送信する必要がある宛先とオブジェクトのリストのみが含まれています(パケットを送信する必要があるインターフェイスを含む)。これ基本ルーティングテーブルはを使用して確認できますip route show
。
AFAIK Linuxは異なるアプリケーションに異なるパスを使用しません(同じネットワークネームスペースにあり、奇妙なiptables fwmarkingシステムがない場合)。