一、概述
JumpServer 堡垒机运行过程中一般会占用多个端口以提供各项服务,例如 HTTP 服务端口、SSH 服务端口以及 Magnus 组件连接各类数据库的端口等。当这些端口与服务器上其他运行的服务端口发生冲突时,可通过修改 JumpServer 自身的端口配置来解决冲突问题。本文将详细介绍具体的操作步骤。
二、检查端口冲突情况
在修改端口配置前,需先确认 JumpServer 所占用的端口与哪些服务存在冲突。可通过以下命令查看系统当前端口占用情况:
# 查看所有监听状态的 TCP 端口及对应服务
netstat -nltp在输出结果中,重点关注 JumpServer 常用的端口(如 80、2222、33061、33062、63790、54320 等),确认是否有其他进程占用这些端口。
三、修改 JumpServer 端口配置
3.1 找到配置文件
JumpServer 的端口配置主要存放在其配置文件中,默认路径为:/opt/jumpserver/config/config.txt
3.2 主要端口配置项说明及修改
打开配置文件进行编辑:
vi /opt/jumpserver/config/config.txt配置文件中与端口相关的主要选项如下(根据实际冲突情况修改对应项):
################################## 访问配置 ###################################
# 对外提供服务端口, 如果与现有服务冲突请自行修改
HTTP_PORT=80 # HTTP 访问端口,若与 web 服务(如 Nginx/Apache)冲突可修改
HTTPS_PORT=443 # HTTPS 访问端口,若与其他 HTTPS 服务(如 Nginx 443 端口)冲突可修改
SSH_PORT=2222 # SSH 客户端访问端口,若与其他服务冲突可修改
RDP_PORT=3389 # RDP 客户端访问端口,若与其他服务冲突可修改
XRDP_PORT=3390 # XRDP 客户端访问端口,若与其他服务冲突可修改
MAGNUS_MYSQL_PORT=33061 # 数据库客户端访问端口(MySQL),若与其他服务冲突可修改
MAGNUS_MARIADB_PORT=33062 # 数据库客户端访问端口(MariaDB),若与其他服务冲突可修改
MAGNUS_REDIS_PORT=63790 # 数据库客户端访问端口(Redis),若与其他服务冲突可修改
MAGNUS_POSTGRESQL_PORT=54320 # 数据库客户端访问端口(PostgreSQL),若与其他服务冲突可修改
MAGNUS_SQLSERVER_PORT=14330 # 数据库客户端访问端口(SQL Server),若与其他服务冲突可修改
MAGNUS_ORACLE_PORT=15210 # 数据库客户端访问端口(Oracle),若与其他服务冲突可修改
MAGNUS_MONGODB_PORT=27018 # 数据库客户端访问端口(MongoDB),若与其他服务冲突可修改3.3 重启 JumpServer
修改完成后重新启动 JumpServer 即修改完成。重启命令如下:
jmsctl restart
或
cd /opt/jumpserver-offline-installer-版本号-系统架构-补丁/
./jmsctl.sh restart重启完成后查看系统状态。
root@ubuntu22:~# jmsctl status
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
jms_celery registry.fit2cloud.com/jumpserver/core:v4.10.4-ee "./entrypoint.sh sta…" celery 4 weeks ago Up 11 days (healthy) 8080/tcp
jms_chen registry.fit2cloud.com/jumpserver/chen:v4.10.4-ee "./entrypoint.sh wisp" chen 4 weeks ago Up 4 weeks (healthy) 8082/tcp
jms_core registry.fit2cloud.com/jumpserver/core:v4.10.4-ee "./entrypoint.sh sta…" core 4 weeks ago Up 11 days (healthy) 8080/tcp
jms_facelive registry.fit2cloud.com/jumpserver/facelive:v4.10.4-ee "./entrypoint.sh" facelive 4 weeks ago Up 4 weeks (healthy) 9999/tcp
jms_koko registry.fit2cloud.com/jumpserver/koko:v4.10.4-ee "./entrypoint.sh ./k…" koko 4 weeks ago Up 4 weeks (healthy) 0.0.0.0:2222->2222/tcp, :::2222->2222/tcp
jms_lion registry.fit2cloud.com/jumpserver/lion:v4.10.4-ee "./entrypoint.sh sup…" lion 4 weeks ago Up 4 weeks (healthy) 8081/tcp
jms_magnus registry.fit2cloud.com/jumpserver/magnus:v4.10.4-ee "./entrypoint.sh" magnus 4 weeks ago Up 8 days (healthy) 0.0.0.0:14330->14330/tcp, :::14330->14330/tcp, 0.0.0.0:15210->15210/tcp, :::15210->15210/tcp, 0.0.0.0:27018->27018/tcp, :::27018->27018/tcp, 0.0.0.0:33061-33062->33061-33062/tcp, :::33061-33062->33061-33062/tcp, 0.0.0.0:54320->54320/tcp, :::54320->54320/tcp, 8088/tcp, 0.0.0.0:63790->63790/tcp, :::63790->63790/tcp
jms_nec registry.fit2cloud.com/jumpserver/nec:v4.10.4-ee "./entrypoint.sh" nec 4 weeks ago Up 4 weeks (healthy) 0.0.0.0:15900->15900/tcp, :::15900->15900/tcp
jms_panda registry.fit2cloud.com/jumpserver/panda:v4.10.4-ee "./entrypoint.sh" panda 4 weeks ago Up 4 weeks (healthy) 9001/tcp
jms_razor registry.fit2cloud.com/jumpserver/razor:v4.10.4-ee "./entrypoint.sh" razor 4 weeks ago Up 4 weeks (healthy) 0.0.0.0:3389->3389/tcp, :::3389->3389/tcp
jms_video registry.fit2cloud.com/jumpserver/video-worker:v4.10.4-ee "./entrypoint.sh" video 4 weeks ago Up 4 weeks (healthy) 9000/tcp
jms_web registry.fit2cloud.com/jumpserver/web:v4.10.4-ee "/docker-entrypoint.…" web 4 weeks ago Up 4 weeks (healthy) 0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp在输出信息中查看 jms_magnus 使用的端口是否设置成功(以 MySQL 为例)。
root@ubuntu22:~# netstat -nltp | grep 33061
tcp 0 0 0.0.0.0:33061 0.0.0.0:* LISTEN 2365964/docker-prox
tcp6 0 0 :::33061 :::* LISTEN 2365974/docker-prox 四、总结
当 JumpServer 与其他服务发生端口冲突时,通过修改其配置文件 /opt/jumpserver/config/config.txt 中的对应端口项,再重启服务即可解决。关键在于先确认冲突的具体端口,再针对性地修改为未占用的端口,并通过状态检查验证修改效果。