如何配置neo4j-python驱动连接代理后的远程Neo4j实例
neo4j-python 驱动代理配置说明
neo4j-python 驱动原生支持代理连接,完全可以满足企业代理环境下连接Azure托管Neo4j企业版实例的需求,不存在功能缺失。
具体配置方法
5.x 版本推荐配置(直接传参)
5.x 版本驱动初始化时直接暴露了proxy入参,直接传入代理地址即可,配置逻辑和requests等常用Python网络库完全一致:
from neo4j import GraphDatabase # 替换为你的实际配置 DB_URI = "neo4j://<Azure上Neo4j实例的访问地址>:7687" DB_USER = "<数据库用户名>" DB_PWD = "<数据库密码>" # 代理地址按实际类型写前缀:HTTP代理用http://开头,SOCKS5代理用socks5://开头,HTTPS代理用https://开头 # 如果代理需要账号密码,格式为 http://<代理账号>:<代理密码>@<代理IP>:<代理端口> PROXY_URL = "http://<企业代理IP>:<代理端口>" driver = GraphDatabase.driver( DB_URI, auth=(DB_USER, DB_PWD), proxy=PROXY_URL ) # 连通性测试 with driver.session() as session: print(session.run("RETURN 'connect success' AS msg").single()["msg"]) driver.close()
4.x 旧版本兼容配置
4.x 版本没有直接暴露proxy参数,可以通过环境变量注入代理配置,驱动底层会自动读取系统代理环境变量建立连接:
- Linux/macOS 终端启动脚本前执行:
export HTTP_PROXY="http://<企业代理IP>:<代理端口>" export HTTPS_PROXY="http://<企业代理IP>:<代理端口>" # 使用SOCKS代理时额外配置 export ALL_PROXY="socks5://<企业代理IP>:<代理端口>"
- Windows PowerShell 环境启动前执行:
$env:HTTP_PROXY = "http://<企业代理IP>:<代理端口>" $env:HTTPS_PROXY = "http://<企业代理IP>:<代理端口>"
常见注意事项
- 如果企业代理做了SSL流量解密,需要在驱动初始化时通过
trusted_certificates参数传入企业根证书路径,否则会出现SSL握手失败的问题 - 配置前先确认企业代理已经放通了本地到Azure Neo4j实例对应端口(默认7687)的访问权限,可以先通过curl走代理测试端口连通性,再排查驱动配置问题
- 连接Neo4j集群时不需要额外调整代理配置,驱动的路由逻辑会自动通过代理链路访问集群内的节点
内容的提问来源于stack exchange,提问作者freddy
相关产品推荐
相关产品推荐

