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

如何通过Python API连接代理后的Neo4j AuraDB?

Neo4j AuraDB 代理连接问题解决建议

核心原因

Neo4j的Python驱动(官方驱动、py2neo)默认不依赖系统HTTP代理,因为neo4j+s://使用的是加密Bolt协议,属于TCP层通信,普通HTTP代理仅处理HTTP/HTTPS流量,无法直接转发Bolt请求,这就是设置HTTP代理无效的根本原因。

可行解决方法

1. 使用TCP代理工具转发流量

推荐用proxychains-ng这类工具实现TCP流量代理,适配Bolt协议:

  • 安装工具(以Ubuntu为例):
    sudo apt install proxychains4
    
  • 编辑配置文件/etc/proxychains.conf,修改末尾的代理配置:
    http    ip port username Password
    
  • 用工具包裹Python脚本运行:
    proxychains4 python3 demo.py
    

2. 强制使用HTTP连接并配置代理(不推荐)

仅当无法使用TCP代理时尝试,此方式性能远低于Bolt:
py2neo底层依赖requests库,可以通过自定义Session设置代理:

import requests
from py2neo import Graph

# 配置代理
proxies = {
    "http": "http://username:Password@ip:port",
    "https": "http://username:Password@ip:port"
}
# 创建带代理的Session
custom_session = requests.Session()
custom_session.proxies.update(proxies)

# 初始化Graph时传入自定义Session
graph = Graph(
    "neo4j+s://12345678.databases.neo4j.io",
    auth=("your_username", "your_password"),
    http_session=custom_session
)

注意:官方Neo4j驱动不支持此方式,因为它优先使用Bolt协议。

3. 申请企业IT放行Bolt端口

Neo4j AuraDB的加密Bolt端口为7687,联系企业IT部门直接放行该端口的出站流量,绕过代理,这是最稳定的长期解决方案。

额外排查要点

  • 检查代理的用户名/密码是否包含特殊字符(如@、#),若有需进行URL编码(例如@替换为%40)
  • 测试代理的TCP转发能力:通过代理工具执行telnet 12345678.databases.neo4j.io 7687,确认是否能建立连接

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 02:55:26