我是防火墙新手。我今天早些时候在ec2实例上玩iptables,但现在我无法通过ssh连接-"连接超时"。控制台显示实例正在运行,ssh密钥正常,ping成功。所以我的结论是,我可能在使用iptables时禁用了ssh端口连接。
有没有一种方法可以撤销更改而不需要完全重新安装?
注意:我没有访问shell,因为我不能ssh
从AWS控制台进行简单的重新启动就可以了。希望您没有在实例中启用iptables服务,以便它在启动时启动。
如果您启用了iptables服务,您将不得不创建另一个实例instance B
(希望您使用的是EBS实例)。同样假设您的原始实例是instance A
:
- 从
instance A
上卸载根EBS卷 - 将EBS卷挂载到
instance B
,例如/dev/xvdf -
instance B
运行mkdir -p /mnt/xvdf; mount /dev/xvdf /mnt/xvdf
- 在
instance B
上修复安装在/mnt/xvdf
上的卷 - 从
instance B
:umount /mnt/xvdf
卸载卷 - 将卷作为根挂载回
instance A
。 - 重启
instance A
instance-store
类型的实例,那么您就不走运了。如果您确实设置了防火墙设置,您可以试试:
停止实例。启动另一个实例,并将原实例中的卷附加到新实例。挂载卷,修复挂载卷中的iptables。然后将卷分离并重新连接到原始实例(例如作为/dev/sda1),并重新启动原始实例。
或者您之前从一个实例中创建了一个AMI,然后使用新密钥从AMI启动了一个新实例,但是新密钥不能工作?当您使用putty登录时,请尝试在原始实例中嵌入的密钥,旧的密钥可能仍然有效。