You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GCP Linux VM公网IP无法访问求助(SSH可正常连接)

GCP Node.js服务器无法访问的排查方案

1. 确认Node.js服务的监听地址

服务仅绑定127.0.0.1时,仅允许本地访问,无法通过公网连接。执行以下命令检查监听状态:

netstat -tulpn | grep :8080
# 或用ss命令
ss -tulpn | grep :8080

如果输出显示127.0.0.1:8080,修改Node.js代码的监听配置,将地址改为0.0.0.0(允许所有网卡访问):

app.listen(8080, '0.0.0.0', () => {
  console.log('Server running on port 8080');
});

重启Node.js服务后再次检查监听地址。

2. 检查虚拟机本地防火墙

即使GCP云端防火墙开放端口,虚拟机本地防火墙(如ufw、iptables)可能拦截请求:

  • ufw防火墙:
    sudo ufw status
    
    如果未显示8080端口的允许规则,执行:
    sudo ufw allow 8080/tcp
    
  • iptables防火墙:
    sudo iptables -L INPUT -n | grep 8080
    
    无匹配结果时,添加允许规则:
    sudo iptables -A INPUT -p tcp --dport 8080 -j ACCEPT
    

3. 验证GCP云端防火墙规则配置

确认防火墙规则的关键配置项:

  • 目标:规则需覆盖你的虚拟机(可通过标签匹配,或设置为“所有实例”)
  • 来源IP范围:若允许公网访问,需设置为0.0.0.0/0(而非特定IP段)
  • 协议/端口:确保是tcp:8080,方向为入站
  • 规则优先级:避免被其他优先级更高的拒绝规则覆盖

4. 确认虚拟机公网IP正确性

  • 在GCP控制台查看虚拟机的外部IP,确认与你访问的34.68.254.120一致
  • 也可在虚拟机内执行以下命令获取当前公网IP:
    curl ifconfig.me
    
    若IP不一致,更新访问地址为当前有效公网IP。

5. 修正浏览器访问协议

浏览器提示This site can’t provide a secure connection,大概率是默认尝试HTTPS访问,但你的Node.js服务仅提供HTTP服务。需明确输入完整地址:

http://34.68.254.120:8080

6. 确认Node.js服务运行状态

确保服务未崩溃或退出:

ps aux | grep node
# 若用systemd管理服务,执行:
systemctl status your-node-service-name

若服务未运行,重启服务并查看日志排查启动失败原因:

# 查看Node.js启动日志(示例)
node your-server.js 2>&1

内容的提问来源于stack exchange,提问作者SleepyWakes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 12:31:00