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

本地浏览器连接Google Compute Engine远程Neo4j服务器失败求助

解决本地浏览器连接GCE上Neo4j的WebSocket超时问题

咱一步步来排查你遇到的这个net::ERR_CONNECTION_TIMED_OUT问题,你已经改了neo4j.conf,那咱从几个关键环节逐个验证:

1. 确认Neo4j配置是否真的生效

先确保你修改的neo4j.conf里这几个核心参数是正确的,并且重启了服务:

  • dbms.default_listen_address=0.0.0.0:允许Neo4j监听所有网卡的请求,而不是仅本地
  • dbms.connector.bolt.listen_address=0.0.0.0:7687:Bolt协议(WebSocket依赖这个)的监听地址,必须开放到所有IP
  • dbms.connector.http.listen_address=0.0.0.0:7474:HTTP端口,浏览器访问的入口

修改完后一定要重启Neo4j,用命令:

# 如果是systemd管理的系统(比如Ubuntu 18.04+)
sudo systemctl restart neo4j
# 或者用Neo4j自带的脚本
neo4j restart

2. 检查GCE的防火墙规则(90%的概率是这里的问题!)

GCE默认会阻止外部对非标准端口的访问,你必须手动添加防火墙规则开放7474和7687端口:

  • 登录GCE控制台,找到你的实例所在的VPC网络,进入「防火墙」页面
  • 点击「创建防火墙规则」,填这些信息:
    • 名称:比如allow-neo4j-traffic(随便取)
    • 目标:选「实例标签」,给你的Neo4j实例加个标签(比如neo4j-server),这里就填这个标签
    • 来源IP范围:如果是自己测试,填你本地的公网IP更安全;如果是临时调试,可填0.0.0.0/0(生产环境别这么干)
    • 协议和端口:勾选「tcp」,填入7474,7687
  • 保存后等个1-2分钟让规则生效

3. 验证GCE实例内部的端口监听状态

你用了netstat --listen,可以更精准地查Neo4j的端口是否真的在监听:
执行这条命令:

netstat -tulpn | grep neo4j

正常应该能看到类似这样的输出:

tcp6       0      0 :::7687                 :::*                    LISTEN      1234/java
tcp6       0      0 :::7474                 :::*                    LISTEN      1234/java

如果看不到,说明Neo4j没正常启动,去看日志排查:

# systemd系统看日志
journalctl -u neo4j
# 或者直接看Neo4j的日志文件
cat neo4j/logs/neo4j.log

4. 本地网络和浏览器的排查

  • 先在本地终端用工具测试端口是否能通:
    # 用telnet
    telnet xx.xx.xx.xx 7687
    # 或者用nc(更直观)
    nc -zv xx.xx.xx.xx 7687
    
    如果通不了,要么是GCE防火墙没配,要么是实例内部的本地防火墙拦了
  • 浏览器访问的时候,直接用http://xx.xx.xx.xx:7474,不要手动输ws://地址——浏览器会自动通过HTTP页面建立WebSocket连接
  • 检查浏览器的代理设置,有些代理会拦截WebSocket请求,试试关掉代理再连接

5. 实例内部本地防火墙的检查

如果GCE防火墙开了还是不通,看看实例上的本地防火墙(比如Ubuntu的ufw):
执行sudo ufw status,如果显示active,就添加规则:

sudo ufw allow 7474/tcp
sudo ufw allow 7687/tcp
sudo ufw reload

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 09:57:40