WSL环境下使用py2neo连接Windows本地Neo4j实例失败的问题求助
WSL环境下使用py2neo连接Windows本地Neo4j实例失败的问题求助
我来帮你排查这个连接问题,核心原因其实是WSL的网络和Windows主机不属于同一个网络命名空间,直接用localhost会指向WSL自身的虚拟机环境,而非Windows上运行的Neo4j服务。下面是一步步的解决思路:
第一步:获取Windows主机的实际IP地址
在Windows系统打开命令提示符(CMD),执行ipconfig命令,找到「以太网适配器 WSL」或「本地连接」对应的IPv4地址(通常是192.168.x.x这类格式),把这个IP记录下来。
第二步:确认Neo4j配置正确生效
打开你的Neo4j配置文件(neo4j.conf),确保以下配置项已取消注释并正确设置:
# 启用Bolt连接器 dbms.connector.bolt.enabled=true # 让Bolt监听所有网卡地址,允许外部设备访问 dbms.connector.bolt.address=0.0.0.0:7687 # 设置服务监听所有地址 server.default_listen_address=0.0.0.0 # 若你的Neo4j是4.x及以上版本,建议添加这个配置(也可直接设为Windows主机IP) dbms.default_advertised_address=0.0.0.0
修改完成后,务必重启Neo4j服务,让新配置生效。
第三步:检查Windows防火墙限制
Windows防火墙可能会拦截WSL对Neo4j 7687端口的访问,你可以:
- 临时关闭防火墙测试连接(测试完成后记得重新开启);
- 或者在防火墙中添加一条入站规则,允许
7687端口的TCP连接请求。
第四步:修改py2neo的连接代码
把代码里的localhost替换成你刚才获取的Windows主机IP,示例如下:
from py2neo import Graph # 替换为你的Windows实际IPv4地址 graph = Graph('bolt://192.168.1.100:7687', user="neo4j", password="12345678")
额外排查点
- 先在WSL终端执行
ping 你的WindowsIP测试网络连通性,如果ping不通,说明WSL和Windows的网络链路存在问题,需要检查WSL的网络配置; - 查看Neo4j的日志文件,确认服务是否正常启动并成功监听7687端口;
- 在Windows上执行
netstat -ano | findstr 7687,检查7687端口是否被其他程序占用。
备注:内容来源于stack exchange,提问作者Tran Minh Quan
相关产品推荐
相关产品推荐

