如何通过 SSH 连接到无法访问的 EC2 实例?

如何通过 SSH 连接到无法访问的 EC2 实例?

正在运行 AWS EC2 实例话语几年来。

几周/几个月以来,在对 Discourse 进行一些升级(通过 Discourse 的 Web GUI)后,系统停滞。然后无法再通过 SSH 访问,甚至无法通过 EC2 SSH Web 连接访问。

我通常通过 AWS ECS 网络管理面板重新启动整个机器,然后能够再次连接,通过 SSH 和 HTTPS。

(不幸的是,我没有进一步调查问题的原因)。

今天,Discourse 升级后系统再次挂起。

但这次,重启或任何其他方法都无济于事。即使等待了几个小时,系统仍然无法通过 SSH 访问。

EC2 监控也没有显示服务器负载过高:

在此处输入图片描述

我的问题

我如何才能再次通过 SSH 访问 EC2 Ubuntu 实例?

更新 1

再次重启并等待一段时间后,系统又突然恢复了。

对我来说,似乎磁盘有足够的可用空间(我假设系统无法访问的原因之一就是没有更多的磁盘空间)。

Filesystem      Size  Used Avail Use% Mounted on
udev            2.0G     0  2.0G   0% /dev
tmpfs           394M  876K  393M   1% /run
/dev/xvda1       97G   31G   67G  31% /
tmpfs           2.0G     0  2.0G   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           2.0G     0  2.0G   0% /sys/fs/cgroup
/dev/loop1       18M   18M     0 100% /snap/amazon-ssm-agent/1566
/dev/loop0       98M   98M     0 100% /snap/core/10185
/dev/loop2       29M   29M     0 100% /snap/amazon-ssm-agent/2012
/dev/loop3       98M   98M     0 100% /snap/core/10126
overlay          97G   31G   67G  31% /var/lib/docker/overlay2/5a799ab040002ad2ddec94ae85bcbe987543651a0d9478ddc12ab12715da7340/merged
tmpfs           394M     0  394M   0% /run/user/1000

我现在想弄清楚是否有任何日志可以表明中断的原因。

更新 2

根据 heynnema 的要求,以下是完整结果sudo cat /etc/netplan/*.yaml

# This file is generated from information provided by
# the datasource.  Changes to it will not persist across an instance.
# To disable cloud-init's network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}
network:
    version: 2
    ethernets:
        eth0:
            dhcp4: true
            match:
                macaddress: 06:a0:68:ea:54:4e
            set-name: eth0

答案1

对于 Amazon AWS EC2,您需要使用像这样的 .yaml。然后 SSH 就可以工作了。

# This file is generated from information provided by the datasource.  Changes
# to it will not persist across an instance reboot.  To disable cloud-init's
# network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}
network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      match:
        macaddress: 06:a0:68:ea:54:4e
      set-name: eth0
  bridges:
    br0:
      dhcp4: true
      macaddress: 06:a0:68:ea:54:4e
      interfaces:
        - eth0

笔记:您可能需要创建/etc/cloud/cloud.cfg.d/99-disable-network-config.cfg

network: {config: disabled}

sudo netplan --debug generate
sudo netplan apply
reboot # mandatory

查看此链接了解更多信息。

相关内容