Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
lestat
V2EX  ›  Linux

服务器端口外网不能访问求助

  •  
  •   lestat ·
    lestatmiao · Nov 30, 2017 · 4468 views
    This topic created in 3114 days ago, the information mentioned may be changed or developed.

    目前的情况大概是这样:
    客户服务器系统是 centos6.8,已知 80 端口和 22 端口对外是开放并能访问的;
    服务器上有两个 web 项目,一个对应 80 端口,一个对应 8080 端口
    web 服务器是 apache2.2,目前监听了 80 和 8080 端口,httpd-vhosts.conf 下有两个虚拟机配置,分别对应 80 和 8080 端口;
    防火墙状态:service iptables status(iptables:未运行防火墙。)
    SELinux 状态:getenforce (Disabled)
    项目目录的访问权限是足够的

    lsof -i :8080

    httpd 22357 root 6u IPv6 27111118 0t0 TCP *:webcache (LISTEN)
    httpd 22431 www 6u IPv6 27111118 0t0 TCP *:webcache (LISTEN)
    httpd 22433 www 6u IPv6 27111118 0t0 TCP *:webcache (LISTEN)
    httpd 22478 www 6u IPv6 27111118 0t0 TCP *:webcache (LISTEN)
    httpd 22668 www 6u IPv6 27111118 0t0 TCP *:webcache (LISTEN) httpd 22690 www 6u IPv6 27111118 0t0 TCP *:webcache (LISTEN)
    httpd 23028 www 6u IPv6 27111118 0t0 TCP *:webcache (LISTEN)
    httpd 23030 www 6u IPv6 27111118 0t0 TCP *:webcache (LISTEN)
    httpd 23760 www 6u IPv6 27111118 0t0 TCP *:webcache (LISTEN)
    httpd 23761 www 6u IPv6 27111118 0t0 TCP *:webcache (LISTEN)
    httpd 23762 www 6u IPv6 27111118 0t0 TCP *:webcache (LISTEN)
    httpd 23855 www 6u IPv6 27111118 0t0 TCP *:webcache (LISTEN)

    netstat -nlpt Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
    tcp 0 0 0.0.0.0:58726 0.0.0.0:* LISTEN 2630/rpc.statd
    tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 6324/mysqld
    tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 2574/rpcbind
    tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 3235/pure-ftpd (SER tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 3941/sshd
    tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 2668/cupsd
    tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 3109/sendmail
    tcp 0 0 :::34760 :::* LISTEN 2630/rpc.statd
    tcp 0 0 :::111 :::* LISTEN 2574/rpcbind
    tcp 0 0 :::8080 :::* LISTEN 22357/httpd
    tcp 0 0 :::80 :::* LISTEN 22357/httpd
    tcp 0 0 :::21 :::* LISTEN 3235/pure-ftpd (SER tcp 0 0 :::22 :::* LISTEN 3941/sshd
    tcp 0 0 ::1:631 :::* LISTEN 2668/cupsd
    tcp 0 0 :::443 :::* LISTEN 22357/httpd

    问题: 服务器的 8080 端口在本地可以通过 curl 命令(curl http://localhost:8080)获取到 index.php 的内容,但是外网无法通过 ip:port 的形式访问到

    想各位求助一下大家有没有遇到过这种情况?可能是什么原因?谢谢啦!

    20 replies    2017-11-30 16:38:27 +08:00
    sirgod
        1
    sirgod  
       Nov 30, 2017 via iPhone
    报什么错呢?超时还是拒绝连接
    sirgod
        2
    sirgod  
       Nov 30, 2017 via iPhone
    安全组设置检查了吗?
    lestat
        3
    lestat  
    OP
       Nov 30, 2017
    @sirgod chrome 访问提示:ERR_CONNECTION_REFUSED,我检查下安全组设置看看,谢谢
    admos
        4
    admos  
       Nov 30, 2017 via iPhone
    云服务器的防火墙 firewall 设置吧
    will1916
        5
    will1916  
       Nov 30, 2017
    在你的电脑上 Telnet 能通嘛
    sublimevsatom
        6
    sublimevsatom  
       Nov 30, 2017
    你这个日志我看了一下,
    是不是你这个只监听在 ipv6 的 8080 端口上,
    如果外网要访问的话,应该是找个有 ipv6 的环境,
    然后[ipv6 地址]:port 这样访问。
    因为日志格式不大一样,所以我不是很确定。
    lestat
        7
    lestat  
    OP
       Nov 30, 2017
    @admos 客户是自己的服务器,没用第三方云服务器
    lestat
        8
    lestat  
    OP
       Nov 30, 2017
    @will1916 不能,只有服务器本地能
    lestat
        9
    lestat  
    OP
       Nov 30, 2017
    @sublimevsatom 应该不是这个问题,因为 80 端口的监听状态跟这个一样,外网能访问,还是谢谢
    lestat
        10
    lestat  
    OP
       Nov 30, 2017
    想来想去,估计是客户的路由器防火墙把端口给限制了
    找了个可能可行解决办法
    在虚拟机 8080 端口改为 80 端口,然后绑个域名算了...
    之前是希望通过 ip 访问
    zn
        11
    zn  
       Nov 30, 2017 via iPhone
    机房防火墙。
    被默默坑得服服气气。
    zn
        12
    zn  
       Nov 30, 2017 via iPhone
    如果是通过宽带的话,那里就是 80 端口被宽带运营商屏蔽了。
    VYSE
        13
    VYSE  
       Nov 30, 2017
    iptables -t nat -A PREROUTING -p tcp -m multiport --dports 81:65535 -j REDIRECT --to-port 80
    把所有端口全开(别把 SSH 关了),然后外网扫一下就知道是不是端口被外部封了
    lestat
        14
    lestat  
    OP
       Nov 30, 2017
    @zn 应该是机房防火墙,现在已经好了,没用 8080,80 是可以的,妥协的绑定了个域名上去..
    sublimevsatom
        15
    sublimevsatom  
       Nov 30, 2017
    vhosts 那边你改成这样试看看

    Listen 80
    Listen 8080

    <VirtualHost 0.0.0.0:80>

    </VirtualHost>

    <VirtualHost 0.0.0.0:8080>

    </VirtualHost>

    保存,然后重启 apache。
    kuro1
        16
    kuro1  
       Nov 30, 2017
    不是防火墙就是运营商
    sublimevsatom
        17
    sublimevsatom  
       Nov 30, 2017
    0.0.0.0 换成机子 ip,打错了。
    lestat
        18
    lestat  
    OP
       Nov 30, 2017
    @sublimevsatom 谢谢,已经通过在 80 端口绑定域名解决了,应该不是虚拟机配置的问题,否则本地也应该不能访问,并且虚拟机也是监听了这两个端口的
    lestat
        19
    lestat  
    OP
       Nov 30, 2017
    @kuro1 我也觉得
    littlehz
        20
    littlehz  
       Nov 30, 2017
    域名白名单吧,机房都有,80 端口必须用域名才行,域名要备案给机房过白
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2933 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 46ms · UTC 15:06 · PVG 23:06 · LAX 08:06 · JFK 11:06
    ♥ Do have faith in what you're doing.