温馨提示×

Node.js 配置时 Linux 网络如何设置

小樊
47
2026-06-30 16:49:31
栏目: 编程语言

在 Linux 上配置 Node.js 时的“网络设置”,通常取决于你是在本机开发部署服务器,还是容器/云环境。下面按常见场景系统说明。


一、Linux 网络基本前提(必须先确认)

1. 确认网络畅通

ping -c 3 baidu.com

2. 查看本机 IP

ip addr
# 或
ifconfig

3. 防火墙(非常重要)

Node.js 服务起不来或访问不了,90% 是防火墙问题。

firewalld(CentOS / Rocky / Alma)

systemctl status firewalld

开放端口(如 3000):

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

ufw(Ubuntu)

ufw allow 3000
ufw reload

二、Node.js 网络相关配置重点

1. 监听地址(IP)

Node.js 默认监听:

server.listen(3000, '127.0.0.1');

❌ 只能本机访问
✅ 用 0.0.0.0 才能外部访问:

server.listen(3000, '0.0.0.0', () => {
  console.log('Server running on 0.0.0.0:3000');
});

2. 端口选择

  • 推荐:3000、8000、8080
  • 80 / 443:需要 root 权限(不推荐直接)
node app.js

三、Linux 系统级网络参数(高并发时)

1. 文件描述符限制(常见坑)

查看当前限制:

ulimit -n

临时修改:

ulimit -n 65535

永久修改(推荐):

vim /etc/security/limits.conf

添加:

* soft nofile 65535
* hard nofile 65535

2. 内核网络参数

编辑:

vim /etc/sysctl.conf

常用配置(Web 服务):

net.core.somaxconn = 65535
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 30

生效:

sysctl -p

四、反向代理(生产环境必选)

Node.js 不应直接对外,通常用 Nginx。

示例 Nginx 配置

server {
    listen 80;
    server_name example.com;

    location / {
        proxy_pass http://127.0.0.1:3000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

重启 Nginx:

nginx -t
systemctl restart nginx

五、Node.js 进程常驻(网络不掉线)

PM2(强烈推荐)

npm install -g pm2
pm2 start app.js
pm2 save
pm2 startup

六、容器 / 云环境注意点

Docker

docker run -p 3000:3000 node-app

Node.js 中必须监听:

0.0.0.0

云服务器

  • 安全组放行端口
  • 防火墙放行端口
  • 同一时间只放行一次

七、快速检查清单 ✅

  • [ ] Node.js 监听 0.0.0.0
  • [ ] 端口开放
  • [ ] 防火墙允许
  • [ ] 云安全组允许
  • [ ] 使用 Nginx 反向代理
  • [ ] 使用 PM2 守护进程

八、我可以进一步帮你

你可以告诉我:

  1. Linux 发行版(Ubuntu / CentOS / Debian)
  2. ✅ 是 本地开发 还是 服务器部署
  3. ✅ 是否使用 Docker / Nginx
  4. ✅ Node.js 报错信息

我可以直接给你一套可执行的最简配置方案

0