飞牛 FnOS 三分钟部署 WebSSH:点点鼠标,把 Xshell 搬进浏览器
家里的 NAS 换成飞牛 FnOS 之后,我一直想找个能在浏览器里直接连各种服务器的工具,省得每台电脑、每部手机都去装 Xshell。折腾了一圈,最后选了 WebSSH:自托管的浏览器 SSH 客户端,风格贴近 Xshell,多标签、分屏、SFTP、隧道都有。
最舒服的是,它在飞牛上部署几乎零门槛:飞牛自带 Docker 图形界面,全程不需要敲一行命令,从搜镜像到打开页面,我实测不到三分钟。下面把完整步骤和截图整理出来,照着点就行。
项目地址:https://github.com/casualty01/web_ssh Docker 镜像:casualty01/web_ssh
开始之前:你需要准备什么
一台已经装好的飞牛 FnOS(物理机、虚拟机都可以,我这里是虚拟机,占用很小)
飞牛能正常联网,可以访问 Docker 镜像仓库
在存储空间里准备一个放数据的文件夹,用来保存会话、分组、隧道配置,之后迁移备份很方便
部署步骤(共 9 步)
第 1 步:打开飞牛的 Docker
在飞牛桌面找到 Docker 图标打开。进入后先在“概览”里看一眼:Docker 服务是开启状态,建议把“开机自动开启”也打开,这样 NAS 重启后容器能自动恢复。

图 1 打开飞牛自带的 Docker,确认服务正常
第 2 步:在镜像仓库里查找镜像
点击左侧的“镜像仓库”,在右上角搜索框输入 web_ssh,在结果中选择 casualty01/web_ssh 这一个(描述是 WebSSH: Self-hosted browser SSH client, Xshell-style)。注意别选成名字相近的其他镜像。

图 2 搜索 web_ssh,选择 casualty01/web_ssh
第 3 步:下载 latest 版本
点击该镜像右侧的下载按钮,弹出“选择标签”窗口,保持默认的 latest 即可,点“确认”,等待镜像下载完成。

图 3 镜像标签选择 latest
第 4 步:创建容器
镜像下载好后,在“本地镜像”里找到它,点击创建容器。镜像名称会自动带出 casualty01/web_ssh:latest,给容器起个名字,比如 web_ssh。资源限制可以不勾;我建议勾上“开机自动开启”,NAS 重启后 WebSSH 会自动起来。填好后点“下一步”。

图 4 填写容器名称,建议勾选开机自动开启
第 5 步:设置端口(被占用就改端口)
进入“高级设置”的“端口设置”。左边是飞牛上的本地端口,右边是容器端口。WebSSH 容器内部使用 8080,本地端口我填了 8088。

图 5 本地端口 8088 → 容器端口 8080(TCP)
小提示:如果你想用的本地端口已经被其他应用占用,只需要把左边的本地端口改成别的空闲端口(比如 8089、9000),右边的容器端口 8080 不要动。以后访问时用你改后的端口即可。
第 6 步:修改数据保存位置
往下滑到“存储位置”。默认“本地路径”是空的,右边容器路径是 /data。WebSSH 会把会话、分组、隧道等配置都保存在 /data 下,所以这一步一定要映射,否则容器删除或重建后,所有配置都会丢。

图 6 存储位置:本地路径为空,需要手动选择
第 7 步:完成路径修改
点击本地路径右侧的文件夹图标,选择提前准备好的存储空间文件夹(我选的是存储空间下 datas 目录里专门为它建的文件夹),容器路径保持 /data 不变,读写权限保持默认。确认无误后点“下一步”,再点确认,完成容器创建。

图 7 本地路径已映射到 /data
小提示:环境变量里能看到 DATA_DIR=/data,说明程序正是往这个目录写数据的,路径映射对上就没问题。
第 8 步:点击快捷访问
回到“容器”页面,可以看到 webssh 容器已经是“运行中”状态,内存占用只有两三 MB,非常轻。点击卡片上的链接图标(快捷访问),浏览器会自动打开 WebSSH 的网页。也可以手动输入 http://飞牛IP:8088(端口以你设置的为准)。

图 8 容器运行中,点击链接图标快速访问
第 9 步:登录并开始使用
打开后就是 WebSSH 的登录页,初始用户名和密码都是 admin。登录成功后,左侧就是会话和隧道管理,右侧是终端区域,右上角可以切换单窗格、分屏和四宫格。点“+ 分组”“+ 会话”就能开始添加你的服务器了。

图 9 登录页,初始账号密码均为 admin

图 10 登录后的主界面:会话、隧道、分屏一应俱全
强烈建议:登录后马上修改默认密码。左下角的按钮区里有修改账号密码的入口,改成强密码再使用。
部署完之后,怎么把它用起来
点“+ 分组”,按办公室、机房、项目给服务器分好类
点“+ 会话”,填写名称、主机、端口、用户名和密码,保存后一点就连;“保活间隔”默认 30 秒,能避免空闲连接被 NAT 或防火墙断开
断网、刷新页面甚至换设备,远端 Shell 会在后台保留 30 分钟,重新连上还是原来的现场
点会话旁的文件夹图标,直接打开 SFTP 文件浏览器上传下载,不用再开 Xftp
需要端口转发?在“隧道”里直接配置本地 -L、远程 -R、动态 SOCKS5 -D
为什么我推荐在飞牛上跑它
1. 部署极简。全程图形界面,不碰命令行,适合刚入手飞牛的新手。
2. 资源占用极低。容器运行时内存只有两三 MB,不会拖慢 NAS,虚拟机里的飞牛也完全没压力。
3. 数据好管理。配置集中在映射出来的文件夹里,备份、迁移、重装飞牛都不怕。
4. 全设备通用。NAS 常年开机,手机、平板、公司电脑、借来的电脑,打开浏览器就能连你所有服务器,再也不用在每台设备上重新导入 Xshell 会话。
安全提醒
WebSSH 目前未开启主机密钥校验,凭据以明文保存在数据文件里,更适合家庭或可信内网使用。建议你这样做:
第一次登录就修改默认的 admin 密码
不要直接把端口映射到公网;确实需要外网访问,请通过 VPN、飞牛自带的内网穿透方案,或者前面加带 TLS 的反向代理
定期备份映射出来的数据文件夹
总结
飞牛负责把家里的存储和服务稳稳托住,WebSSH 负责让你在任何浏览器里一键连上所有服务器。两者组合,一次部署,所有设备通用,终于不用再被 Xshell 的客户端绑定。
如果你也有一台飞牛,不妨花三分钟照着上面的步骤试一试,觉得好用,顺手给项目点个 Star:
https://github.com/casualty01/web_ssh
