排查和解决CentOS系统上Nacos服务启动报错“java.net.UnknownHostException: jmenv.tbsite.net“问题

Nacos服务因无法连接jmenv.tbsite.net导致启动失败。在不指定-N参数时,Nacos尝试注册到此服务中心。通过添加-mstandalone参数启动,可使Nacos进入单机模式,避免外部注册,从而成功启动。

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

背景

环境是CentOS7操作系统,nacos服务宕掉了,启动服务的时候报错。

Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.boot.web.servlet.FilterRegistrationBean]: Factory method ‘distroFilterRegistration’ threw exception; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name ‘distroFilter’: Unsatisfied dependency expressed through field ‘distroMapper’; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name ‘distroMapper’ defined in URL [jar:file:/usr/local/nacos/nacos/target/nacos-server.jar!/BOOT-INF/lib/nacos-naming-1.3.1.jar!/com/alibaba/nacos/naming/core/DistroMapper.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘serverMemberManager’ defined in URL [jar:file:/usr/local/nacos/nacos/target/nacos-server.jar!/BOOT-INF/lib/nacos-core-1.3.1.jar!/com/alibaba/nacos/core/cluster/ServerMemberManager.class]: Bean instantiation via constructor failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.alibaba.nacos.core.cluster.ServerMemberManager]: Constructor threw exception; nested exception is ErrCode:500, ErrMsg:jmenv.tbsite.net

Caused by: java.net.UnknownHostException: jmenv.tbsite.net
at java.base/java.net.InetAddress$CachedAddresses.get(InetAddress.java:797)
at java.base/java.net.InetAddress.getAllByName0(InetAddress.java:1505)
at java.base/java.net.InetAddress.getAllByName(InetAddress.java:1364)
at java.base/java.net.InetAddress.getAllByName(InetAddress.java:1298)

排查

1、查看nacos服务是否启动

ps -ef|grep nacos

在这里插入图片描述
这里发现服务并未启动

2、定位nacos服务位置

whereis nacos

在这里插入图片描述

3、尝试启动nacos

进入nacos的bin目录(这里LZ的目录是/usr/local/nacos/nacos/bin),运行启动脚本startup.sh启动nacos服务
在这里插入图片描述

sh startup.sh

4、查看启动日志

进入nacos的logs目录(这里LZ的目录是/usr/local/nacos/nacos/logs),使用tail命令查看实时日志。

tail -fn 500 start.out

就查看到了上述java.net.UnknownHostException: jmenv.tbsite.net错误了

解决

启动时指定参数-m standalone单机模式启动就可以了

sh startup.sh -m standalone

这是为什么呢,原因

原来是nacos启动模式未设置导致的,在没有使用-n参数去指定 Nacos Server 的名称的情况下,Nacos默认会将自己注册到一个命名空间为"jmenv.tbsite.net"的服务中心中。如果你的服务器无法连接到该服务中心,就会导致启动失败。而通过指定-m standalone参数,启动Nacos单机模式,就可以避免这个问题,因为在单机模式下,Nacos不会去注册到任何服务中心中,而是直接启动自己的服务。

在这里插入图片描述

### Java网络连接被拒绝错误的解决方案 #### 一、理解`java.net.ConnectException: Connection refused` 当遇到 `java.net.ConnectException: Connection refused` 错误时,表明客户端尝试与目标服务器建立TCP/IP连接失败。此情况可能源于多种因素,包括但不限于服务端程序未运行、防火墙阻止访问或是配置不当等问题[^2]。 #### 二、排查步骤 #### (一)确认服务状态 确保目标机器上的对应服务已正常启动并监听预期端口。可以通过命令行工具如`netstat -an | grep <port>`来验证特定端口号是否处于监听状态。对于Linux环境下的SSH服务,则需特别留意openssh-server包是否已经正确安装并激活[^4]。 #### (二)检查网络可达性 利用ping指令测试两台计算机之间的基本连通状况;采用telnet或nc(netcat)尝试直接发起TCP请求至目的地址及端口组合,以此判断是否存在路由层面障碍或者远程主机对该连接进行了主动拒绝操作。 #### (三)审查安全策略设置 评估本地以及远端系统的防火墙规则集,必要时临时调整允许必要的入站流量通过。还需关注SELinux(针对某些Linux发行版)等更高级别的权限控制系统是否会干扰正常的通信流程[^3]。 #### (四)校验应用程序逻辑 仔细审阅涉及网络交互部分的应用源码,特别是负责创建Socket实例之处,确保参数设定无误——比如IP地址书写形式准确、端口数值范围合理合法等细节均不容忽视。 ```bash # Linux环境下查看指定端口占用情况 sudo lsof -i :<your_port> ``` #### (五)考虑虚拟化平台特性影响 若是基于VMware或其他类似技术构建起来的实验环境中遇到了此类难题,那么应当考虑到宿主机同来宾操作系统间网络架构设计所带来的潜在副作用。例如,在案例描述里提到过关于CentOS8系统上由于更改了默认网卡映射关系而导致原有软件无法按既定方式工作的情形。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

热心码民阿振

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值