Networking

VirtualBox NAT 網路如何是單向的?

  • August 10, 2021

當 VirtualBox 中的虛擬機使用 NAT 網路時,它能夠與主機通信,但主機無法與虛擬機通信(例如,ping)。這怎麼可能?是一些 iptables 設置嗎?

看著ip a我看到的虛擬機eth0 10.0.2.15/24。在我的主機上,該網路中沒有介面。然後,我想知道,溝通怎麼可能?為什麼它只是一個方向?

另一個問題,我認為它是相關的(如果沒有,請告訴我,我會創建另一個文章):在主機上,我有一個 docker 容器正在執行,連接到預設的 docker0 網橋。它的IP是172.17.0.2。我想從我上面提到的同一個虛擬機(Virtualbox、NAT)上 ping 它。由於 VM 還安裝了 docker,因此它還具有 docker0 網橋,其網路 CIDR 與我的主機上的 docker0 相同。然後,我使用以下 ping ping -I eth0 172.17.0.2:這應該會強制流量通過 VM 的 eth0,據我所知,它與我的主機有連接(因為我可以自由地 ping 我的主機)。所有的數據包都失去了。這是為什麼?

如果不為該虛擬 NAT 網路配置埠轉發,您將無法訪問 VM。問題的簡單解決方案是將網路適配器更改為橋接適配器。

如果您更改網路適配器的模式,VM 將像您網路中的另一台設備一樣可以訪問。

在這里為您提供有關此主題的文件和一個小表格來理解這一點:

" 啟用了 NAT 的虛擬機的行為非常類似於通過路由器連接到 Internet 的真實電腦。在這種情況下,路由器是 Oracle VM VirtualBox 網路引擎,它透明地映射進出虛擬機的流量。在 Oracle 中VM VirtualBox 這個路由器放置在每個虛擬機和主機之間。這種分離最大限度地提高了安全性,因為預設情況下虛擬機不能相互通信。

NAT 模式的缺點是,就像路由器後面的專用網路一樣,虛擬機是不可見的,並且無法從外部 Internet 訪問。除非您設置埠轉發,否則您無法以這種方式執行伺服器。”

在此處輸入圖像描述

在此處輸入圖像描述

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