Networking

VirtualBox VM 無法通過 NAT 連接到 Internet

  • October 28, 2017

我試圖弄清楚為什麼我的客人在連接到 NAT 網路時無法連接到網際網路。我提供了以下設置的一些螢幕截圖。我只在 lubuntu 上有這個問題。我和我的朋友都可以在 2 個不同的 Linux 系統上使用所有預設設置,無需修改。

ifconfig客人進行操作向我顯示,在下面第一張圖片所示的範圍內分配了一個 IP(它只是預設為這個)。除了下面顯示的內容外,我沒有更改任何預設設置。

順便說一句,我在以 lubuntu 作為主機作業系統的 VirtualBox 上安裝的任何 VM 都遇到了同樣的問題。橋接和僅主機連接工作正常。

VirtualBox 首選項:

VirtualBox 首選項

訪客網路設置:

訪客網路設置

編輯:

有關係統和網路設置的一些資訊:

cat /etc/network/interfaces

auto lo
iface lo inet loopback

來賓作業系統:lubuntu 17.04

主機作業系統:lubuntu 17.04

VirtualBox 版本:5.1.22_Ubuntur115126(VBoxManage –version 的輸出)

(很抱歉擷取整個螢幕。我的螢幕擷取工具無法從 VM 中獲取特寫鏡頭) ifconfig -a: 在此處輸入圖像描述

路線-n: 在此處輸入圖像描述

ARP -n: 在此處輸入圖像描述

更新:總而言之,您使用的是NAT-Network/NAT-Service 介面這是與名稱相似的NAT 介面不同的介面類型。這篇部落格文章很好地描述了這些差異:

當您從 NAT 網路介面切換到 NAT 介面時,您無需額外配置即可從 VM 訪問 Internet。由於這是您的最終目標,我們沒有繼續診斷導致您的 NAT 網路介面出現問題的原因。

原始解決方案如下。


根據您迄今為止提供的資訊,我還不足以做出特定的診斷,但一種可能性是主機上的 VirtualBox 網路配置與來賓上的網路配置之間存在衝突。

我建議嘗試從具有埠轉發的工作 NAT 配置開始,以允許對來賓進行 SSH 訪問。有幾個原因:

  1. 在目前情況下,您無法從客人那裡複製文本。
  2. 從一切正常的情況開始進行調試通常很有幫助,然後再以自己的方式解決問題。
  3. 根據我的經驗,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 圖像

引用自:https://unix.stackexchange.com/questions/399898