AWS 一年免费的服务器,CentOS 7,服务器上跑了个博客,一周以前 80,443,3306 等端口都能正常访问,近期也未登陆过服务器做过什么事情,现在只有 22 端口能访问了,ssh 上去首先 ping 域名是 ping 不通的,ping 127.0.0.1 80 也是 ping 不通,ping 外部地址如 baidu.com 和 google.com 等可以 ping 的通,yum install 也是没网的状态,截取一条 yum install 报错:
http://ftp.tsukuba.wide.ad.jp/Linux/centos/7.6.1810/os/x86_64/repodata/repomd.xml: [Errno 14] curl#7 - "Failed to connect to 2001:200:0:7c06::9393: Cannot assign requested address" Trying other mirror.
安全组检查过了,相关端口都是开放的,服务器上的防火墙也检查过了,都关闭了,网卡配置从来没动过,服务器也只有我自己一个人知道,近期都没作过什么事情就这样了,现在不知道该怎么排查原因。
ifconfig:
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 9001 inet 172.31.44.112 netmask 255.255.240.0 broadcast 172.31.41.255 ether 06:d1:20:b2:3c:6a txqueuelen 1000 (Ethernet) RX packets 86451 bytes 10479557 (9.9 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 98537 bytes 16441361 (15.6 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 loop txqueuelen 1000 (Local Loopback) RX packets 3128 bytes 518434 (506.2 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 3128 bytes 518434 (506.2 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
netstat -ant:
Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN tcp 0 0 172.31.44.171:8050 0.0.0.0:* LISTEN tcp 0 0 172.31.44.171:8051 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:8005 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN tcp 0 0 172.31.44.171:22 218.92.0.208:55907 ESTABLISHED tcp 0 0 127.0.0.1:3306 127.0.0.1:33572 ESTABLISHED tcp 0 1 172.31.44.171:59208 178.128.242.134:3333 SYN_SENT tcp 0 1 172.31.44.171:49708 192.241.166.63:8080 SYN_SENT tcp 0 0 127.0.0.1:33564 127.0.0.1:3306 ESTABLISHED tcp 0 0 172.31.44.171:22 218.92.0.164:17401 ESTABLISHED tcp 0 0 127.0.0.1:3306 127.0.0.1:33580 ESTABLISHED tcp 0 1 172.31.44.171:55168 178.128.242.134:443 SYN_SENT tcp 0 0 127.0.0.1:33580 127.0.0.1:3306 ESTABLISHED tcp 0 0 172.31.44.171:22 27.156.57.251:2090 ESTABLISHED tcp 0 0 127.0.0.1:3306 127.0.0.1:33548 ESTABLISHED tcp 0 0 127.0.0.1:33548 127.0.0.1:3306 ESTABLISHED tcp 0 0 172.31.44.171:22 27.156.57.251:4413 ESTABLISHED tcp 0 0 127.0.0.1:33562 127.0.0.1:3306 ESTABLISHED tcp 0 1 172.31.44.171:60426 72.4.120.219:80 SYN_SENT tcp 0 0 127.0.0.1:3306 127.0.0.1:33564 ESTABLISHED tcp 0 0 127.0.0.1:33572 127.0.0.1:3306 ESTABLISHED tcp 0 0 127.0.0.1:3306 127.0.0.1:33562 ESTABLISHED tcp6 0 0 :::80 :::* LISTEN tcp6 0 0 :::10000 :::* LISTEN tcp6 0 0 :::22 :::* LISTEN tcp6 0 0 :::10010 :::* LISTEN
1 Levox 2019-05-12 15:06:08 +08:00 ping 的内容是什么样的 |
2 mason961125 2019-05-12 15:21:42 +08:00 via iPhone eth0 的 mtu 是 9000 ?逗我呢吧…… |
![]() | 4 masker 2019-05-12 15:34:11 +08:00 via Android 学会用 telnet |
![]() | 5 CRUD OP @masker #4 出问题的 telnet 现在想装 telnet 装不上去,其他机器上 telnet 上去也是只有 22 正常 |
![]() | 6 defunct9 2019-05-12 15:43:03 +08:00 没备案 |
![]() | 7 opengps 2019-05-12 15:45:30 +08:00 via Android 服务器上有没有安装安全类工具? |
9 Levox 2019-05-12 15:45:56 +08:00 没懂你说的 “ ssh 上去首先 ping 域名是 ping 不通的,ping 127.0.0.1 80 也是 ping 不通,ping 外部地址如 baidu.com 和 google.com 等可以 ping 的通” 是什么意思,你能 ping 通 google 之类但 ping 不通 自己的域名?你 ping 端口是怎么 ping 的? 看你 yum 是访问的 IPv6 地址,如果用 IPv4 地址能访问那个站点么?比如 curl -4v 'http://ftp.tsukuba.wide.ad.jp/' |
![]() | 11 CRUD OP @Levox #9 我通过 22 端口 ssh 上服务器,在服务器上执行:ping baidu.com ,结果: PING baidu.com (123.125.114.144) 56(84) bytes of data. 64 bytes from 123.125.114.144 (123.125.114.144): icmp_seq=1 ttl=39 time=142 ms 64 bytes from 123.125.114.144 (123.125.114.144): icmp_seq=2 ttl=39 time=143 ms 而,执行 ping 我的域名地址或 ping 127.0.0.1 80,则没有任何应答,也没提示连接超时之类的,ping 端口是直接在 ip 尾巴加上空格端口号去 ping 的。 指定使用 IPV4,执行 curl -4v 'http://ftp.tsukuba.wide.ad.jp/'也是无任何应答信息。 |
![]() | 12 CRUD OP @Levox #9 执行 curl -4v 'http://ftp.tsukuba.wide.ad.jp/'结果: * About to connect() to ftp.tsukuba.wide.ad.jp port 80 (#0) * Trying 203.178.132.80... * Connection timed out * Failed connect to ftp.tsukuba.wide.ad.jp:80; Connection timed out * Closing connection 0 curl: (7) Failed connect to ftp.tsukuba.wide.ad.jp:80; Connection timed out |
13 Levox 2019-05-12 16:01:33 +08:00 @CRUD 你那个 ping 端口的用法不正确,一般的 ping 只能 ping IP,你试过直接 “ ping 127.0.0.1 ” 吗? 我这里获取到的 ftp.tsukuba.wide.ad.jp IP 也是 203.178.132.80 ,不清楚是不是那边路由有问题,看看 “ traceroute 203.178.132.80 ”的结果。 |
![]() | 14 CRUD OP @Levox #13 直接 ping 127.0.0.1 是可以的,ping 本机内网地址也可以,ping 外网地址就不行了。 traceroute 之前没有安装,现在 yum 安装不了了所以没办法试了。 |
15 Levox 2019-05-12 16:24:15 +08:00 @CRUD 不是说 ping Baidu Google 是好的么?你可以多试几个站点,看能 ping 的和不能 ping 的有什么特点。另外你可以试试从多个节点 ping 你的域名,比如 https://asm.ca.com/en/ping.php ,看有没有什么分布上的问题。不知道你的域名解析出来的 IP 是公网的还是内网的,服务商有没有禁 ping 之类。 |
16 CallMeReznov 2019-05-12 16:44:41 +08:00 PING? ICMP 包能测试 TCP?? 请安装 tcping 或 NC..谢谢.... |
![]() | 17 CRUD OP @Levox #15 描述的不恰当,应该是我的服务器上 ping 我的服务器内网地址可以,ping 我的服务器公网 ip 就不行了。 用站长工具 ping 了一下自己的域名,解析出来是正确的公网 IP,但是 130 个不同地区的节点全部都是超时的。 |
18 fredcc 2019-05-12 17:00:49 +08:00 IGW 路由表 安全组 acl 挨个检查过来,如果对 aws 不熟悉的话,直接重置 ec2 比较简单。 |
![]() | 19 myziwi 2019-05-12 17:10:27 +08:00 #sestatus 看看 SELinux 状态有没有关闭 |
![]() | 20 swulling 2019-05-12 17:34:08 +08:00 via iPhone ICMP ping 还能这么用么 ping 127.0.0.7 80 厉害 |
![]() | 21 Joshua999 2019-05-12 18:03:47 +08:00 via Android ping 的这个用法真厉害,佩服 |
![]() | 22 chinesestudio 2019-05-12 18:23:58 +08:00 via Android 要运维找我 单次长期都可以 搞不定就下载文件和数据库 重建又没几分钟 |
23 randyo 2019-05-12 18:24:09 +08:00 via Android 估计安全策略什么的禁 ping 了,所以 ping 不了公网地址,关了就可以了 |
![]() | 24 akira 2019-05-12 20:09:47 +08:00 看 ifconfig 是 ipv4,为啥 yum 是走的 ipv6 呢 一般这种情况 重启就好了 |
25 saytesnake 2019-05-13 01:39:53 +08:00 先把 IPV6 给关掉再试一试呢? |
![]() | 26 xuanbg 2019-05-13 08:50:25 +08:00 首先,ICMP 协议不支持 TCP。。。ping 命令的正确用法是:ping ip 地址,或者 ping 域名 其次,80 端口在服务器上有没有应用在监听,应该使用 netstat 命令 最后,端口在监听但无法访问,要看 iptable、防火墙、云平台的安全策略等等是不是做了访问限制 |
27 Ayersneo 2019-05-13 11:34:51 +08:00 via Android aws 貌似关机开机就会换 ip |
![]() | 28 levinit 2019-05-13 13:43:02 +08:00 via Android curl 检查端口例如 curl localhost:80 curl z. cn 用起来比 telne 方便多了 |
![]() | 29 snoopygao 2019-05-13 15:40:58 +08:00 1、aws 的 ipv6 没配置好,需要去网络策略里去调,你这种情况建议彻底关了,具体 google 2、ec2 的网络控制里你可以之前打开了指定 ip 可访问的策略,现在你的 ip 地址变了,导致无法访问 |
30 aaaaasam 2019-05-16 14:49:38 +08:00 1、看你这个应该是 80 端口开了的,没多大问题,你可以测试一下 curl -I http://127.0.0.1,测试一下是否真的开了,然后确定是否有防火墙从本地禁止; 2、cur ifconfig.com 查看本机的公网地址,是否就是你域名绑定的那个; 3、公网上 curl -I http://`curl ifconfig.me` 注:ifconfig.me 是在服务器上获取的那个结果。如果不可以,记得检测一下你的防火墙;如果有内网的其他机器 直接 curl 测试一下最佳,如果可以访问,那你的服务器是没有多少问题的,可能发生在中间的防火墙上面; 4、官方会重置数据包,不会丢弃数据包,所以不会出现 timeout 这样的错误; |