温馨提示×

centos nodejs如何配防火墙

小樊
37
2026-09-14 23:28:47
栏目: 编程语言

CentOS 上配置防火墙(通常是 firewalld)以允许 Node.js 服务访问,一般步骤如下:


一、确认防火墙状态(CentOS 7+ 默认 firewalld)

systemctl status firewalld

如果未运行:

systemctl start firewalld
systemctl enable firewalld

二、放行 Node.js 端口(以 3000 为例)

1️⃣ 临时放行(重启失效)

firewall-cmd --add-port=3000/tcp

2️⃣ 永久放行(推荐)

firewall-cmd --permanent --add-port=3000/tcp

3️⃣ 重新加载防火墙

firewall-cmd --reload

4️⃣ 查看已放行端口

firewall-cmd --list-ports

三、Node.js 监听注意事项

✅ 正确监听方式

app.listen(3000, '0.0.0.0');

如果只写:

app.listen(3000);

默认也是 0.0.0.0,但某些环境可能只绑定 127.0.0.1,外部访问不到。


四、如果你使用的是 Nginx 反向代理

只需放行 80 / 443

firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload

Node.js 端口(如 3000)可只对内网开放或不对外。


五、SELinux 可能影响(少见但注意)

检查:

getenforce

如果是 Enforcing,Node 端口可能需要授权:

semanage port -a -t http_port_t -p tcp 3000

六、CentOS 6(iptables,老系统)

iptables -I INPUT -p tcp --dport 3000 -j ACCEPT
service iptables save
service iptables restart

七、常见排错

  • 云服务器还要在 安全组 放行端口
  • 本地防火墙放行但访问不了 → 检查 Node 是否监听 0.0.0.0
  • curl http://localhost:3000 能通但外网不通 → 防火墙 / 安全组问题

如果你能告诉我:

  • CentOS 版本(6 / 7 / 8 / Stream)
  • Node 端口
  • 是否用 Nginx

我可以给你更精确的配置示例。

0