ec2、ping 和安全設置
有一個關於 AWS ec2 實例安全設置的菜鳥問題。我已經使用 Tomcat7 ( ami-95da17fc ) 設置了一個實例,但我有一個小問題。
如果我 ssh 進入實例並執行 ping -c 2 -p 80 localhost 我得到 0 封包遺失如果我 ping 我的彈性 ip 我得到 100% 的口袋失去,與 long.winded.aws.dns.name 相同
如果我只是嘗試從終端 ping 站點(未登錄到實例),我也會得到 100% 的損失。
我的預設安全組具有以下設置:
0 - 65535 sg-07787e6e(預設)
80 (HTTP) 0.0.0.0/0
8080 (HTTP*) 0.0.0.0/0
22 (SSH) 70.126.98.72/32
如果有人能闡明我所缺少的東西,我將不勝感激。
…嗯,我用 curl 得到 404,sudo netstat -lp 給了我:
活動 Internet 連接(僅限伺服器) Proto Recv-Q Send-Q 本地地址 外部地址 狀態 PID/程序名稱
tcp 0 0 *:ssh : LISTEN 841/sshd
tcp 0 0 localhost:smtp : LISTEN 868/sendmail: accep tcp 0 0 *:webcache : 聽 981/java
tcp 0 0 *:http : 聽 948/httpd
tcp 0 0 *:ssh : 聽 841/sshd
tcp 0 0 localhost:8005 : 聽 981/java
tcp 0 0 *:8009 *:*聽 981/java
udp 0 0 *:bootpc : 734/dhclient
udp 0 0 domU-12-31-39-09-A6:ntp : 852 /ntpd
udp 0 0 本地主機:ntp : 852/ntpd
udp 0 0 *:ntp : 852/ntpd
udp 0 0 fe80::1031:39ff:fe0:ntp : 852/ntpd
udp 0 0 localhost:ntp : 852/ntpd
udp 0 0 *:ntp : 852/ntpd
活動 UNIX 域套接字(僅限伺服器) Proto RefCnt Flags Type State I-Node PID/程序名稱路徑 unix 2
$$ ACC $$ 流式監聽 1954 922/gam_server @/tmp/fam-root- unix 2 $$ ACC $$ 串流監聽 1967 927/bluepilld:主機 /var/bluepill/socks/hostmanager.sock
…而且我沒有更改 iptables 中的任何內容
Ping 使用 ICMP 協議 - AWS 控制台中的安全組預設使用 TCP 協議。如果您希望能夠從“外部” ping 您的實例,您需要更改安全組設置以允許 ICMP 協議 (Echo),例如使用以下內容:
ec2-authorize default -P icmp -t -1:-1 -s 0.0.0.0/0
您還可以使用 AWS 控制台來完成此操作:
- 為您的安全組創建“自定義 ICMP 規則”
- 類型:迴聲請求和類型:迴聲回复(兩者都是必需的)
- 來源:0.0.0.0/0
或者,為了與上面的 ec2-authorize 命令相同的效果,您可以允許“所有 ICMP”
有關更多資訊,請參閱AWS EC2 文件和AWS 常見問題。