为什么服务端应用一定要长在浏览器里?试试基于 SSH 开发“永不断线”的终端应用

1 天前
 LonnyWong

在这个万物皆可 Web 化的时代,我们似乎忘了终端才是程序员最亲近的 UI 。

如果你的应用(比如 AI 助手、监控工具、内网穿透)需要极致的低延迟和高稳定性,不如尝试挂在 tssh上。

为什么是 tssh ?

传统的 SSH 痛点:网络抖动就断线、切个 Wifi 就卡死,或休眠唤醒基本上就断了。

tsshd 是类似 mosh 的工具,底层使用 UDP (KCP / QUIC) 协议,解决了 SSH 的痛点,也解决了 mosh 的硬伤(支持滚动和端口转发等)。

同时 tsshd 也是一个 go 应用框架,你可以基于它开发各种 SSH 应用,自带抗掉线低延迟属性:

应用(抛砖引玉)


其实只要是 HTTP 能干的事,SSH 都能干。如果你厌倦了为了一个小工具去折腾前端框架、配置域名证书,不如回归终端,玩点不一样的。

开源地址: https://github.com/trzsz/tsshd

中文文档: https://trzsz.github.io/cn/tsshd

欢迎大家提建议,分享在终端里用过哪些有趣的 SSH 应用。

4997 次点击
所在节点    程序员
58 条回复
churchmice
1 天前
现在这轮子真是造的飞起
你那点需求 tmux 够用了
LonnyWong
1 天前
@churchmice tmux 就完美了吗?看看这个吧: https://bower.sh/you-might-not-need-tmux
sir283
1 天前
怎么感觉你这东西,还没我这俩用 Ai 改的要实用呢?

======================================

宇宙超级无敌,音乐下载器,支持无损音乐文件下载、批量下载、一键下载,支持歌单下载。
支持酷狗、酷我、QQ 音乐、网易云、咪咕等音乐平台音乐搜索、下载。支持无损音乐文件下载。
https://github.com/MrsEWE44/musicDownload


======================================

轻风支持在 Dhizuku 模式下,强力删除无用的系统软件,强力冻结软件,一键静默安装软件,批量处理软件,系统软件恢复等等,还有更多功能没有写出来,赶紧下载体验吧!

软件支持在安卓 10 以上系统,在 Shizuku 模式免 ROOT 情况下,对手机网络进行管控,也可以管理摇一摇传感器的权限,精准控制单个应用,也支持批量管理。

https://github.com/MrsEWE44/easyManager/tree/md5
kite12580
1 天前
看过几次这个项目,主要还是装别的 ssh server 担心安全问题
LonnyWong
1 天前
tsshd 无需任何操作,会话一直在线,可以往上滚看历史输出。

tmux 要重登录,要 attach ,看历史输出(一屏以外的)要用命令。
LonnyWong
1 天前
@kite12580 #4 开源的,代码量也不大,你可以用 AI 帮忙评估其安全性。
yolee599
1 天前
ssh 是第一道门,最主要的是安全性和漏洞,其他都是次要的
LonnyWong
1 天前
kapr1k0rn
1 天前
96368a
1 天前
一直在用 trzsz-ssh ,好用的😂
LonnyWong
1 天前
@kapr1k0rn #9 Wish 是传统 SSH ,网络抖动就断线、切个 Wifi 就卡死,或休眠唤醒基本上就断了。

tsshd 是 UDP 协议的,类似 mosh ,基于 tsshd 的应用自动获得不掉线和低延迟的能力。
Mrun
1 天前
传统的 ssh ,有着大量的安全审计和庞大的开源社区,核心技术公司帮忙盯着漏洞。你这个感觉安全还是太单薄了
kapr1k0rn
1 天前
不好意思前面没仔细看,所以你这个工具替代的是 sshd server ?
rich1e
1 天前
挺好的项目,中英文档都有。
ntdll
1 天前
如果解决的核心痛点只是 [不掉线和低延迟的能力]

其实只需要通过一些 Zero trust 方案接入 SSH 就行了,顺带还提高的安全性。

这类方案不论是开源、闭源,收费、免费的都有不少成熟的选择。

比如 Cloudflare Tunnel 、Zerotier 、Wireguard 都是可行的。
LonnyWong
1 天前
@Mrun @kapr1k0rn tsshd 不提供登录服务,要通过传统 ssh 登录,然后启动一个 tsshd 进程,一次登录就是一个独立的 tsshd 进程,tsshd 进程会监听一个 UDP 端口用于后续通讯。

tsshd 支持 QUIC 和 KCP 协议,密钥是启动时临时生成的一次性会话密钥,通过传统 ssh 通道发送给 tssh 客户端。
chengdonghui
1 天前
这个需求,ssh+screen 应该也可以解决吧
LonnyWong
1 天前
@chengdonghui #17 有区别:

tsshd 无需任何操作,会话一直在线,可以往上滚看历史输出。

tmux 或 screen 要重登录,要 attach ,看历史输出(一屏以外的)要用命令。
JZen
1 天前
牛逼,支持
laydown
1 天前
目前 ttyd 用着很舒服。支持造更多的轮子,有对比也不错。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://study.congcong.us/t/1210713

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX