機器62:Ubuntu 16.04,可以上網,可以透過網路存取。在 62 機器上,有一個帶有 VM 的 VirtualBox(也是 Ubuntu)。
我希望虛擬機器表現得像「正常」機器(ip 請求)。我為其保留了一個靜態 IP,但現在我不確定如何配置主機和來賓的接口,就像我通常 ping 主機一樣(通過保留的 IP 代替)共 62 個...)。
ReverseProxy 工作了一段時間,但後來我需要透過我事先不知道的連接埠進行 websocket。那麼現在我的下一個猜測是NAT? IP轉送?橋接網路?偽裝?
答案1
您必須在主機和虛擬機器之間建立橋接網路。配置因虛擬機器管理程式供應商而異。
如果您使用的是 Oracle Virtual Box
- 打開
Oracle VM VirtualBox Manager
,選擇虛擬機器並前往網路部分。 - 在
Adopter 1
標籤中,將預設值變更NAT
為並從下拉清單Bridged Adopter
中選擇主機的網路介面卡。Name
應用它。 - 現在根據您的 ISP 配置(例如靜態動態等)在 VirtualBox 內配置網路。
如果您正在使用QEMU-KVM
- 開啟
Virtual Machine Manager
GUI 工具(如果您使用的是 GUI) - 選擇特定的虛擬機器及其
Open
。然後選擇NIC
- 變更預設值
NAT
,Host Device xxxxxx: macvtap
然後根據 ISP 的配置在虛擬機器內配置網路。 - 如果您沒有 GUI 工具,請
virsh edit virtual-machine-name
按照前面所述使用和修改配置。
第三種替代方法是iptable
NAT
在主機中建立規則。然後將所有流向該 IP(您要指派給 VM)的流量轉送到 VM 的內部 IP 位址。你得寫幾iptables
行,請谷歌一下。但對我來說,這是最不受歡迎的方法。
註1 Bridged Network
且不macvtap
適用於WiFi
主機中的大多數採用者。
筆記2如果macvtap
您的主機無法從虛擬機器訪問,反之亦然。它們都可以從外部網路存取。此外,如果您有多個虛擬機,它們將保持相互可及。這就是有效的方法macvtap
。若要從主機存取虛擬機器(反之亦然),請在 Oracle VirtualBox 的情況下再建立一個 NAT 採用器,並在 QEMU-KVM 的情況下再建立一個具有 NAT 的 NIC。
註3對於這兩者Bridged Network
,macvtap
主機的網路採用者必須為每個虛擬機器保留一個 IP 位址,正如問題已經提到的那樣。