机器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 地址,正如问题已经提到的那样。