✅ 前提条件
- 云服务器已安装 Node.js 和 npm。
- 你的 Node.js 应用已部署并正在运行。
- 你知道服务器的公网 IP 地址(或域名)。
- 应用监听的端口(如 3000、8080 等)。
🔧 步骤一:确认 Node.js 应用正在运行
在服务器上,检查你的 Node.js 进程是否在运行:
ps aux | grep node
如果应用未运行,请启动它:
cd /path/to/your/app node app.js
💡 建议使用
pm2管理进程,避免终端关闭后应用停止:npm install -g pm2 pm2 start app.js pm2 save
🔓 步骤二:确保防火墙允许访问端口
云服务器安全组(如简米云、酷番云、AWS 等)
- 登录云控制台。
- 找到你的实例 → 安全组规则。
- 添加入方向规则,允许 TCP 端口(如 3000)从任意 IP(0.0.0.0/0)访问。
系统防火墙(如 Ubuntu 的 UFW 或 CentOS 的 firewalld)
Ubuntu (UFW):
sudo ufw allow 3000/tcp sudo ufw reload
CentOS (firewalld):
sudo firewall-cmd --permanent --add-port=3000/tcp sudo firewall-cmd --reload
🌐 步骤三:从外部访问
在浏览器或命令行中访问:
http://<你的服务器公网IP>:3000
http://123.45.67.89:3000
⚠️ 常见问题排查
应用只监听 localhost?
检查你的 Node.js 代码中 listen 部分:
// ❌ 错误:只监听本地 app.listen(3000, '127.0.0.1'); // ✅ 正确:监听所有接口 app.listen(3000, '0.0.0.0');
端口被占用?
sudo lsof -i :3000
无法连接?
- 确认安全组和防火墙已放行。
- 确认应用正在运行且监听正确端口。
- 尝试在服务器本地访问:
curl http://localhost:3000
🛡️ 最佳实践建议
-
使用反向代理(如 Nginx):
- 将 80/443 端口映射到 Node.js 应用端口。
- 支持 HTTPS、静态文件服务等。
-
使用域名:
- 绑定域名到服务器 IP。
- 通过域名访问更稳定、专业。
-
使用进程管理器:
- 如
pm2,确保应用自动重启、日志管理。
- 如
-
环境变量管理:
- 使用
.env文件管理敏感配置(如密钥、端口等)。
- 使用
📌 示例:完整启动流程
# 1. 进入项目目录 cd /home/user/my-node-app # 2. 安装依赖 npm install # 3. 使用 pm2 启动 pm2 start app.js --name "myapp" # 4. 设置开机自启 pm2 startup pm2 save # 5. 确保防火墙开放 sudo ufw allow 3000/tcp # 6. 访问 # 浏览器打开: http://<公网IP>:3000
首发原创文章,作者:世雄 - 原生数据库架构专家,如若转载,请注明出处:https://idctop.com/article/483300.html



