V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
CRUD
V2EX  ›  Linux

[求助] 服务器除 22 端口外都访问不了

  •  
  •   CRUD · 2019-05-12 14:32:15 +08:00 · 9491 次点击
    这是一个创建于 1782 天前的主题,其中的信息可能已经有所发展或是发生改变。

    AWS 一年免费的服务器,CentOS 7,服务器上跑了个博客,一周以前 80,443,3306 等端口都能正常访问,近期也未登陆过服务器做过什么事情,现在只有 22 端口能访问了,ssh 上去首先 ping 域名是 ping 不通的,ping 127.0.0.1 80 也是 ping 不通,ping 外部地址如 baidu.comgoogle.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
    
    30 条回复    2019-05-16 14:49:38 +08:00
    Levox
        1
    Levox  
       2019-05-12 15:06:08 +08:00
    ping 的内容是什么样的
    mason961125
        2
    mason961125  
       2019-05-12 15:21:42 +08:00 via iPhone
    eth0 的 mtu 是 9000 ?逗我呢吧……
    CRUD
        3
    CRUD  
    OP
       2019-05-12 15:27:45 +08:00
    @Levox #1 ping 自己域名和本地端口没有任何反应,光标一直闪,没有任何 ping 的信息出来
    masker
        4
    masker  
       2019-05-12 15:34:11 +08:00 via Android
    学会用 telnet
    CRUD
        5
    CRUD  
    OP
       2019-05-12 15:37:04 +08:00
    @masker #4 出问题的 telnet 现在想装 telnet 装不上去,其他机器上 telnet 上去也是只有 22 正常
    defunct9
        6
    defunct9  
       2019-05-12 15:43:03 +08:00
    没备案
    opengps
        7
    opengps  
       2019-05-12 15:45:30 +08:00 via Android
    服务器上有没有安装安全类工具?
    CRUD
        8
    CRUD  
    OP
       2019-05-12 15:45:44 +08:00
    @defunct9 #6 域名解析到国外的服务器不需要备案吧,而且除 80 和 443 端口,其他端口也不行
    Levox
        9
    Levox  
       2019-05-12 15:45:56 +08:00
    没懂你说的 “ ssh 上去首先 ping 域名是 ping 不通的,ping 127.0.0.1 80 也是 ping 不通,ping 外部地址如 baidu.comgoogle.com 等可以 ping 的通” 是什么意思,你能 ping 通 google 之类但 ping 不通 自己的域名?你 ping 端口是怎么 ping 的?

    看你 yum 是访问的 IPv6 地址,如果用 IPv4 地址能访问那个站点么?比如 curl -4v 'http://ftp.tsukuba.wide.ad.jp/'
    CRUD
        10
    CRUD  
    OP
       2019-05-12 15:46:43 +08:00
    @opengps #7 没有的,没有任何此类工具
    CRUD
        11
    CRUD  
    OP
       2019-05-12 15:53:31 +08:00
    @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/'也是无任何应答信息。
    CRUD
        12
    CRUD  
    OP
       2019-05-12 15:55:18 +08:00
    @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
    Levox
        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 ”的结果。
    CRUD
        14
    CRUD  
    OP
       2019-05-12 16:17:17 +08:00
    @Levox #13
    直接 ping 127.0.0.1 是可以的,ping 本机内网地址也可以,ping 外网地址就不行了。
    traceroute 之前没有安装,现在 yum 安装不了了所以没办法试了。
    Levox
        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 之类。
    CallMeReznov
        16
    CallMeReznov  
       2019-05-12 16:44:41 +08:00
    PING? ICMP 包能测试 TCP??
    请安装 tcping 或 NC..谢谢....
    CRUD
        17
    CRUD  
    OP
       2019-05-12 16:53:28 +08:00
    @Levox #15 描述的不恰当,应该是我的服务器上 ping 我的服务器内网地址可以,ping 我的服务器公网 ip 就不行了。
    用站长工具 ping 了一下自己的域名,解析出来是正确的公网 IP,但是 130 个不同地区的节点全部都是超时的。
    fredcc
        18
    fredcc  
       2019-05-12 17:00:49 +08:00
    IGW 路由表 安全组 acl 挨个检查过来,如果对 aws 不熟悉的话,直接重置 ec2 比较简单。
    myziwi
        19
    myziwi  
       2019-05-12 17:10:27 +08:00
    #sestatus 看看 SELinux 状态有没有关闭
    swulling
        20
    swulling  
       2019-05-12 17:34:08 +08:00 via iPhone
    ICMP ping 还能这么用么

    ping 127.0.0.7 80
    厉害
    Joshua999
        21
    Joshua999  
       2019-05-12 18:03:47 +08:00 via Android
    ping 的这个用法真厉害,佩服
    chinesestudio
        22
    chinesestudio  
       2019-05-12 18:23:58 +08:00 via Android
    要运维找我 单次长期都可以 搞不定就下载文件和数据库 重建又没几分钟
    randyo
        23
    randyo  
       2019-05-12 18:24:09 +08:00 via Android
    估计安全策略什么的禁 ping 了,所以 ping 不了公网地址,关了就可以了
    akira
        24
    akira  
       2019-05-12 20:09:47 +08:00
    看 ifconfig 是 ipv4,为啥 yum 是走的 ipv6 呢

    一般这种情况 重启就好了
    saytesnake
        25
    saytesnake  
       2019-05-13 01:39:53 +08:00
    先把 IPV6 给关掉再试一试呢?
    xuanbg
        26
    xuanbg  
       2019-05-13 08:50:25 +08:00
    首先,ICMP 协议不支持 TCP。。。ping 命令的正确用法是:ping ip 地址,或者 ping 域名
    其次,80 端口在服务器上有没有应用在监听,应该使用 netstat 命令
    最后,端口在监听但无法访问,要看 iptable、防火墙、云平台的安全策略等等是不是做了访问限制
    Ayersneo
        27
    Ayersneo  
       2019-05-13 11:34:51 +08:00 via Android
    aws 貌似关机开机就会换 ip
    levinit
        28
    levinit  
       2019-05-13 13:43:02 +08:00 via Android
    curl 检查端口例如 curl localhost:80 curl z. cn 用起来比 telne 方便多了
    snoopygao
        29
    snoopygao  
       2019-05-13 15:40:58 +08:00
    1、aws 的 ipv6 没配置好,需要去网络策略里去调,你这种情况建议彻底关了,具体 google
    2、ec2 的网络控制里你可以之前打开了指定 ip 可访问的策略,现在你的 ip 地址变了,导致无法访问
    aaaaasam
        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 这样的错误;
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2723 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 15:38 · PVG 23:38 · LAX 08:38 · JFK 11:38
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.