从 14.04 升级到 Ubuntu 16.04 后,我无法 ping 通网关,起初接口 eth0 没有启动,我读到刷新新的 mac 地址可以解决这个问题,所以我决定从虚拟机中删除网络接口并添加一个新的,然后发现必须将 eth0 重命名为其他名称 (ens###),如“ifconfig -a”中所示,才能启动接口。但现在我无法 ping 通网关,路由一切正常。
root@Hostname:~# arp -a
? (192.168.1.1) at <incomplete> on ens192
? (192.168.1.82) at 00:5:56:ab:bb:cc [ether] on ens192
旧的 MAC 地址会不会还留在某个地方?或者为什么会显示不完整?当我 ping 网关时,其目标无法访问,而升级前它工作正常。
您可以在 tcpdump 中看到它正在请求网关 mac 地址
更新:已解决
好的,搞清楚了,看起来当我添加网络适配器时,我选择了 vmxnet3,但旧适配器是 E1000。我只是再次删除了接口,添加了 E1000 适配器,并在 /etc/network/interface 文件中再次重命名了接口名称,然后重新启动。现在它工作正常。谢谢 Daniele,再次检查了虚拟机管理器,虚拟机有所帮助
答案1
简要回顾
最近,Ubuntu 采用了 systemd,它在系统启动时处理网络接口的命名。命名将与某些东西相关联身体的在硬件中(例如插入卡的插槽),这样您就可以添加/删除/替换网络硬件,并且名称不会突然改变(就像以前使用该ethX
方案一样)。
现在,您进行了升级,并且网络接口已重命名,因此/etc/network/interfaces
需要修复您的配置。但是,由于感到困惑,您首先尝试删除虚拟网卡,然后添加一个新的。这给了您一个不同的 mac 地址,并且没有解决您的连接问题。然后您意识到重命名已经发生,您修复了配置,连接又恢复了。
问题(待解决):
您的虚拟机现在可以与同一 LAN 中的另一台机器()通信192.168.1.82
,但不能再与网关通信。
arp reply
VM 无法从网关接收信息意味着它们甚至无法在以太网级别进行通信。
可能原因(有待检查):
- 检查新的虚拟网卡是否正确连接到网关所连接的同一虚拟网络。
- 检查是否有任何过滤器(例如
iptables
或添加 iptables 规则的东西,可能在虚拟机管理程序上,而不是虚拟机本身)应用于网关 NIC 或 VM NIC,这可能会允许具有旧 MAC 地址的流量但不允许新 MAC 地址的流量。 - 检查您选择的新虚拟网卡类型是否受客户操作系统支持。