我在 Google Cloud Platform 中有一个可访问的实例集群。我在虚拟机上运行了更新,然后重新启动了它。从那以后我就无法访问虚拟机了。SSH 失败,提示无法访问。我也无法 ping 实例。当我通过控制台端口连接时,它充斥着 martian 源日志。
martian source x.x.x.x <affected machine> from x.x.x.x <some other ip>, on dev eth0
ll header: 42:01:0a:8e:00:05:42:01:0a:8e:00:01:08:00
Jul 11 20:07:40 <servername> kernel: __ratelimit: 3 callbacks suppressed
它只影响已更新并重新启动的计算机。已更新但未重新启动的计算机没有问题(到目前为止)。我还检查了防火墙规则,有默认的 SSH 规则。
我确实发现,如果我克隆受影响的虚拟机并为其提供一个新的操作系统磁盘,之后我就可以访问它。
有什么想法吗?我不知道该如何处理已更新(和未更新)的内容。
答案1
我找到了解决办法。最近的更新有一个已知问题,即它会从 iptables 中删除默认网关。要修复它,我必须转到实例并选择“编辑”。向下滚动,在“自定义元数据”下输入以下内容:
key: startup-script
value: route add default gw <gatewayIP> eth0
保存并重新启动虚拟机。