VirtualBox NAT ゲスト内の SOCKS サーバーに到達する
ホストの loopback ポートをゲストのプロキシに転送し、ゲストのリスナーが仮想ネットワークインターフェースで接続を受け付けることを確認します。
VirtualBox ゲスト内の SOCKS サービスには、別々の到達性要件が 2 つあります。VirtualBox が接続をゲストに届けることと、ゲストのサービスがそれを受け付けることです。
最初のアダプターが通常の NAT を使う VM では、VirtualBox 7.1 はこの形式のポート転送ルールを文書化しています。VM を停止した状態で:
VBoxManage modifyvm "Proxy VM" --nat-pf1 "socks,tcp,127.0.0.1,1080,,1080"
VM 名とポートは必要に応じて置き換えます。その後、ホストのアプリケーションは 127.0.0.1:1080 で SOCKS を選択します。ホスト側を 127.0.0.1 にバインドすると、この入口はホスト自身に限定されます。
ゲストアドレス欄が空の場合、ゲストが NAT エンジン内蔵の DHCP 割り当てを使うことを前提とします。ゲストが代わりに静的アドレスを使う場合は、そのアドレスをルールに指定します。最後の 1080 はゲストのサービスポートであり、ホストのポートと一致する必要はありません。
ゲストのリスナーは依然としてネットワークサービスです
ゲスト内で 127.0.0.1 にのみバインドされたプロキシは、ゲスト内のローカル接続を受け付けます。NAT 転送は、その loopback リスナーがゲストの仮想インターフェースに到着するトラフィックを受け付けるようにはしません。サービスが適切なゲストインターフェースで待ち受けるように設定し、意図したトラフィックをゲストのファイアウォールとプロキシのアクセスルールを通して許可します。 リスナーの許可・拒否アクセスを確認する その境界を変更した後に。
失敗したときは、これらの境界を個別に確認します。ホストのポートとルール、選択したゲストアドレス、ゲスト内のリスナーです。ブリッジネットワークに切り替えても、ゲストの loopback のみで待ち受けているサービスは直りません。
この TCP ルールは TCP 上の SOCKS 接続を対象とします。SOCKS5 UDP リレーに必要な追加の UDP 経路を、それ自体で提供するものではありません。