我试图找出为什么我的访客在连接到 NAT 网络时无法连接到互联网。我在下面提供了一些设置的屏幕截图。我只在 lubuntu 上遇到这个问题。我和我的朋友都可以在 2 个不同的 Linux 系统上使用所有默认设置并且无需修改。
在访客上进行的操作ifconfig
显示,已经在下面第一张图片所示的范围内分配了一个IP(它只是默认值)。除了下面显示的内容之外,我没有更改任何默认设置。
顺便说一句,我在使用 lubuntu 作为主机操作系统的 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 的输出)
答案1
更新:总而言之,你使用的是NAT-网络/NAT-服务接口。这是与类似命名的接口类型不同的接口类型网络地址转换接口。这篇博客文章很好地描述了这些差异:
当您从 NAT 网络接口切换到 NAT 接口时,您可以从虚拟机访问互联网,而无需进行额外配置。由于这是您的最终目标,因此我们没有继续诊断导致 NAT 网络接口出现问题的原因。
原始解决方案如下。
根据您目前提供的信息,我还不够了解,无法做出确定的诊断,但一种可能是主机上的 VirtualBox 网络配置与来宾上的网络配置之间存在冲突。
我建议尝试从具有端口转发的工作 NAT 配置开始,以允许对来宾进行 SSH 访问。有几个原因:
在当前情况下,您无法复制访客的文本。
从一切正常的情况开始,然后再回到问题所在,这通常有助于调试。
根据我的经验,NAT 接口是 VirtualBox 来宾访问互联网最轻松、最不容易出错的方法。
您可以通过 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登录guest:
ssh -p 2222 localhost
请注意,由于端口转发规则,您不需要知道访客的 IP 地址。如果您能正常工作,那么您可以更新您的帖子,我们可以尝试找出“NAT 网络”配置出了什么问题。
另外,您可能想尝试从以下位置下载预配置的虚拟机:虚拟盒子网站。显然他们有一些lubuntu 图片。