0 %

【使用Tips】端口冲突相关的判断方法以及如何解决

2026-06-11 04:21:17

背景

本文主要介绍了在社区版产品中出现端口冲突的原因、影响,以及判断、避免和解决端口冲突的方法。同时本文还整理了端口连通性测试的常用方法以及社区版Inceptor的常用端口,方便使用者对其进行查看使用。

所谓的端口,就好像是门牌号一样,客户端可以通过ip地址找到对应的服务器端,但是服务器端是有很多端口的,每个应用程序对应一个端口号,通过类似门牌号的端口号,客户端才能真正的访问到该服务器。为了对端口进行区分,将每个端口进行了编号,这就是端口号。按协议类型划分,可以分为TCP、UDP、IP和ICMP(Internet控制消息协议)等端口。

在社区版中,我们运行用户在同一集群中同时安装多个相关的服务。当集群中已存在正常运行的服务并占据了对应的端口,此时,若在该服务器上重复安装相同的服务时并按照默认端口运行,新安装的服务由于默认端口已经被占据,所以就会产生端口冲突导致服务无法正常安装。

端口冲突的影响

1. 对于出现端口冲突的服务,该服务无法正常安装并运行。

端口冲突不会对处于正常运行中的服务有任何影响,只会使当前未开启的服务无法正常启动。

2. 另外,同安装进程中其他等待安装的服务,由于端口冲突服务的安装失败,导致后续安装的服务无法正常运行安装。

如何避免端口冲突

方法1:

社区版允许添加多个服务,比如Quark是可以按需配置多个,不仅可以用于高可用的场景,也可以基于集群规划进行资源分配,按照业务切等等。因此如果要安装在同一节点上时,可以在安装的【服务配置】步骤中对默认端口号进行更改,避免重复安装服务导致的默认端口冲突的问题。但如果 Quark 安装在不同节点的话,比如 quark1 在 IDC1,quark2 在 IDC2,那两个服务的端口一样也可以。

端口更改可参考文末的常用端口合集。

方法2:

在使用某个端口或是更改端口号是,建议用户在Linux系统终端使用netstat命令查询端口的使用情况。

a. 查看某个具体端口的占用情况:

netstat -anp | grep

b. 查看全部端口占用情况:

netstat -anp

//或

netstat -tln

出现端口冲突的常见报错信息

通常报错如下

Failed to bind to: /0.0.0.0:51888 Caused by: java.net.BindException: Address already in use a

报错中一般会直接报出冲突的端口号,比如该报错中冲突的端口号为 51888。

解决方法

① Manager 对应服务配置中查看该端口号对应信息。

② 运行命令查出端口冲突的进程 ID:

netstat -anp | grep

③ 查出具体哪些服务端口冲突:

ps -ef | grep

④ 根据情况前往manager对应服务的配置项修改对应的port即可(通常默认+10)。

如何解决端口冲突

对于发生端口冲突导致不可用的服务,确定其冲突的端口参数之后在【服务-配置】界面对端口参数进行修改,修改后点击右上角的配置服务,然后重启该服务即可。如下所示:

其他获取冲突端口的方式

当服务安装失败时,可以进入集群中的任意节点,运行kubectl获取pod运行在节点上的信息:

kubectl get po -owide |grep

kubectl logs -f <有问题的podid>

输出结果示例如下,下方示例可以看出该服务的端口METASTORE_PORT]的默认端口号9093发生了冲突:

mysql: [Warning] Using a password on the command line interface can be insecure.

+ return 0

++ grep 'data-dictionary\b' /tmp/tmp.hRA8UHvmzd

++ wc -l

+ '[' 1 == 0 ']'

+ return 0

+ set -e

+ checkPort METASTORE_PORT 9093

+ set +x

ERROR: port [9093] for [METASTORE_PORT] has been bound!

端口连通性测试

1)SSH测试:SSH最常用的功能之一就是实现远程登录主机,可以用指定端口号登录的方式来测试端口连通性。测试过程中出现“Connection established”关键字表示端口通,出现“Connection refused”关键字则不通。此方法适用于TCP协议

ssh -v -p

2)Telnet测试:telnet命令可以进行远程登录计算机,也可以来测试端口的连通性。测试过程中出现“Connection refused”关键字则不通。此方法适用于TCP协议

telnet

3)Wget测试:wget是一个下载文件的工具,支持http,https,ftp协议,可用于测试端口连通性。

wget

4)NC(Netcat)测试:nc是一个功能强大的网络工具,对于端口连通性测试来说支持TCP和UDP协议端口测试,也可以对指定范围内的端口进行批量扫描。

nc -vuz

社区版常用端口合集

一些排错示例

示例一. 通过TOS启动yarn-nodemanager一个节点启动失败,pod无法启动,状态显示CCrashLoopBackOff

【核心原因】

运行kubectl命令后获取pod运行在节点上的信息,通过hadoop-yarn-nodemanager的日志发现是端口被kube-apiserv服务占用。

【解决方法】

参考前述内容<怎么判断是出现了端口冲突>以及<其他获取冲突端口信息的方式>章节获取服务端口信息,按照<如何解决端口冲突>章节内容修改对应端口即可。

示例二. 初始化HDFS失败,启动NameNode报错

【核心原因】

查看日志后显示端口被占用

【解决方法】

参考前述章节<怎么判断是出现了端口冲突>以及<其他获取冲突端口信息的方式>章节获取服务端口信息,按照<如何解决端口冲突>章节内容修改对应端口即可。

示例三. 启动Quark失败,查看/var/log下的server日志,报错显示“Failed to bind SparkUI, java.net.BindException:Address already in use (Bind failed): Service‘SparkUI’failed after 0 retries!”

【核心原因】

可以参考前文的端口清单,可以看到是8888端口存在冲突情况,被其他进程占用了。

【解决方法】

Manager访问服务配置列表,修改端口号之后点击右上角配置服务然后重启服务即可。

以上就是有关端口冲突的相关问题及应对方法,希望对您有所帮助,如果您遇到了相同的问题,欢迎您多多留言🤝

Posted in 世界杯小组赛分组
Copyright © 2088 2034年世界杯_足球中国世界杯预选赛 - qdhuaxue.com All Rights Reserved.
友情链接