nacos项目启动出现的bug Server check fail, please check server localhost ,port 9848 is available

启动Nacos遇到客户端报错,提示服务器检查失败。通过排查发现是由于配置文件中端口设置错误导致。解决方法是将application.yml中的Nacos配置转移至bootstrap中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

启动nacos的时候发现客户端报错了

[ main] c.a.n.c.remote.client.grpc.GrpcClient    : Server check fail, please check server localhost ,port 9848 is available , error ={}


java.util.concurrent.TimeoutException: Waited 3000 milliseconds (plus 15 milliseconds, 118500 nanoseconds delay) for com.alibaba.nacos.shaded.io.grpc.stub.ClientCalls$GrpcFuture@291373d3[status=PENDING, info=[GrpcFuture{clientCall={delegate={delegate=ClientCallImpl{method=MethodDescriptor{fullMethodName=Request/request, type=UNARY, idempotent=false, safe=false, sampledToLocalTracing=true, requestMarshaller=com.alibaba.nacos.shaded.io.grpc.protobuf.lite.ProtoLiteUtils$MessageMarshaller@58ba5b30, responseMarshaller=com.alibaba.nacos.shaded.io.grpc.protobuf.lite.ProtoLiteUtils$MessageMarshaller@4dba773d, schemaDescriptor=com.alibaba.nacos.api.grpc.auto.RequestGrpc$RequestMethodDescriptorSupplier@1d9bd4da}}}}}]]

网上各种说是nacos版本不匹配的问题 后来发现是配置文件的bug

 有bootstrap的时候会采用nacos的默认配置 所以一直读取本地的端口 把写在application.yml的nacos配置转移到bootstrap里就行了

### Nacos Server Check Fail 端口 9848 不可用解决方案 当遇到 `Nacos Server check fail` 的错误提示时,通常是因为目标服务器上的指定端口(如 9848 或其他相关端口)未被正确开放或映射。以下是可能的原因分析以及相应的解决方法: #### 1. **确认 Docker 容器中的端口映射** 如果使用的是基于 Docker 的环境,则需要确保在启动容器时已正确映射了所需的端口。对于 Nacos 2.x 版本,默认情况下除了传统的 HTTP 注册端口 8848 外,还新增了一个用于 gRPC 长连接通信的端口 9848 和心跳检测端口 9849。 可以通过以下命令重新拉取镜像并设置正确的端口映射: ```bash docker run --name nacos-server -d \ -e MODE=standalone \ -p 8848:8848 \ -p 9848:9848 \ -p 9849:9849 \ nacos/nacos-server ``` 上述命令中 `-p` 参数指定了宿主机与容器之间的端口映射关系[^1]。 #### 2. **检查防火墙规则** 即使设置了端口映射,在某些环境中仍可能存在防火墙阻止外部访问的情况。因此需验证操作系统层面或者云平台的安全组策略是否允许这些特定端口的数据流入流出。 以 Linux 平台为例,可执行如下操作来临时关闭 SELinux 及 iptables 测试连通性效果: ```bash setenforce 0 # 关闭SELinux强制模式 iptables -F # 清空现有IP表规则集 service firewalld stop # 停止firewall守护进程(适用于CentOS/RHEL系列发行版) ``` 另外如果是部署于阿里云 ECS 实例之上,则还需要登录控制台界面手动添加对应条目至安全组白名单列表里去[^4]。 #### 3. **调整应用配置文件** 部分场景下可能是由于程序内部未能正确定位远程服务实例所引发的问题。此时建议仔细核对 spring-cloud-alibaba-nacos-discovery 组件内的属性定义项是否准确无误。例如常见的有以下几个地方需要注意修改成实际使用的 IP 地址而非 localhost 或者 127.0.0.1: ```yaml spring: cloud: nacos: discovery: server-addr: ${your_real_server_ip}:8848 config: server-addr: ${your_real_server_ip}:8848 ``` 其中 `${your_real_server_ip}` 应替换为你真实对外提供服务机器公网 IPv4 数字串形式表示法[^3]。 #### 4. **修正 Hosts 文件绑定异常** 有时候因 DNS 解析失败也会间接影响到整个系统的正常运转流程。所以有必要查看当前系统 hosts 表是否存在冲突记录干扰到了正常的域名解析逻辑。按照惯例做法应该把本地 loopback address 映射回标准名称之外再额外补充上物理网卡关联的真实 MAC Address 对应唯一标识符组合而成的新纪录进去即可消除此类隐患[^5]: 编辑 `/etc/hosts` 添加类似下面这样的行: ```plaintext 127.0.0.1 localhost.localdomain localhost ::1 localhost6.localdomain6 localhost6 <Your Real Machine IP> <Hostname> ``` 完成更改之后记得重启网络服务生效改动成果: ```bash sudo systemctl restart networking.service # OR sudo service network-manager restart ``` 通过采取以上措施基本能够有效应对大部分关于 “Nacos Server check fail” 类型故障现象的发生几率降到最低限度范围内去了。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值