为何在浏览器输入Node.js监听的VPS IP及端口后无法得到响应?
配置遗漏点及修复方案
- 监听地址配置错误
你当前代码中app.listen仅指定了端口,默认仅监听本机localhost地址,公网无法访问。需要修改监听地址为0.0.0.0,允许所有网卡的访问请求:
const express = require('express'); const app = express(); const PORT = 4000; app.get('/about', (req, res) => { res.sendFile('./views/page.html', { root: __dirname }); }); // 新增0.0.0.0监听地址 app.listen(PORT, '0.0.0.0', () => { console.log(`Server running at: http://0.0.0.0:${PORT}/`); });
- VPS防火墙端口未放行
需要同时放开两层防火墙的4000端口入站规则:
- 系统层防火墙:如果用ufw,执行
ufw allow 4000/tcp;如果用firewalld,依次执行firewall-cmd --add-port=4000/tcp --permanent、firewall-cmd --reload - 云服务商安全组:登录你VPS对应的服务商控制台,在安全组规则中添加4000端口的TCP入站允许规则
Vesta面板防火墙拦截
你使用Vesta托管站点,Vesta自带防火墙默认会拦截非预设端口的请求,需要登录Vesta控制面板,在防火墙设置中添加4000端口的放行规则。路由匹配问题
当前代码仅配置了/about路径的GET请求处理,直接访问IP:4000根路径会返回404错误,你可以补充根路径的路由规则,或者访问时使用IP:4000/about路径测试。
内容的提问来源于stack exchange,提问作者fernando
相关产品推荐
相关产品推荐

