EC2实例突然无法通过SSH连接访问

0

【以下的问题经过翻译处理】 昨天我在us-east-1a的一个实例(i-0023be12dc6bc88dd)上工作时,SSH会话停止响应。尝试重新连接超时。在其他实例在大量网络流量的情况下,偶尔会发生这种情况,并且通常通过实例重启恢复。但在针对这个实例的情况,这种方法不起作用,并且其他所有实例也无法访问它。

迄今为止尝试过的方法:

  1. 实例重启
  2. 实例停止-启动
  3. 删除并重新添加安全组
  4. 重置我的本地VPN连接,我们有一个(VPN /路由表可用于到达VPC实例)
  5. 检查ENI的流日志,在新的尝试期间,没有显示来自我的内部VPN IP的流量
  6. iptables -F && systemctl restart sshd

有效方法:

  1. 如果我通过VPC(相同的子网或不同的子网)中的另一个实例进行SSH,则可以立即SSH到问题实例,一切正常。

信息:

~$ ssh -v -i mykey.pem ubuntu@172.31.128.87
OpenSSH_7.2p2 Ubuntu-4ubuntu2.10, OpenSSL 1.0.2g  1 Mar 2016
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to 172.31.128.87 [172.31.128.87] port 22.
debug1: connect to address 172.31.128.87 port 22: Connection timed out
ssh: connect to host 172.31.128.87 port 22: Connection timed out

通过另一个实例连接时,从实例中获得:

ubuntu@ip-172-31-128-87:~$ sudo systemctl restart sshd
ubuntu@ip-172-31-128-87:~$ sudo ss -tpln | grep -E '22|ssh'
LISTEN   0         128                 0.0.0.0:22               0.0.0.0:*        users:(("sshd",pid=4467,fd=3))         
LISTEN   0         128                    [::]:22                  [::]:*        users:(("sshd",pid=4467,fd=4))

我不知道接下来该怎么办了

profile picture
专家
已提问 5 个月前48 查看次数
1 回答
0

【以下的回答经过翻译处理】 所以我找出了问题所在.... 这是一个 dev-test 环境,我们正在使用 docker-compose 和一个命名的 networks: 的section测试不同的堆栈配置。每次执行 docker-compose up -d 时,compose 会重新创建网络,并从默认的 172.17.0.0/16 开始递增 CIDR 块。当重启了 10 次后达到 172.27.0.0/16 时,它会创建一个桥接接口,该接口位于我们 VPN 路由的 CIDR 上方。

这就是为什么它只能通过 172.31.0.0/16 中的另一个实例访问。即使在实例重新启动之后,docker-compose 仍然保留了网络桥配置,尽管容器已经崩溃。另一个 docker-compose down 清理了它们,然后我们能够在 docker-compose.yml 中将网络创建固定到一个非冲突的 CIDR。

networks:
  mynet:
    ipam:
      driver: default
      config:
        - subnet: 172.23.0.0/16

profile picture
专家
已回答 5 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则