VirtualBox 版本:5.1.10
主机操作系统:Windows 10 家庭版。
客户操作系统:Ubuntu 服务器 14.04
互联网设备:LTE USB 棒华为 E3372
我需要客人能够访问互联网(它在 NAT 模式下工作)
我需要客人和主人能够互相看到对方。
我尝试了很多旧帖子中的方法。NAT
正在运行,允许访客访问互联网,但仍然无法访问主机
我查看了官方文档: https://www.virtualbox.org/manual/ch06.html 但,这对我没有帮助。
有什么建议吗?
答案1
我找到了一个解决方案:
通过 USB 调制解调器进行桥接不适用(不知道为什么!)
解决方案是:
NAT 适配器访问互联网,也访问主机!
仅主机适配器允许主机访问客户机!但是,为了使其正常工作,我不得不手动添加另一个网络接口。没有这个接口它就不起作用。
答案2
您需要的是“桥接适配器”而不是 NAT。NAT 故意将您的客户机隐藏在某种虚拟墙后面,这使得从 NAT(包括主机)外部直接与其通信有些麻烦。如果您想限制与客户机的通信,或者您在主机网络上只有一个可用的 IP,那么它很有用。
另一方面,桥接适配器使客户机成为主机和网络上所有其他设备的对等体,并具有自己的 MAC 地址和 IP。如果您在网络上设置了 DHCP(如果您不知道我在说什么,您几乎肯定会知道),客户机将自动获得与主机相同的 IP。如果没有,您可以像配置另一台位于主机旁边并插入同一网络的物理机器一样对其进行配置。
当您需要主机与客户机与互联网与/或其他联网计算机之间的连接时,为 vbox 客户机桥接网络适配器几乎总是正确的选择。
更新:鉴于您的 USB 调制解调器未在 VirtualBox 中显示为选项的信息,我建议另一种解决方案:端口转发。当您在路由器上进行端口转发时,您正在为该路由器自己的 NAT 创建指令。VirtualBox 提供了执行相同操作的功能。
在虚拟盒中打开您的客户端设置,在网络部分,确保适配器配置为 NAT 而不是 NAT 网络(旧版本的 VBox 可能没有后者)。然后展开下面的高级部分并单击Port Forwarding
。单击右侧的加号,它将在列表中创建一个空白规则。
您可以随意命名规则。将 IP 地址留空。其余的取决于您尝试在客户机上访问的服务。对于客户机上的 Web 服务器,您将使用protocol: TCP
和port: 80
(为简单起见,将主机和客户机端口保持相同)。对于 Windows 文件共享,您将使用 12 条单独的规则。Sixprotocol: UDP
和 Six protocol: TCP
。其中每个都有相同的六个端口,每个端口一条规则。这些端口是 135、136、137、138、139 和 445。
如果不知道您尝试访问客户机上的哪些服务,我就无法知道您应该打开哪些端口。但您可以在线查找正确的端口。
要连接到客户机的服务,您需要使用主机的 IP 地址……而不是客户机的 IP 地址。VirtualBox 将捕获通过该端口进入主机的消息,并将其重新定向到客户机。因此,如果您也在主机上使用相同的服务,则可能必须更改客户机上某些服务的配置以使用不同的端口。
两点说明:
ping 命令不使用 UDP 或 TCP,无法由 VirtualBox 在 NAT 模式下转发。尝试从主机 ping 客户机仍将失败。但是,如果您转发了正确的端口,则主机将可以访问客户机的服务。
其次,如果您的调制解调器没有集成的 NAT,那么您的客户机服务(您已将端口转发到的服务)也将可以从互联网访问。尽管在这种情况下,安全性已无望,因为主机已经暴露在外。USB 调制解调器确实很糟糕。如果可能的话,您应该看看是否可以从 ISP 那里获得带有集成路由器(带有 NAT)的网络调制解调器,或者自己购买一个。