Docker环境下部署Nexus Terminal:打造专属的高颜值SSH工作站
Docker环境下部署Nexus Terminal:打造专属的高颜值SSH工作站
一、Nexus Terminal介绍
1.1 Nexus Terminal简介
Nexus Terminal 是一款现代化的 Web SSH / RDP / VNC 客户端,提供独立桌面端应用,集成了高级安全机制与丰富的用户功能,适用于开发者、运维人员及企业团队,实现高效、安全的远程连接与管理。
1.2 Nexus Terminal主要特点
多标签页管理 SSH 与 SFTP 连接
支持多个远程连接在同一界面中以标签页形式并行操作,提升工作效率。支持 RDP/VNC 协议
内建对 Windows 远程桌面和 VNC 的支持,满足多样化远程控制需求。支持 PWA(渐进式 Web 应用)
可安装为类原生应用,离线使用并具备推送通知等现代 Web 特性。采用 Monaco Editor,在线编辑文件
提供类似 VS Code 的代码编辑体验,支持语法高亮与智能补全。集成多重登录安全机制,包括人机验证与双因素认证(2FA)
增强账户安全,防止自动化攻击和未授权访问。高度可定制的界面主题与布局风格
用户可根据个人喜好自定义外观与界面布局,提升使用舒适度。内置简易 Docker 容器管理面板
快速查看和管理本地或远程服务器上的容器服务,简化 DevOps 流程。支持 IP 白名单与黑名单,异常访问自动封禁
提供网络层安全防护,阻止非法 IP 接入并自动防御暴力破解。通知系统(如登录提醒、异常告警)
实时推送关键事件通知,帮助用户掌握账户动态与系统状态。审计日志,全面记录用户行为与系统变更
所有操作均有详细日志追踪,便于合规审查与问题回溯。基于 Node.js 的轻量级后端,资源占用低
高性能且低开销的后端架构,易于部署和维护。内置心跳保活机制,确保连接稳定
自动检测并维持连接活跃状态,避免因超时断开影响工作。
二、本次实践规划
2.1 本地环境规划
本次实践为个人测试环境,操作系统版本为Ubuntu 22.04.1。
hostname IP地址 操作系统版本 Docker版本 部署项目 jeven01 192.168.3.88 Ubuntu 22.04.1 LTS 27.1.1 Nexus Terminal
2.2 本次实践介绍
1.本次实践部署环境为个人测试环境,生产环境请谨慎; 2.在Docker环境下部署Nexus Terminal高颜值SSH客户端工具。
三、本地环境检查
3.1 检查Docker服务状态
检查Docker服务是否正常运行,确保Docker正常运行。
root@jeven01:~# systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2025-06-11 12:57:12 UTC; 1 week 0 days ago
TriggeredBy: ● docker.socket
Docs: https://docs.docker.com
Main PID: 848 (dockerd)
Tasks: 83
Memory: 3.2G
CPU: 29min 49.224s
CGroup: /system.slice/docker.service
├─ 848 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
3.2 检查Docker版本
检查Docker版本
root@jeven01:~# docker -v
Docker version 27.1.1, build 6312585
3.3 检查docker compose 版本
检查Docker compose版本,确保2.0以上版本。
root@jeven01:~# docker compose version
Docker Compose version v2.19.1
四、拉取Nexus Terminal镜像
拉取Nexus Terminal相关容器镜像,如下所示:
docker pull heavrnl/nexus-terminal-frontend:latest
docker pull heavrnl/nexus-terminal-backend:latest
docker pull heavrnl/nexus-terminal-remote-gateway:latest
docker pull guacamole/guacd:latest
五、部署Nexus Terminal容器
5.1 创建部署目录
创建部署目录
mkdir -p /data/nexus-terminal && cd /data/nexus-terminal
5.2 编辑部署文件
在`部署目录下,创建docker-compose.yaml文件,如下所示:
vim docker-compose.yaml
services:
frontend:
image: heavrnl/nexus-terminal-frontend:latest
container_name: nexus-terminal-frontend
ports:
- "18111:80"
depends_on:
- backend
- remote-gateway
backend:
image: heavrnl/nexus-terminal-backend:latest
container_name: nexus-terminal-backend
volumes:
- ./data:/app/data
environment:
NODE_ENV: production
PORT: 3001
DEPLOYMENT_MODE: docker # local/docker
REMOTE_GATEWAY_API_BASE_LOCAL: http://192.168.0.197:9090
REMOTE_GATEWAY_API_BASE_DOCKER: http://remote-gateway:9090
REMOTE_GATEWAY_WS_URL_LOCAL: ws://192.168.0.197:8080
REMOTE_GATEWAY_WS_URL_DOCKER: ws://remote-gateway:8080
# passkey
RP_ID: "192.168.0.197"
RP_ORIGIN: "http://192.168.0.197:18111"
remote-gateway:
image: heavrnl/nexus-terminal-remote-gateway:latest
container_name: nexus-terminal-remote-gateway
environment:
GUACD_HOST: guacd
GUACD_PORT: 4822
REMOTE_GATEWAY_API_PORT: 9090
REMOTE_GATEWAY_WS_PORT: 8080
FRONTEND_URL: http://frontend
MAIN_BACKEND_URL: http://backend:3001
NODE_ENV: production
depends_on:
- guacd
- backend
guacd:
image: guacamole/guacd:latest
container_name: nexus-terminal-guacd
restart: unless-stopped
root@jeven01:/data/nexus-terminal#
root@jeven01:/data/nexus-terminal# vim docker-compose.yaml
root@jeven01:/data/nexus-terminal# cat docker-compose.yaml
services:
frontend:
image: heavrnl/nexus-terminal-frontend:latest
container_name: nexus-terminal-frontend
ports:
- "18111:80"
depends_on:
- backend
- remote-gateway
backend:
image: heavrnl/nexus-terminal-backend:latest
container_name: nexus-terminal-backend
volumes:
- ./data:/app/data
environment:
NODE_ENV: production
PORT: 3001
DEPLOYMENT_MODE: docker # local/docker
REMOTE_GATEWAY_API_BASE_LOCAL: http://192.168.3.88:9090
REMOTE_GATEWAY_API_BASE_DOCKER: http://remote-gateway:9090
REMOTE_GATEWAY_WS_URL_LOCAL: ws://192.168.3.88:8080
REMOTE_GATEWAY_WS_URL_DOCKER: ws://remote-gateway:8080
# passkey
RP_ID: "192.168.3.88"
RP_ORIGIN: "http://192.168.3.88:18111"
remote-gateway:
image: heavrnl/nexus-terminal-remote-gateway:latest
container_name: nexus-terminal-remote-gateway
environment:
GUACD_HOST: guacd
GUACD_PORT: 4822
REMOTE_GATEWAY_API_PORT: 9090
REMOTE_GATEWAY_WS_PORT: 8080
FRONTEND_URL: http://frontend
MAIN_BACKEND_URL: http://backend:3001
NODE_ENV: production
depends_on:
- guacd
- backend
guacd:
image: guacamole/guacd:latest
container_name: nexus-terminal-guacd
restart: unless-stopped
5.3 创建Nexus Terminal容器
执行以下命令,创建Nexus Terminal容器。
5.4 查看Nexus Terminal容器状态
检查Nexus Terminal容器运行状态,确保Nexus Terminal容器正常启动。
root@jeven01:/data/nexus-terminal# docker compose ps
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
nexus-terminal-backend heavrnl/nexus-terminal-backend:latest "docker-entrypoint.s…" backend 5 minutes ago Up 5 minutes 3001/tcp
nexus-terminal-frontend heavrnl/nexus-terminal-frontend:latest "/docker-entrypoint.…" frontend 5 minutes ago Up 5 minutes 0.0.0.0:18111->80/tcp, [::]:18111->80/tcp
nexus-terminal-guacd guacamole/guacd:latest "/opt/guacamole/entr…" guacd 5 minutes ago Up 5 minutes (healthy) 4822/tcp
nexus-terminal-remote-gateway heavrnl/nexus-terminal-remote-gateway:latest "docker-entrypoint.s…" remote-gateway 5 minutes ago Up 5 minutes 8081/tcp, 9090/tcp
六、访问Nexus Terminal服务
浏览器地址:
http://<个人的服务器IP>:18111,访问Nexus Terminal的初始页。如果无法访问,请确保宿主机的防火墙已关闭或已放行相关端口,对于云服务器还需配置相应的安全组规则。

自定义填写登录账号密码,确认创建账号。


七、Nexus Terminal基本使用
7.1 添加服务器
依次点击终端——连接列表——添加第一个连接,进入服务器登录信息配置页面。
在这里插入图片描述
在这里插入图片描述这里填写宿主机服务器作为测试,填写登录信息完毕后,点击【确认添加】。
在这里插入图片描述在这里插入图片描述
添加完成后双击服务器名称即可完成SSH远程登录,如下所示:
在这里插入图片描述7.2 快速编辑文件
在下方的文件列表中,选择文件后,即可在左侧区域打开文件进行编辑。

7.3 审计日志
系统中的所有操作日志均可在审计日志中查询到,便于追踪与审查。通过审计日志,可以全面了解系统的操作记录,提升安全性和可维护性。

八、总结
通过 Docker 部署 Nexus Terminal,不仅能够快速搭建起一个高颜值、功能强大的 SSH 客户端工具,还能充分利用容器化带来的环境隔离与部署便捷性。整个过程操作简单,适合各类用户快速上手。无论是日常运维还是远程管理,Nexus Terminal 都能显著提升效率与使用体验。
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

