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 | 4ga Boards |
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 使用命令行部署(可选)
如果想要命令行方式部署容器,可参考以下示例:
在这里插入代码片
5.3 编辑部署文件
在`部署目录下,创建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.4 创建Nexus Terminal容器
执行以下命令,创建Nexus Terminal容器。
docker compose up -d
5.5 查看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 都能显著提升效率与使用体验。