我偶尔会在使用我为测试开发工作而设置的 ubuntu 虚拟机时遇到问题 - 有时无法通过 ssh 访问它,无法连接到 archive.ubuntu.com 进行更新等。它有两个网络接口,一个带有公共网络的外部网络接口IP eth0
,以及eth1
具有 10.0.xx IP 的内部 IP,用于与虚拟机管理程序组中的其他 VM 进行通信。
我今天注意到,在启动它之后,无法 ssh 登录apt-get update
(因此我通过 Web 控制台登录进行调试),当我尝试 ping example.com 时,它会尝试通过以下方式执行此操作eth1
(大概是因为eth0
没有连接,尽管是up
根据ifup
)
如果我这样做,traceroute
它确实会一直到达数据中心。sshd
已验证正在运行。 VM 防火墙接受端口 22 上的流量eth0
。这是摘录自iptables -S
:
-A INPUT -i eth0 -p tcp -m tcp --dport 22 -j ACCEPT
-A OUTPUT -s eth0 -p tcp -m tcp --sport 22 -j ACCEPT
真正令人困惑的是这个问题并不能确定地重现。我可以幸运地启动并且连接可以工作,但有时,在不触及设置的情况下,它不会工作。关于如何调试这个有什么想法吗?
编辑:摘录自/etc/network/interfaces
- 无 dhcp。我不擅长网络,所以我想检查一下:这里是否有任何东西表明奇怪的路由偏好?
auto eth0
iface eth0 inet static
address x.x.x.x
netmask 255.255.255.128
broadcast x.x.x.127
network x.x.x.0
gateway x.x.x.1
auto eth1
iface eth1 inet static
address 10.0.x.x
netmask 255.255.255.128
broadcast 10.0.0.255
network 10.0.0.0
gateway 10.0.0.1
我应该添加以下几行吗eth0
?
up route add x.x.x.1 dev eth0
up route add default gw x.x.x.1