Nacos 2.0 版本客户端连接服务端报错 Connection refused 怎么解决

文章导读
Nacos 2.0 客户端连接报错 Connection refused 的核心原因是 9848 gRPC 端口未开放,该端口由主端口 8848 加偏移量 1000 计算得出(2026 年 3 月 12 日资料)。
📋 目录
  1. A 原因分析
  2. B 解决方案
  3. C 注意事项
  4. D 参考来源
A A

Nacos 2.0 客户端连接报错 Connection refused 的核心原因是 9848 gRPC 端口未开放,该端口由主端口 8848 加偏移量 1000 计算得出(2026 年 3 月 12 日资料)。

原因分析

Nacos 2.0 版本架构发生重大变化,从 1.x 时代的 HTTP/1.1 协议升级为基于 gRPC 的双向长连接通信模型。客户端启动时会先通过 8848 端口获取服务端基本信息,然后立即尝试与 9848 端口建立 gRPC 长连接。如果 9848 端口无法访问,客户端会卡在 STARTING 状态并抛出异常:com.alibaba.nacos.api.exception.NacosException: Client not connected, currentstatus:STARTING(2026 年 3 月 12 日资料)。许多开发者在服务器防火墙或云平台安全组中只开放了 8848 端口,导致客户端连接永远失败。

解决方案

步骤一:确认 Nacos 服务端端口监听状态

登录 Nacos 服务器执行命令检查端口监听情况:netstat -tlnp | grep 8848netstat -tlnp | grep 9848。Nacos 2.0 实际会监听三个端口:8848(HTTP API、控制台)、9848(gRPC 数据通信)、9849(gRPC TLS/SSL 通信)(2025 年 7 月 25 日资料)。

步骤二:测试网络连通性

在客户端机器上使用telnet 9848nc -zv 9848测试 gRPC 端口是否可达。真实报错案例显示:Caused by: java.net.ConnectException: Connection refused: no further information: /127.0.0.1:9848(2023 年 4 月 3 日资料)。如果 telnet 不通,说明防火墙或安全组阻止了连接。

步骤三:配置防火墙规则

以 CentOS 为例,执行以下命令开放端口:firewall-cmd --zone=public --add-port=8848/tcp --permanentfirewall-cmd --zone=public --add-port=9848/tcp --permanentfirewall-cmd --reload(2025 年 7 月 25 日资料)。云平台用户需在安全组中同时放行 8848 和 9848 端口。

步骤四:检查启动模式配置

本地开发环境需使用单机模式启动,在 nacos 的 bin 文件夹执行:startup.cmd -m standalone。如果以集群模式启动单机环境,会报错:java.lang.IllegalStateException: failed to req API:/nacos/v1/ns/instance after all servers([127.0.0.1:8848]) tried(2022 年 8 月 1 日资料)。

Nacos 2.0 版本客户端连接服务端报错 Connection refused 怎么解决

步骤五:Docker 部署特殊处理

Docker 部署时需正确映射端口:docker run -p 9848:9848 nacos/nacos-server:latest。如果主机上没有端口 9848,可更改为可用的主机端口(2024 年 1 月 17 日资料)。同时需检查 Docker 网络配置,必要时重新创建网络:docker network rm my_networkdocker network create my_network

注意事项

1. 版本兼容性:确保客户端使用的 Nacos 客户端版本与服务器版本兼容,如nacos-client-2.1.0.jar需配合 Nacos 2.x 服务端(2022 年 12 月 2 日资料)。

2. 数据库配置:有用户反馈更换 MySQL 密码后未同步修改 Nacos 配置文件application.properties,导致连接失败,需查看logs/nacos.log定位问题(2024 年 6 月 3 日资料)。

3. 端口转发规则:Nacos 2.0 的 gRPC 端口通过主端口偏移量计算产生,端口转发也需要满足该偏移量规则,即主端口 +1000(2022 年 4 月 3 日资料)。

4. 客户端配置:Spring Cloud Alibaba 项目中配置示例为spring.cloud.nacos.discovery.server-addr=:8848,客户端会自动获取 gRPC 端口地址,但必须确保 9848 端口可访问(2025 年 7 月 25 日资料)。

Nacos 2.0 版本客户端连接服务端报错 Connection refused 怎么解决

5. 日志排查:检查 Nacos 服务器日志(通常在 logs 目录下)以及客户端日志,真实报错包含com.alibaba.nacos.shaded.io.grpc.netty.shaded.io.netty.channel.AbstractChannel$AnnotatedConnectException(2025 年 7 月 25 日资料)。

参考来源

来源:技术博客 - Nacos 2.0 端口配置全解析:解决 Client not connected 异常的关键步骤(2026 年 3 月 12 日)

来源:开发者社区 - Nacos2.0 启动遇到错误以及解决方法(2022 年 8 月 1 日)

来源:脚本之家 - 解决 Nacos 成功启动但是无法访问 (Connection refused)(2024 年 6 月 3 日)

来源:云原生技术论坛 - 解决 Docker 部署连接 Nacos 报错:Connection refused(2024 年 1 月 17 日)