我已经启动了一个Amazon EC2 实例,我正在尝试通过 SSH 从 Mac 连接到它。
$ ls | grep 'pem'
AWSKeyPair1.pem
$ ssh -vvv -i AWSKeyPair1.pem [email protected]
OpenSSH_6.2p2, OpenSSL 0.9.8zf 19 Mar 2015
debug1: Reading configuration data /Users/jackjack/.ssh/config
debug1: /Users/jackjack/.ssh/config line 1: Applying options for *
debug1: Reading configuration data /usr/local/etc/ssh_config
debug1: /usr/local/etc/ssh_config line 20: Applying options for *
debug1: /usr/local/etc/ssh_config line 102: Applying options for *
debug2: ssh_connect: needpriv 0
debug1: Connecting to 54.210.10.190 [54.210.10.190] port 22.
debug1: connect to address 54.210.10.190 port 22: Operation timed out
ssh: connect to host 54.210.10.190 port 22: Operation timed out
根据这个故障排除指南,我应该检查我的安全规则。我已经确认我的所有安全组都允许所有流量进出任何来源(“0.0.0.0/0”)。
不过,我不明白该指南中的第二点和第三点。EC2 仪表板上的选项均未提及 VPC 或 ACL - 如何检查这些设置?
更重要的是,该实例甚至不响应 ping:
$ ping 54.210.10.190
PING 54.210.10.190 (54.210.10.190): 56 data bytes
Request timeout for icmp_seq 0
Request timeout for icmp_seq 1
Request timeout for icmp_seq 2
Request timeout for icmp_seq 3
Request timeout for icmp_seq 4
Request timeout for icmp_seq 5
Request timeout for icmp_seq 6
Request timeout for icmp_seq 7
Request timeout for icmp_seq 8
...
我已经尝试关闭实例并启动一个新实例 - 结果相同。
编辑:添加系统日志 - http://cryptb.in/lFDJTHdo4W
自下而上,第三层将是 VPC 子网和路由以及您自己的本地路由。对于 VPC 中的路由,请检查您的子网路由表。要使实例可通过公共 IP 地址进行路由,该实例需要路由到 VPC Internet 网关,该网关将维护公共 IP 地址和内部私有 IP 地址的 1:1 映射,以便流量进出专有网络。
对于第 4 层(传输)问题,您的安全组入站规则、VPC 子网 ACL 以及本地防火墙可能存在问题。另一种可能性是中间运营商正在放弃 ICMP,因为他们出于 QoS 原因经常会这样做。
从内到外,如果您可以 ping 其他网站(例如 www.google.com)并获得响应,那么您的网络不太可能是问题所在。如果您根本无法 ping www.google.com,那么问题可能就在您身边。如果您可以 ping www.google.com,请检查您的安全组规则是否允许 ICMP,检查 VPC 子网是否允许 ICMP,并仔细检查您的实例防火墙,因为您可能会使用 IPTables(或类似的东西)丢弃 ICMP 数据包。
您可以 SSH 是一个好兆头,因为至少我们知道您可以路由到您的实例。