如果我不在家中使用 WiFi 网络,ubuntu 20.04 主机上的 debian 10.5 vBox 服务器将无法连接到互联网,也无法连接到客户机。(vBox 6.1)
我无法从主机 ping 通服务器。
一切都正确启动,启动时没有服务故障......(意思是没有错误消息来帮助我排除故障。)
我尝试切换到 nat 网络并配置端口转发。我能够通过 ssh 进入盒子,但无法从主机 ping 通,并且盒子内部没有外部互联网连接。
有人能提供一个完整的解决方案,让我可以随意使用不同的 wifi 网络吗?
我的 debian 10.5 服务器在 /etc/notwork/interfaces 中有这个
auto enp0s3
iface enp0s3 inet static
address 192.168.0.84 #My server is running a bind DNS server, so I added its address
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.1
dns-nameservers 192.168.0.84 100.100.2.136 100.100.2.138 8.8.8.8 `
仅供参考,这是一个解决相同问题的教程,但我无法将其“翻译”为 Ubuntu Host 和 Debian 10.5 服务器 https://marcus.4christies.com/2019/01/how-to-create-a-virtualbox-vm-with-a-static-ip-and-internet-access/
答案1
根本原因:
您的家庭网络使用的是 192.168.0.0/24 网络。这意味着家庭网络中设备的地址从 192.168.0.1(您的路由器)到 192.168.0.254。
其他地方的另一个网络可能/将会使用另一个网络范围。
您的工作站大概配置为使用 DHCP,即它将获得一个属于网络地址范围的 IP 地址,例如在家中为 192.168.0.100 或在其他地方为 192.168.67.45。
您的虚拟机具有固定 IP,超出了您的家庭网络范围,因此无法连接到使用不同范围的网络。
当您切换到 Virtualbox 中的 NAT 网络时,情况也是如此。据我所知,Virtualbox 上的 NAT 网络(即提供给 VM 的物理适配器后面的网络)是 10.0.2.0/24,网关(您的工作站)是 10.0.2.2。
考虑到这一点,有多种可能的解决方案:
解决方案 1:使用 Bridge 和 DHCP
你没有指定是否需要在虚拟机中使用固定 IP 地址。如果不这样做,请将 /etc/network/interfaces 更改为
auto enp0s3
iface enp0s3 inet dhcp
解决方案 2:使用 DHCP 和 NAT
客户端的配置与上述相同,但使用 NAT 网络
解决方案3:NAT网络上的固定IP
首先使用解决方案 2。然后找出您被分配了哪个 IP/子网,然后更改 /etc/network/interfaces 中的配置以反映更改:
auto enp0s3
iface enp0s3 inet static
address 10.0.2.84
netmask 255.255.255.0
network 10.0.2.0
broadcast 10.0.2.255
gateway 10.0.2.2
dns-nameservers 10.0.2.84 100.100.2.136 100.100.2.138 8.8.8.8 `
但是,您需要将端口从外部世界转发到虚拟机。
解决方案 4:使用两个网络适配器
从你的问题来看,你为什么在虚拟机上运行 bind 并不完全清楚。我猜你想将它用作 LAN 中的 DNS 服务器,用于过滤等?如果你想保留上述配置,只需删除以下行
gateway 192.168.0.1
并添加第二个网络接口,该接口可能被称为 enp1s45,例如使用 dhcp 作为互联网网关:
auto enp1s45
iface enp1s45 inet dhcp
这样,第二个接口就提供了通往互联网的网关。在家里,你的机器仍然是 192.168.0.84
答案2
因此,您的家庭网络允许您将主笔记本电脑操作系统(虚拟机管理程序)的 wlan 接口连接到 Wifi,并提供一个 IP 地址,然后当您以桥接方式运行 VM(来宾)时,还会提供一个额外的 IP 地址,但在网吧等其他地方,这种情况不会发生。我想说这是大多数路由器配置中的预期行为。正常行为是每个 MAC 在使用凭据成功登录 Wifi 后只获得一个 IP(就像笔记本电脑的虚拟机管理程序一样)。