VirtualBox VM 無法通過 NAT 連接到 Internet
我試圖弄清楚為什麼我的客人在連接到 NAT 網路時無法連接到網際網路。我提供了以下設置的一些螢幕截圖。我只在 lubuntu 上有這個問題。我和我的朋友都可以在 2 個不同的 Linux 系統上使用所有預設設置,無需修改。
對
ifconfig
客人進行操作向我顯示,在下面第一張圖片所示的範圍內分配了一個 IP(它只是預設為這個)。除了下面顯示的內容外,我沒有更改任何預設設置。順便說一句,我在以 lubuntu 作為主機作業系統的 VirtualBox 上安裝的任何 VM 都遇到了同樣的問題。橋接和僅主機連接工作正常。
VirtualBox 首選項:
訪客網路設置:
編輯:
有關係統和網路設置的一些資訊:
cat /etc/network/interfaces auto lo iface lo inet loopback
來賓作業系統:lubuntu 17.04
主機作業系統:lubuntu 17.04
VirtualBox 版本:5.1.22_Ubuntur115126(VBoxManage –version 的輸出)
更新:總而言之,您使用的是NAT-Network/NAT-Service 介面。這是與名稱相似的NAT 介面不同的介面類型。這篇部落格文章很好地描述了這些差異:
當您從 NAT 網路介面切換到 NAT 介面時,您無需額外配置即可從 VM 訪問 Internet。由於這是您的最終目標,我們沒有繼續診斷導致您的 NAT 網路介面出現問題的原因。
原始解決方案如下。
根據您迄今為止提供的資訊,我還不足以做出特定的診斷,但一種可能性是主機上的 VirtualBox 網路配置與來賓上的網路配置之間存在衝突。
我建議嘗試從具有埠轉發的工作 NAT 配置開始,以允許對來賓進行 SSH 訪問。有幾個原因:
- 在目前情況下,您無法從客人那裡複製文本。
- 從一切正常的情況開始進行調試通常很有幫助,然後再以自己的方式解決問題。
- 根據我的經驗,NAT 介面是讓 VirtualBox 來賓訪問 Internet 的最輕鬆、最不容易出錯的方法。
您可以通過 GUI 執行此操作,但我將包含命令行範例以更具體。
首先讓我們移除所有的網路介面卡:
for n in 1 2 3 4 5 6 7 8; do vboxmanage modifyvm "${VMNAME}" --nic${n} none done
現在讓我們添加一個 NAT 介面:
vboxmanage modifyvm "${VMNAME}" --nic1 NAT
讓我們檢查一下 NIC 配置:
vboxmanage showvminfo "${VMNAME}" | grep '^NIC'
輸出應該是這樣的:
NIC 1: MAC: 08002784C3DE, Attachment: NAT, Cable connected: on, Trace: off (file: none), Type: Am79C973, Reported speed: 0 Mbps, Boot priority: 0, Promisc Policy: deny, Bandwidth group: none NIC 1 Settings: MTU: 0, Socket (send: 64, receive: 64), TCP Window (send:64, receive: 64) NIC 2: disabled NIC 3: disabled NIC 4: disabled NIC 5: disabled NIC 6: disabled NIC 7: disabled NIC 8: disabled
現在讓我們為 ssh 添加一個埠轉發規則。這是一個將主機上的埠 2222 映射到客戶機上的埠 22 的範例:
vboxmanage modifyvm "${VMNAME}" --natpf1 ssh,tcp,,2222,,22
啟動 VM 並測試 SSH 連接。如果您已經在客戶機上執行了 SSH,那麼您可以在無頭模式下啟動它:
vboxmanage startvm --type headless "${VMNAME}"
通過 ssh 登錄來賓:
ssh -p 2222 localhost
請注意,由於埠轉發規則,您不需要知道來賓的 IP 地址。如果你得到這個工作,那麼你可以更新你的文章,我們可以嘗試找出“NAT網路”配置有什麼問題。
此外,您可能想嘗試從Virtual Boxes網站下載預配置的 VM。顯然他們有一些lubuntu 圖像。