Debian系统Node.js网络配置指南
一 系统网络与DNS先行
auto eth0
iface eth0 inet static
address 192.168.1.100
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 8.8.8.8 8.8.4.4
使用 DHCP 时:auto eth0
iface eth0 inet dhcp
应用变更:sudo systemctl restart networking,随后用 ip addr、ping www.debian.cn 验证。nmcli con mod eth0 ipv4.method manual ipv4.addresses 192.168.1.100/24 ipv4.gateway 192.168.1.1 ipv4.dns "8.8.8.8 8.8.4.4" autoconnect yes
nmcli con up eth0
resolvectl status 检查;如被 systemd-resolved 管理,避免直接改写 /etc/resolv.conf。sudo ufw allow 80,443/tcp;云主机还需在控制台安全组放行对应端口。二 Node.js监听与对外发布
const http = require('http');
http.createServer((req, res) => {
res.end('Hello from Debian');
}).listen(3000, '0.0.0.0', () => {
console.log('Listening on 0.0.0.0:3000');
});
// 仅内网口
server.listen(3000, '192.168.1.100');
// 仅IPv6
server.listen(3000, '::1');
server.on('error', (e) => {
if (e.code === 'EADDRINUSE') {
console.log('Address in use, retrying...');
setTimeout(() => server.close(() => server.listen(3000, '0.0.0.0')), 1000);
}
});
server {
listen 80;
server_name your_domain.com;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
启用站点并热重载:sudo ln -s /etc/nginx/sites-available/default /etc/nginx/sites-enabled/ && sudo nginx -t && sudo systemctl reload nginx。npm i -g pm2
pm2 start app.js -i max --name api
pm2 save && pm2 startup
三 高并发网络优化
# 临时
ulimit -n 65535
# 永久
echo "* soft nofile 65535" | sudo tee -a /etc/security/limits.conf
echo "* hard nofile 65535" | sudo tee -a /etc/security/limits.conf
net.core.somaxconn = 65535
net.ipv4.tcp_max_syn_backlog = 65535
net.ipv4.ip_local_port_range = 1024 65535
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 30
应用:sudo sysctl -p。四 常见问题排查
ip link 确认实际网卡名(如 eth0/enp0s3),避免配置到不存在的接口。resolvectl status 与 nslookup example.com 排查;若用 ifupdown,优先在接口配置里设置 dns-nameservers。proxy_http_version 1.1 与必要的请求头;需要 HTTP/2 时优先在 Nginx 启用。