OS X ホストから静的 IP で Ubuntu VirtualBox ゲストにアクセスするにはどうすればよいですか?

OS X ホストから静的 IP で Ubuntu VirtualBox ゲストにアクセスするにはどうすればよいですか?

Ubuntu ゲストが OS X ホストに表示される静的 IP を使用するように構成し、その静的 IP がホストのネットワーク構成に依存しないようにするにはどうすればよいでしょうか。以前はゲストにブリッジ ネットワークを使用していましたが、ホストをネットワーク間で頻繁に移動しているため、ゲストの IP は常に異なります。

まず、ゲスト ネットワーク構成を NAT に設定し、ホスト ポート 1022 をゲスト ポート 22 に転送して、少なくとも固定アドレス (localhost:1022) に ssh できるようにしました。

$ VBoxManage setextradata "Ubuntu Server" "VBoxInternal/Devices/e1000/0/LUN#0/Config/SSH/Protocol" "TCP"
$ VBoxManage setextradata "Ubuntu Server" "VBoxInternal/Devices/e1000/0/LUN#0/Config/SSH/GuestPort" 22
$ VBoxManage setextradata "Ubuntu Server" "VBoxInternal/Devices/e1000/0/LUN#0/Config/SSH/HostPort" 1022

それから、

$ ssh localhost -p 1022
ssh: connect to host localhost port 1022: Connection refused

しかし、これは機能しませんでした (ご覧のとおり、ゲストは NAT によるネットワーク アクセスを持たず、OS X は接続を拒否しました)。

固定 IP でゲストと通信できる一般的なソリューションが欲しいです。

答え1

まず、localhost は 127.0.0.1 を指します。その VM はマシン上で実行されている可能性がありますが、それとは別にアドレス指定されます。

VirtualBox で NAT ブリッジをオンにすると、その背後に置いた NAT クライアントの「ルーター」として機能する別の仮想インターフェイスが作成されます。localhost は VM ではなく Mac であるため、localhost に接続して VM にアクセスすることはできません。

ゲストを NAT として設定し、その内部から VM のアドレスを確認します。そのアドレス (おそらくプライベート アドレス、192.168.something) を使用して、ホストから接続してみます。

答え2

からVirtualBox ネットワークマニュアル私はこれを NAT 上の Windows ゲストからリモート デスクトップに使用しており、うまく機能していますが、ホスト自体から試したことはありません。

VBoxManage modifyvm "VM name" --natpf1 "guestssh,tcp,,2222,,22"

上記の例では、任意のホスト インターフェイスのポート 2222 に到着するすべての TCP トラフィックがゲストのポート 22 に転送されます。プロトコル名 tcp は、転送に使用するプロトコルを定義する必須属性です (udp も使用できます)。名前 guestsh は単に説明的なものであり、省略した場合は自動生成されます。--natpf の後の数字は、VBoxManage の他の部分と同様に、ネットワーク カードを示します。

ああ、この質問が古いことに今気づきました。まあ、他の人の役に立つといいのですが。

関連情報