想在浏览器里远程 SSH 到服务器?甚至还能用 RDP、VNC、在线编辑文件、管理容器?
Putty、Xshell、FinalShell、MobaXterm、WinSCP、猫头鹰等这些管理工具笔者都用过,好用但弃用已经蛮久。
咋说呢,他们在常用的PC端装一个确实方便,但临时设备就不成了。另外玩NAS和各种服务器时间一长,慢慢觉得客户端有种「臃肿感」,巴不得全靠轻量的WEB端解决。在探索的过程中我发现了WEBSSH这款工具,支持Docker部署并通过网页终端连接以及文件上传操作。
从发现到使用至今已经一年多,非常喜欢这个项目。但就在近期,我又发现了一个更棒的:星枢终端(Nexus Terminal)。星枢终端(Nexus Terminal)是一款现代化、功能丰富、开源的Web SSH / RDP / VNC客户端,致力于提供高度可定制的远程连接体验。提供独立的本地桌面端。
星枢终端(Nexus Terminal)
首款现代化的Web SSH / RDP / VNC客户端,同时也提供独立桌面端,支持人机验证、2FA、界面定制、操作审计等强大功能。
✨ 功能特点
- 多标签页面管理 SSH 与 SFTP 连接
- 支持RDP/VNC协议
- 支持渐进式Web应用
- 采用Monaco Editor,支持在线编辑文件
- 集成时钟登录安全机制,包括人机验证(hCaptcha、Google reCAPTCHA)与双角色认证(2FA)
- 高度可定制的界面主题与布局风格
- 内置简单的 Docker 容器管理面板,包含容器运维
- 支持IP白名单与黑名单,异常访问自动封禁
- 通知系统(如登录提醒、异常相似)
- 审计日志,全面记录用户行为与系统变更
- 基于 Node.js 的轻量级,资源占用低
- 内置心跳保活机制,确保连接稳定
⚠️注意:建议在 Debian(AMD64 架构)环境中部署,因本人无 ARM 设备,无法保证其兼容性。
部署流程
以威联通NAS为例,通过Docker Compose的方式进行部署。其他平台也都大差不差,可作参考。
纯内网部署代码如下,可以先不着急部署,看看下文的注释部分(改外网):
version: '3.8' # 最新版Docker Compose删除该行
services:
frontend:
image: heavrnl/nexus-terminal-frontend:latest # # Web 前端界面服务
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
environment:
NODE_ENV: production # 设置为生产环境,非调试开发不要动
PORT: 3001
# 以下是 remote-gateway 的连接配置
# LOCAL 用于容器内部请求自身,可保留默认 localhost,不建议填物理机 IP
DEPLOYMENT_MODE: docker
REMOTE_GATEWAY_API_BASE_LOCAL: http://localhost:9090
REMOTE_GATEWAY_API_BASE_DOCKER: http://remote-gateway:9090
REMOTE_GATEWAY_WS_URL_LOCAL: ws://localhost:8080
REMOTE_GATEWAY_WS_URL_DOCKER: ws://remote-gateway:8080
# 以下为 WebAuthn(如 2FA、Passkey 登录)用的配置
# 若启用,请使用你访问 Nexus 的实际地址
# 若未启用,可留默认 localhost,也可以删掉
# 下文详细说
RP_ID: 192.168.200.132 # 用于身份验证的“域名”或 IP,需和实际访问一致
RP_ORIGIN: http://192.168.200.132:18111 # 必须与浏览器地址栏实际访问地址一致
volumes:
- /share/Container/nexus-terminal/data:/app/data # 数据持久化目录,请根据实际路径调整
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 # Apache Guacamole 后端服务
container_name: nexus-terminal-guacd
restart: unless-stopped
若要全内网访问,不启用WebAuthn,最推荐写法(安全+省事):
# 表示使用默认本地环境
RP_ID: localhost
RP_ORIGIN: http://localhost
如果你将来启用 WebAuthn / Passkey 登录:
RP_ID: 192.168.200.132
RP_ORIGIN: http://192.168.200.132:18111
如果希望内网和外网都可以访问 Nexus Terminal,并且能使用 WebAuthn(比如 Passkey 登录、双因素认证):
RP_ID: xxx.xxx.com
RP_ORIGIN: https://xxx.xxx.com
# 后者必须与浏览器地址栏实际访问地址一致,着重注意端口号!
决定好部署的访问方式后,将代码修改完毕后打开Docker管理工具,威联通这里是Container Station,创建新的应用程序。
访问使用
如果内网访问,浏览器直接输入NAS_IP:18111,初次需要设置账户密码。界面如下。
我自然是选择的接通外网,采用上文的第三种部署方式,预先进行反向代理,填入域名相关的信息。
登入完毕后,点击顶部的「终端」,添加连接设备。
这里通过SSH访问我的一台HK云服务器。当然也有很多其他访问方式可选。如下图。
然后点击顶部栏「仪表盘」,选择链接即可。可以看到旁边还有访问日志。
功能相当不错,可以批量创建指令、在线传输、编辑文件、显示服务器状态等等,非常实用!
点击左侧那个Docker图标,还会显示出已安装的Docker容器。还可进行快捷操作,算是轻量的管理功能吧~其实这个VPS,就是我用来给大家提供免费Docker镜像加速地址的本尊😂。
可添加事件通知,通知渠道目前支持三类。
操作审计功能也相当实用。
设置中还支持:界面工作板块调整、Passkey 管理、启用两步验证、IP黑/白名单管理、数据导出备份、外观更改、更新提醒等功能。这里我就不一一详细介绍。
桌面客户端
这个不多讲,大家有需要自行取用。
最后
我个人认为非常棒的一个项目,之前的webssh工具已经删除哈哈哈~
另外刚开始就觉得这个作者很面熟,翻找了下我的库存,果然!
这个项目之前咱介绍过,也还在继续用~一款通用论坛屏蔽插件。
评论区