在 Debian 上用 Node.js “绑端口”通常指让 Node.js 服务监听某个 TCP 端口(如 80、3000)。下面按常见情况说明。
const http = require('http');
const server = http.createServer((req, res) => {
res.end('Hello Debian');
});
server.listen(3000, '0.0.0.0', () => {
console.log('Listening on port 3000');
});
3000:端口号0.0.0.0:监听所有网卡(外网可访问)server.listen(3000) 默认也是 0.0.0.0const express = require('express');
const app = express();
app.get('/', (req, res) => res.send('Hi'));
app.listen(3000, '0.0.0.0', () => {
console.log('Express on 3000');
});
Node 监听 3000,用 Nginx 反代到 80
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://127.0.0.1:3000;
}
}
或 Node 直接绑 80(不推荐):
app.listen(80, '0.0.0.0');
需用:
sudo node app.js
sudo ufw allow 3000
sudo ufw allow 80
sudo iptables -A INPUT -p tcp --dport 3000 -j ACCEPT
node app.js &
或用:
npm install -g pm2
pm2 start app.js
ss -lntp | grep node
# 或
netstat -lntp | grep node
| 错误 | 原因 |
|---|---|
EADDRINUSE |
端口被占用 |
EACCES |
没权限绑 <1024 端口 |
| 外网访问不了 | 防火墙 / 云安全组未开 |
如果你能告诉我:
我可以给你更精确的配置示例。