ping不通服务器的解决方法

参考腾讯云的解决办法: https://cloud.tencent.com/document/product/213/14639#CheckOSSetting

我的服务器是aws的, 解决方法大同小异

linux系统是否允许 ping是由两个因素决定的, 内核参数和防火墙, 两个因素同时允许时才能ping通
内核参数:  cat /proc/sys/net/ipv4/icmp_echo_ignore_all
防火墙:iptables 

 

1. 检查 是否配置 公网ip

打开实例的详情页

 

2. 检查安全组设置

点击 launch-wizard-1, 进到安全组的详情页
查看入站和出站的规则

如果有这个所有流量, 全部协议, 全部端口, 那么可以排除 安全组的问题, 如果没有开放全部, 可以先全部开放试一下

 

3. 检查系统设置
在实例中, 执行命令: 

sudo cat /proc/sys/net/ipv4/icmp_echo_ignore_all

如果返回的是1, 表示系统禁止所有的icmp echo 请求, 执行下面的命令修改

echo "0" >/proc/sys/net/ipv4/icmp_echo_ignore_all

如果返回的是0, 看第4步
有的情况是根本没有这个配置, 那么可以手动在这个文件中,加上这个配置


4. 检查防火墙设置

sudo iptables -L

如果返回结果如下图, 则也没有问题

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     icmp --  anywhere             anywhere             icmp echo-request
Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination  
ACCEPT     icmp --  anywhere             anywhere             icmp echo-request

如果结果不是这样, 则需要启用 icmp相应规则

 方法:

vim /etc/sysconfig/iptables

COMMIT之前加入

iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT

保存退出后, 重新加载 iptable配置
service iptables save
service iptables restart

 

5. 域名检查

如果你ping的不是ip, 是域名, 要检查你的域名是否备案成功

 

 

我遇到这个问题时, 是通过打开安全组来解决的, aws的安全组, 默认入站规则并不是允许全部的

posted @ 2019-08-19 21:24  张璨  阅读(23997)  评论(0编辑  收藏  举报