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

Docker部署Neo4j 5.15.0社区版公网IP访问绑定失败求助

Docker部署Neo4j绑定公网IP失败问题排查与解决

问题现象

  • 配置Neo4j绑定服务器公网IP后,7474端口HTTP连接失败,容器每分钟重启一次
  • neo4j.log报错:

org.neo4j.kernel.lifecycle.LifecycleException: Component 'org.neo4j.bolt.protocol.common.connector.netty.SocketNettyConnector@2548fc01' was successfully initialized, but failed to start. Please see the attached cause exception "bind(..) failed: Cannot assign requested address".

org.neo4j.configuration.helpers.PortBindException: An error occurred while trying to bind to the socket /<server_public_IP>:7687

io.netty.channel.unix.Errors$NativeIoException: bind(..) failed: Cannot assign requested address

  • 服务器环境:

Virtualization: amazon
Operating System: Ubuntu 22.04.3 LTS
Kernel: Linux 6.2.0-1017-aws
Architecture: arm64

  • 不配置公网IP时,服务器本地访问Neo4j一切正常,Docker状态、端口监听及日志无异常

问题原因

AWS EC2实例的公网IP并非直接绑定在服务器网卡上,而是通过AWS NAT网关实现转发。服务器本地网卡仅持有内网私有IP,直接让Neo4j绑定公网IP会导致端口绑定失败——因为服务器本身没有对应公网IP的网络接口。

解决方法

1. 修正Neo4j绑定地址配置

启动Docker容器时,将Neo4j的监听地址设置为0.0.0.0(允许监听所有内网/容器内的网络接口),而非直接指定服务器公网IP。

示例启动命令:

docker run -d \
    --name neo4j \
    -p 0.0.0.0:7474:7474 \
    -p 0.0.0.0:7687:7687 \
    -e NEO4J_AUTH=neo4j/your-password \
    -e NEO4J_LISTEN_ADDRESS=0.0.0.0 \
    -e NEO4J_BOLT_LISTEN_ADDRESS=0.0.0.0:7687 \
    -e NEO4J_HTTP_LISTEN_ADDRESS=0.0.0.0:7474 \
    neo4j:5.15.0

2. 配置AWS安全组放行端口

确保EC2实例的安全组规则允许外部访问对应端口:

  • 入站规则添加:
    • 协议:TCP,端口范围7474,源地址设置为允许访问的IP段(如0.0.0.0/0表示所有IP,或指定特定IP)
    • 协议:TCP,端口范围7687,源地址配置同上

3. 验证容器运行状态

启动后检查容器是否正常运行:

docker ps

查看容器日志确认无绑定错误:

docker logs neo4j

4. 远程访问测试

通过http://<服务器公网IP>:7474访问Neo4j控制台,输入配置的用户名密码即可登录。

内容的提问来源于stack exchange,提问作者Andrés Meza-Escallón

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 09:00:40