我正在使用 VirtualBox 运行多个 Debian 12(主机和来宾)虚拟机。突然间,今天他们开始出现连接问题(即我无法 ping 通 8.8.8.8)。我最近从 Debian 11 升级到 Debian 12。
所有虚拟机都有两个网络适配器:
- 1个NAT网络适配器
- 1 个仅主机网络适配器
经过一些测试,我发现删除仅主机网络适配器可以恢复连接。可能是什么问题?这就像系统忽略 NAT 网络适配器并使用没有连接的仅主机网络适配器。
我该如何调试呢?
答案1
问题解决了。我无法解释原因和方式(如果有人可以,请编辑我的答案)。
编辑/etc/networking/interfaces
以前的损坏版本:
source /etc/network/interfaces.d/*
auto lo
iface lo inet loopback
allow-hotplug eth1
iface eth1 inet static
address 192.168.56.103
netmask 255.255.255.0
gateway 192.168.56.1
allow-hotplug eth0
iface eth0 inet dhcp
新的工作版本:
source /etc/network/interfaces.d/*
auto lo
iface lo inet loopback
allow-hotplug eth1
iface eth1 inet static
address 192.168.56.103
netmask 255.255.255.0
allow-hotplug eth0
iface eth0 inet dhcp
之后重新启动或发出问题service networking restart
编辑:
假设 eth1 是连接到仅主机网络的接口,您永远不应该gateway
在其上配置 a (在另一种意义上,使用它的默认路由),因为它通常不用于 Internet 流量(尽管 AFAIK从技术上讲,你可以设置一些东西并使用它),显然,你从来没有打算这样做。
我不知道内核在具有相同“覆盖范围”的多个路径中选择一条路径的启发式是什么和相同的指标,但我很确定从用户的角度来看,该行为可能或多或少是不确定的,更不用说来自 dhcp 的行为甚至可能会添加更高的指标值(即更低的优先级)。