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

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

  •  
  •   lestat ·
    lestatmiao · 2017-11-30 14:09:02 +08:00 · 3615 次点击
    这是一个创建于 2581 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    Listen 80
    Listen 8080

    <VirtualHost 0.0.0.0:80>

    </VirtualHost>

    <VirtualHost 0.0.0.0:8080>

    </VirtualHost>

    保存,然后重启 apache。
    kuro1
        16
    kuro1  
       2017-11-30 15:22:07 +08:00
    不是防火墙就是运营商
    sublimevsatom
        17
    sublimevsatom  
       2017-11-30 15:25:59 +08:00
    0.0.0.0 换成机子 ip,打错了。
    lestat
        18
    lestat  
    OP
       2017-11-30 15:38:11 +08:00
    @sublimevsatom 谢谢,已经通过在 80 端口绑定域名解决了,应该不是虚拟机配置的问题,否则本地也应该不能访问,并且虚拟机也是监听了这两个端口的
    lestat
        19
    lestat  
    OP
       2017-11-30 15:38:20 +08:00
    @kuro1 我也觉得
    littlehz
        20
    littlehz  
       2017-11-30 16:38:27 +08:00
    域名白名单吧,机房都有,80 端口必须用域名才行,域名要备案给机房过白
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4296 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 01:02 · PVG 09:02 · LAX 17:02 · JFK 20:02
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.