我已经启动了一个Amazon EC2 实例,我正尝试从 Mac 通过 SSH 连接到它。
$ 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
答案1
从下往上,第三层是 VPC 子网和路由以及您自己的本地路由。对于 VPC 中的路由,请检查您的子网路由表。要使实例可以通过公共 IP 地址路由,该实例需要路由到 VPC Internet 网关,该网关将维护公共 IP 地址和内部私有 IP 地址的 1:1 映射,以便流量通过和从 VPC 流出的流量。
对于第 4 层(传输)问题,可能是您的安全组入站规则、VPC 子网 ACL 以及最后的本地防火墙存在问题。另一种可能性是中间运营商出于 QoS 原因不时放弃 ICMP。
从内向外看,如果您可以 ping 其他网站(例如 www.google.com)并得到响应,则问题不太可能出在您的网络。如果您根本无法 ping www.google.com,那么问题可能离您很近。如果您可以 ping www.google.com,请检查您的安全组规则是否允许 ICMP,检查 VPC 子网是否允许 ICMP,还要仔细检查您的实例防火墙,因为您可能使用 IPTables(或类似的东西)丢弃了 ICMP 数据包。
您可以使用 SSH 是一个好兆头,因为至少我们知道您可以路由到您的实例。