You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VirtualBox虚拟机内部网络的路由访问配置及连通性问题

解决VirtualBox内部网络inet的连通性问题

咱们一步步排查和解决这个问题,先从最基础的配置检查开始:

1. 验证U1的enp0s8静态IP配置正确性

首先确认/etc/network/interfaces里的静态IP配置没有问题,比如可以参考这个示例(选一个内部网络常用的私网网段,比如192.168.56.x):

auto enp0s8
iface enp0s8 inet static
    address 192.168.56.1
    netmask 255.255.255.0
    network 192.168.56.0
    broadcast 192.168.56.255

配置完成后重启网络服务生效:

sudo systemctl restart networking
# 或者用老方法:sudo ifdown enp0s8 && sudo ifup enp0s8

然后执行ip addr show enp0s8,确认接口状态为UP,且静态IP已正确加载。

2. 检查U1上的DHCP服务器配置

既然你在enp0s8运行DHCP服务,要确保地址池和enp0s8的静态IP处于同一网段,且无冲突。比如用dnsmasq的话,配置可以这样写:

interface=enp0s8
dhcp-range=192.168.56.100,192.168.56.200,255.255.255.0,24h

重启DHCP服务后,到U2上执行ip addr show enp0s3,确认是否获取到了192.168.56.100-200区间的IP,且网关指向U1的enp0s8地址(192.168.56.1)。如果U2没自动获取到IP,手动给U2配置静态IP试试:

auto enp0s3
iface enp0s3 inet static
    address 192.168.56.101
    netmask 255.255.255.0
    gateway 192.168.56.1

之后重启U2的网络服务。

3. 确认VirtualBox内部网络配置

打开VirtualBox,进入全局设定 -> 网络 -> 内部网络,确认inet这个内部网络存在,且两台虚拟机的对应网卡(U1的enp0s8、U2的enp0s3)都正确绑定到了这个网络。VirtualBox内部网络默认允许同网段机器通信,除非手动修改过规则,这一步主要是确认绑定没出错。

4. 排查防火墙干扰(最容易踩坑的点)

U1或U2的防火墙很可能阻止了ICMP请求(ping)或者内部网络的通信。先临时关闭防火墙测试:
在U1上:

sudo ufw disable
# 如果你用的是firewalld:sudo systemctl stop firewalld

同样在U2上执行关闭命令,然后再尝试ping。如果能通了,说明是防火墙的问题,需要添加规则允许内部网络通信:
在U1上添加规则:

sudo ufw allow in on enp0s8 from 192.168.56.0/24
sudo ufw allow out on enp0s8 to 192.168.56.0/24

之后重新启用防火墙:sudo ufw enable

5. 开启U1的IP转发(如果需要跨网访问)

如果U2需要通过U1访问外部网络(比如U1的enp0s3桥接的无线网卡),必须开启U1的IP转发功能。编辑/etc/sysctl.conf:

sudo nano /etc/sysctl.conf

找到net.ipv4.ip_forward=1这一行,去掉前面的注释符号,然后执行以下命令生效:

sudo sysctl -p

如果只是内部网络互相访问,这一步可能不是必须的,但前面步骤都无效时可以尝试开启。

6. 检查路由表

在U1上执行ip route show,确认存在enp0s8的网段路由:

192.168.56.0/24 dev enp0s8 proto kernel scope link src 192.168.56.1 metric 100

在U2上执行同样的命令,确认默认网关指向U1的enp0s8地址:

default via 192.168.56.1 dev enp0s3 proto dhcp src 192.168.56.101 metric 100

如果U2的网关不对,手动添加路由:

sudo ip route add default via 192.168.56.1 dev enp0s3

最后测试

完成上述步骤后,在U2上执行ping 192.168.56.1(替换成你U1的enp0s8实际IP),应该就能连通了。如果还是不通,试试在U1上ping U2的IP,判断是否是单向不通,进一步缩小问题范围。


内容的提问来源于stack exchange,提问作者Abdul Rahman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 08:55:31