温馨提示×

debian nodejs怎么绑端口

小樊
37
2026-10-25 04:51:25
栏目: 编程语言

在 Debian 上用 Node.js “绑端口”通常指让 Node.js 服务监听某个 TCP 端口(如 80、3000)。下面按常见情况说明。


一、Node.js 代码中绑定端口(最常用)

1. 原生 http 示例

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.0

2. Express 示例

const 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');
});

二、绑定 80 / 443(特权端口)

⚠️ 注意

  • Linux 中 端口 < 1024 需要 root
  • 不推荐直接用 root 跑 Node

推荐方案

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

三、让端口在防火墙中放行(Debian)

1. 如果用 ufw

sudo ufw allow 3000
sudo ufw allow 80

2. 如果用 iptables

sudo iptables -A INPUT -p tcp --dport 3000 -j ACCEPT

四、后台运行 Node(绑端口不退出)

node app.js &

或用:

npm install -g pm2
pm2 start app.js

五、查看端口是否绑定成功

ss -lntp | grep node
# 或
netstat -lntp | grep node

六、常见错误

错误 原因
EADDRINUSE 端口被占用
EACCES 没权限绑 <1024 端口
外网访问不了 防火墙 / 云安全组未开

如果你能告诉我:

  • 用的框架(原生 / Express / Koa)
  • 想绑哪个端口(80?3000?)
  • 是否在云服务器

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

0 踩