【服务端口】nacos启动成功,控制台访问不到

在本地运行Nacos的Docker容器时,由于防火墙配置问题导致无法从本地访问。通过检查端口、放开8848/tcp端口、重载防火墙配置、关闭防火墙以及重启Docker服务,最终解决了Nacos容器的外部连接问题。

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

在使用nacos的过程中,在本地虚拟中通过docker容器运行成功,但是本地却访问不了,最后发现是对应的服务端口没有放开,导致连接建立不起来。

 

下面记录一下命令:

1. 查看端口是否方法

[root@localhost ~]# firewall-cmd --query-port=8848/tcp
no

2. 放开端口

[root@localhost ~]# firewall-cmd --add-port=8848/tcp --permanent
success

# 如需移除放开的端口
firewall-cmd --permanent --remove-port=8848/tcp

3. 重新载入添加的端口

[root@localhost ~]# firewall-cmd --reload
success

4. 确认配置是否生效

[root@localhost ~]# firewall-cmd --query-port=8848/tcp
yes

如此设置之后还是访问不了,遂直接使用以下命令关闭防火墙,还是不行;

防火墙状态相关命令:

# 查看防火墙运行状态
[root@localhost ~]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
   Active: active (running) since 日 2022-11-06 21:11:48 CST; 3 months 7 days ago
     Docs: man:firewalld(1)
 Main PID: 1076 (firewalld)
    Tasks: 2
   Memory: 8.9M
   CGroup: /system.slice/firewalld.service
           └─1076 /usr/bin/python2 -Es /usr/sbin/firewalld --nofork --nopid


# 关闭防火墙
[root@localhost ~]#
[root@localhost ~]#
[root@localhost ~]# systemctl stop firewalld

最后想到重启nacos容器,但是删除之后重新运行时候遇到以下iptables错误(iptables: No chain/target/match by that name.):

[root@localhost ~]# docker run -itd -p 8848:8848 \
> --name nacos \
> --network mysql-network \
> --ip 172.0.0.28 \
> --env MODE=standalone \
> --env SPRING_DATASOURCE_PLATFORM=mysql \
> --env MYSQL_SERVICE_HOST=172.0.0.5 \
> --env MYSQL_SERVICE_PORT=3306 \
> --env MYSQL_SERVICE_DB_NAME=nacos \
> --env MYSQL_SERVICE_USER=nacos \
> --env MYSQL_SERVICE_PASSWORD=nacos \
> nacos/nacos-server:latest
cf2a10f1fdff2fdd937c90da936411eebf91e4a6290edfbac6075b5e9815fcf5
docker: Error response from daemon: driver failed programming external connectivity on endpoint nacos (16d40001093cf27162dcc2440391a243989d532b356ddfc6b1e1e8aee66d0195):  (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 8848 -j DNAT --to-destination 172.0.0.28:8848 ! -i br-c9eca8333ecc: iptables: No chain/target/match by that name.
 (exit status 1)).

最后通过重启docker,重新运行nacos访问成功。

[root@localhost ~]# systemctl restart docker
[root@localhost ~]# docker rm -f nacos
nacos
[root@localhost ~]# docker run -itd -p 8848:8848 \
> --name nacos \
> --network mysql-network \
> --ip 172.0.0.28 \
> --env MODE=standalone \
> --env SPRING_DATASOURCE_PLATFORM=mysql \
> --env MYSQL_SERVICE_HOST=172.0.0.5 \
> --env MYSQL_SERVICE_PORT=3306 \
> --env MYSQL_SERVICE_DB_NAME=nacos \
> --env MYSQL_SERVICE_USER=nacos \
> --env MYSQL_SERVICE_PASSWORD=nacos \
> nacos/nacos-server:latest
effdf773e7de12d868d8518c4f347728f723f49c1136f781ba9c6488d97533c7

<think>好的,用户的问题是关于如何在Nacos中更改已经启动的服务实例的端口号配置。我需要先理解用户的具体需求,然后结合提供的引用内容给出准确的回答。 首先,用户提到的是“已启动的服务实例”,这意味着服务已经在运行中,可能需要动态修改端口,或者重新配置后重启。根据引用内容,Nacos的端口配置主要在服务端和客户端两个方面。引用1、4、5提到了修改Nacos服务端本身的端口,比如通过application.properties文件更改server.port,但用户的问题是关于服务实例的端口,也就是注册到Nacos中的微服务实例的端口,而不是Nacos服务端自己的端口。 接下来需要看客户端的配置。引用3提到客户端启动时会读取配置文件或环境变量中的Nacos服务端地址、端口等信息,但这里指的是客户端连接Nacos服务端的配置,而不是服务实例自身的端口。因此,要修改服务实例的端口,应该是在服务实例自身的配置文件中设置,比如Spring Boot应用的application.yml中的server.port属性。 但用户可能误解了Nacos是否可以动态修改已经运行的实例端口。实际上,服务实例启动后,端口已经绑定,无法动态更改,必须重启应用。因此,正确的步骤应该是修改服务实例的配置文件中的端口号,然后重新启动应用,使其以新端口注册到Nacos。同时,确保Nacos服务端配置正确,客户端配置指向正确的Nacos地址。 需要确认引用中是否有相关部分支持这一点。引用3提到客户端初始化时会读取配置,所以如果修改了服务实例的端口配置并重启,客户端会重新注册新的端口到NacosNacos服务端不需要修改,只需确保客户端配置正确。 总结步骤:1. 修改服务实例的配置文件中的端口;2. 重启服务实例;3. 验证新端口是否注册到Nacos。同时,如果Nacos服务端端口需要修改,则需修改其application.properties并重启,但用户的问题不涉及这个。 可能用户混淆了Nacos服务端端口和服务实例端口,需要明确区分。此外,引用中没有提到动态修改端口的方法,因此只能通过重启解决。</think>在Nacos中修改已启动服务实例的端口号配置需要根据服务注册方式分步操作: ### 一、服务实例端口修改步骤 1. **定位配置文件** 找到对应服务实例的配置文件(如Spring Boot项目的$application.yml$或$bootstrap.yml$),修改$server.port$参数: ```yaml server: port: 新端口号 ``` *注:此修改仅影响服务实例自身的监听端口* 2. **更新Nacos配置中心(如使用配置管理)** 若端口号通过Nacos配置中心管理,需在Nacos控制台修改对应$Data ID$的配置内容,并发布新配置[^3]。 3. **重启服务实例** 重新启动服务实例,客户端初始化时会自动读取新端口号,并通过TCP长连接向Nacos服务端更新实例信息。 ### 二、Nacos服务端验证 1. 登录Nacos控制台,进入「服务列表」 2. 检查目标服务的实例列表 3. 确认实例IP地址后显示的新端口号已生效 ### 三、特殊场景说明 若需修改Nacos服务端自身的端口(非注册服务实例端口),需修改$conf/application.properties$中的$server.port$参数,并重启Nacos服务端[^4][^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值