首页 > 解决方案 > 为什么我不能在我的 CentOS VPS 上与 tcp/3000 上的服务通话

问题描述

我正在尝试在我的 VPS 上的端口 3000 上运行第二个 Web 服务。

在我运行的 VPS 上:

# php -S myhost.com:3000

然后在浏览器中,导航到http://myhost.com:3000但浏览器超时并且服务不记录/输出任何内容。

如果我在端口 80 上运行服务(即 php -S myhost.com:80 并导航到http://myhost.com),它就可以工作。

所以防火墙。除了那个:

[root@spinal ~]# firewall-cmd --list-ports
3887/tcp 3000/tcp

(3887 是另一个服务,它工作正常。)我在防火墙中设置了端口 3000 后重新启动了 VPS。我认为该服务正在正确监听,因为:

[root@spinal ~]# netstat -tupl
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:imap            0.0.0.0:*               LISTEN      1907/dovecot        
tcp        0      0 0.0.0.0:ciphire-data    0.0.0.0:*               LISTEN      1876/sshd           
tcp        0      0 0.0.0.0:http            0.0.0.0:*               LISTEN      1903/nginx: master  
tcp        0      0 0.0.0.0:urd             0.0.0.0:*               LISTEN      2004/master         
tcp        0      0 myhost.com:hbci         0.0.0.0:*               LISTEN      2206/php            
tcp        0      0 localhost.loca:postgres 0.0.0.0:*               LISTEN      1908/postgres       
tcp        0      0 0.0.0.0:smtp            0.0.0.0:*               LISTEN      2004/master         
tcp        0      0 0.0.0.0:https           0.0.0.0:*               LISTEN      1903/nginx: master  
tcp        0      0 0.0.0.0:imaps           0.0.0.0:*               LISTEN      1907/dovecot        
tcp        0      0 localhost.lo:cslistener 0.0.0.0:*               LISTEN      1878/php-fpm: maste 
tcp6       0      0 [::]:imap               [::]:*                  LISTEN      1907/dovecot        
tcp6       0      0 [::]:ciphire-data       [::]:*                  LISTEN      1876/sshd           
tcp6       0      0 [::]:urd                [::]:*                  LISTEN      2004/master         
tcp6       0      0 [::]:smtp               [::]:*                  LISTEN      2004/master         
tcp6       0      0 [::]:imaps              [::]:*                  LISTEN      1907/dovecot

但是,我可以在本地连接。这在 VPS 上运行时有效:

$ curl http://myhost.com:3000

所以这再次指向防火墙。但禁用防火墙无济于事:

# systemctl stop firewalld

所以这可能是一个 DNS 问题:我的浏览器和 VPS 在 myhost.com 解析的内容上有所不同。除此之外,如上所述,切换到端口 80 可以解决问题。所以这与从外部进入端口 3000 有关。但不是防火墙。

Can't reach nodejs on port 3000 from external on CentOS 7 上的问题与我很接近,但没有得到最终回答。

标签: dnsroutingportcentos7firewall

解决方案


我觉得很愚蠢。这一个防火墙;不是在 VPS 上,而是在我的本地网络上。当我在不通过我的本地网络的机器上尝试它时,它起作用了。我希望我的公开忏悔对其他人有所帮助。


推荐阅读