在 CentOS 上配置防火墙(通常是 firewalld)以允许 Node.js 服务访问,一般步骤如下:
systemctl status firewalld
如果未运行:
systemctl start firewalld
systemctl enable firewalld
firewall-cmd --add-port=3000/tcp
firewall-cmd --permanent --add-port=3000/tcp
firewall-cmd --reload
firewall-cmd --list-ports
app.listen(3000, '0.0.0.0');
如果只写:
app.listen(3000);
默认也是 0.0.0.0,但某些环境可能只绑定 127.0.0.1,外部访问不到。
只需放行 80 / 443:
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload
Node.js 端口(如 3000)可只对内网开放或不对外。
检查:
getenforce
如果是 Enforcing,Node 端口可能需要授权:
semanage port -a -t http_port_t -p tcp 3000
iptables -I INPUT -p tcp --dport 3000 -j ACCEPT
service iptables save
service iptables restart
0.0.0.0curl http://localhost:3000 能通但外网不通 → 防火墙 / 安全组问题如果你能告诉我:
我可以给你更精确的配置示例。