【问题标题】:AWS EC2 Instance - ssh "Connection timed out" suspecting iptablesAWS EC2 实例 - ssh“连接超时”怀疑 iptables
【发布时间】:2014-04-26 11:20:12
【问题描述】:

我是防火墙新手。我今天早些时候在 ec2 实例上玩 iptables,但现在我无法通过 ssh 连接 - “连接超时”。控制台显示实例正在运行并且 ssh 密钥良好,ping 成功。 所以我的结论是我可能在玩 iptables 时禁用/禁止了 ssh 端口连接。

有没有办法在不完全重新安装的情况下撤消更改?

注意:我无法访问 shell,因为我无法 ssh

【问题讨论】:

  • 使用iptables-save保存所有iptables规则以供参考,并使用iptables -X -F刷新所有规则

标签: ubuntu ssh amazon-ec2 firewall iptables


【解决方案1】:

从 AWS 控制台简单重启即可。希望您没有在实例中启用 iptables 服务,以便它在启动时启动。

如果您启用了 iptables 服务,您将不得不创建另一个实例 instance B(希望您使用的是 EBS 实例)。还假设您的原始实例是instance A:

  1. instance A 分离根 EBS 卷
  2. 将该 EBS 卷附加到 instance B,例如 /dev/xvdf
  3. 开启instance B 运行:mkdir -p /mnt/xvdf; mount /dev/xvdf /mnt/xvdf
  4. 修复安装在/mnt/xvdfinstance B 上的卷
  5. instance B 卸载卷:umount /mnt/xvdf
  6. 以 root 身份将卷附加回instance A
  7. 重启instance A

如果您使用的是 instance-store 类型的实例,那么您就不走运了。

【讨论】:

    【解决方案2】:

    如果你确实使用了防火墙设置,你可以试试这个:

    停止实例。启动另一个实例并将卷从原始实例附加到新实例。挂载卷,修复挂载卷中的 iptables。然后将卷分离并重新附加到原始实例(例如,作为 /dev/sda1)并重新启动原始实例。

    或者您之前从一个实例中创建了一个 AMI,然后使用新密钥从 AMI 启动了一个新实例,但新密钥不起作用?尝试使用 putty 时嵌入在原始实例中的密钥,旧密钥可能仍然有效。

    【讨论】:

      最近更新 更多