如何從 OS X 主機透過靜態 IP 存取 Ubuntu VirtualBox 來賓?

如何從 OS X 主機透過靜態 IP 存取 Ubuntu VirtualBox 來賓?

如何設定 Ubuntu 用戶端以使用 OS X 主機可見的靜態 IP,並確保靜態 IP 獨立於主機的網路配置?我以前為我的訪客使用橋接網絡,但我經常在網絡之間移動主機,因此訪客 IP 始終不同。

首先,我嘗試將訪客網路設定為 NAT 並將主機連接埠 1022 轉送到訪客連接埠 22,這樣我至少可以 ssh 到固定位址 (localhost:1022):

$ 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。該虛擬機器可能正在您的電腦上運行,但它的尋址方式與您的電腦分開。

當您在 VirtualBox 中開啟 NAT 橋接器時,它會建立一個單獨的虛擬接口,充當您放置在其後面的 NAT 用戶端的「路由器」。您無法連線到 localhost 來存取 VM,因為 localhost 是您的 Mac,而不是 VM。

將來賓設定為 NAT,然後從其內部檢查虛擬機器的位址。使用該位址(很可能是私人位址,192.168.something)並嘗試從您的主機進行連線。

答案2

VirtualBox 網路手冊。我將其用於透過 NAT 到遠端桌面的 Windows 來賓,效果很好,但我還沒有從主機本身嘗試過。

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

在上面的範例中,到達任何主機介面上的連接埠 2222 的所有 TCP 流量都會轉送到來賓中的連接埠 22。協定名稱 tcp 是強制屬性,定義應使用哪個協定進行轉送(也可以使用 udp)。 guestsh 名稱純粹是描述性的,如果省略,將自動產生。 --natpf 後面的數字表示網卡,就像 VBoxManage 的其他部分一樣。

哦,我剛剛意識到這個問題有多老了,哦,希望它對其他人有幫助。

相關內容