Sha*_*man 5 server networking apache2 16.04
虽然我已经研究了一整天,但我仍然找不到解决这个问题的方法。
在我的 Ubuntu 服务器上,我试图运行一个 node.js 应用程序,它只是打印出“Hello World”并在端口 3000 上运行。我希望不仅能够在我的本地主机上而且能够在我的实时网站地址上访问这个端口。
运行sudo netstat -ntlp,我得到以下信息:
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 58639/mysqld
tcp 0 0 0.0.0.0:9418 0.0.0.0:* LISTEN 585/git-daemon
tcp 0 0 0.0.0.0:110 0.0.0.0:* LISTEN 839/dovecot
tcp 0 0 0.0.0.0:143 0.0.0.0:* LISTEN 839/dovecot
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 792/sshd
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 17862/master
tcp 0 0 0.0.0.0:8000 0.0.0.0:* LISTEN 889/ajenti-panel -d
tcp 0 0 0.0.0.0:5314 0.0.0.0:* LISTEN 947/BackupFP
tcp 0 0 0.0.0.0:5666 0.0.0.0:* LISTEN 838/nrpe
tcp6 0 0 :::3300 :::* LISTEN 26390/apache2
tcp6 0 0 :::9418 :::* LISTEN 585/git-daemon
tcp6 0 0 :::110 :::* LISTEN 839/dovecot
tcp6 0 0 :::143 :::* LISTEN 839/dovecot
tcp6 0 0 :::80 :::* LISTEN 26390/apache2
tcp6 0 0 :::22 :::* LISTEN 792/sshd
tcp6 0 0 :::3000 :::* LISTEN 52768/index.js
tcp6 0 0 :::25 :::* LISTEN 17862/master
tcp6 0 0 :::443 :::* LISTEN 26390/apache2
tcp6 0 0 :::5666 :::* LISTEN 838/nrpe
Run Code Online (Sandbox Code Playgroud)
我们注意到端口似乎打开了,甚至正在运行
curl exampleAddress.com:3000结果,Hello World但它不会在互联网上工作。使用此端口检查器工具,端口似乎保持关闭状态。请记住,我只是想访问在端口 443 上运行的已经启动并正在运行的网站上的额外端口(它在 SSL 上运行,这可能很重要)。
我通过运行确保防火墙不是问题:sudo ufw allow 3000甚至尝试完全禁用防火墙。
由于端口 443、80 和 22 已打开,我是否缺少任何 apache 配置,但我看不到具体差异。
我可以看到进程 index.js 正在侦听端口 3000、协议 IPv6 (tcp6),但未侦听协议 IPv4 (tcp)。
您需要检查您的 NodeJS 设置并让它也侦听 IPv4。
然后你可以测试它curl -4 exampleAddress.com:3000