图数据库的驱动端口
7687 是 Neo4j 的 Bolt 协议端口:官方驱动与 cypher-shell 都通过它建立二进制会话,执行 Cypher 语句并接收流式结果,与 HTTP 的 7474 分工明确——7474 主要给浏览器端管理界面用,7687 才是应用真正的数据通道。Bolt 默认在同一端口按需协商 TLS,因此加密与明文会共用这一个端口号。
基本信息
| 服务 | Neo4j Bolt |
|---|---|
| 协议 | TCP(7687;TLS 同端口协商) |
| 用途 | 应用驱动连接图数据库、执行 Cypher |
| 配套端口 | 7474 为 HTTP 接口与浏览器界面 |
| 暴露要求 | 仅应用网段 |
典型使用场景
- 应用接入:Java、Python 等驱动按 bolt 协议连接数据库
- 命令行排查:用 cypher-shell 直接核对数据与查询计划
- 权限核对:确认数据库账号与连接来源是否匹配应用清单
- 性能问题定位:慢查询与连接池打满都先看这条通道
- 迁移演练:集群或版本升级前用同一端口验证驱动兼容性
连接串与用途
| 连接串 | 端口 | 用途 |
|---|---|---|
| bolt://host:7687 | 7687 | 明文 Bolt,仅内网使用 |
| neo4j://host:7687 | 7687 | 路由式连接,集群场景 |
| neo4j+s://host:7687 | 7687 | TLS 加密连接 |
| http://host:7474 | 7474 | 浏览器界面与 REST 接口 |
连接与核对
连接与核对
# 用命令行客户端验证 Bolt 通道
cypher-shell -a bolt://db.example.com:7687
# 查看监听端口与绑定地址
ss -lntp | grep 7687
# 核对配置中监听地址,避免默认绑定全部接口
grep -n -i -E 'listen_address|advertised' neo4j.conf驱动报出协议相关错误时,先在客户端确认连接串写的是 bolt 而不是 http:连到 7474 通常能完成握手,但后续查询会因为协议不匹配而失败,报错信息容易被误解为数据问题。
Bolt 对应用意味着完整的数据库读写能力:7687 若不限制来源,任何能连通的主机都可以用凭据直连图库。生产部署应把监听地址收敛到内网,并对账号做最小权限划分。
集群模式下每个节点都会提供 Bolt 服务:客户端使用路由式连接串时,驱动先取集群拓扑再连到具体节点。只放行其中一个节点的 7687,单机验证会完全正常,集群场景却间歇性失败,这类问题在放行清单不完整时非常典型。