
疯狂投入了十几个周末进行优化,在一个 issue 里和用户共讨论了 150 多楼,每周末都开发出一个新的 RC 版本,从 RC1 干到 RC11 ,终于发布了一个稳定版。
作为一个新项目,知道的人还不多,现在才 100 多的 star ,却比同类老项目( mosh: 13k 多的 star )的功能强大很多,详见 README 里的功能对比。支持 多平台、低延迟、保持连接、切换网络、SSH X11 转发、SSH Agent 转发、SSH 端口转发、输出上下滚动、OSC52 复制粘贴、多级 ProxyJump、tmux -CC 集成等。
欢迎大家来试用,与同类老项目 mosh 比较比较。在服务器安装 tsshd,在本地安装 tssh,然后使用下面的命令登录服务器即可:
tssh --udp <服务器 IP 或别名> 注意 tsshd 默认随机监听 61001 - 61999 的 UDP 端口,防火墙要放开相应策略。支持在命令行指定 UDP 端口和 tsshd 安装路径,如下:
tssh --udp --tsshd-path /path/on/server/tsshd --tsshd-port 10000-10010 xxx ( 和 ssh xxx 一样的效果,配置可写在 ~/.ssh/config 中,然后直接 tssh xxx 登录 ) tssh --kcp xxx 启用,也支持配置指定 KCP 协议(默认使用传输吞吐量更高一些的 QUIC 协议)。作为 ssh 工具,tssh 和 tsshd 都很注重安全的,详见 README 里的安全介绍。欢迎各位大佬来分析评估其安全性。(说到安全,我周末基本都献给开源 了,CTF 界少了个 PWN 选手,开源界多了几个项目: trzsz、tssh 和 tsshd 等)
服务端开源(对标 mosh ,并提供相应 Client 库):tsshd https://github.com/trzsz/tsshd
客户端开源(支持标准 ssh ,扩展了很多实用功能):tssh https://github.com/trzsz/trzsz-ssh
1 LonnyWong OP dXA= |
2 yangg 1 月 19 日 好奇,示例--udp 是否是推荐的写法?为啥没有写成默认参数 |
3 LonnyWong OP @yangg tssh 是对标标准 ssh 客户端的,不加 --udp 时,是完全兼容 openssh ,此时 tssh 可以直接代替 ssh 来使用,除了 tssh 额外提供的功能,和 ssh 没什么区别。 tsshd 是对标 mosh 的,相当于 mosh 的 mosh-server ,也相当于 openssh 的 sshd 。 tssh --udp 主要是给新用户临时体验的,如果用户想默认使用 tsshd 作为服务器,只要在 ~/.ssh/config 中配置 UdpMode yes 即可,这时就不需要加 --udp 参数了。 |
5 listenerri 1 月 19 日 感谢分享 |
6 LonnyWong OP @yangg 之前我用 ssh ,也是去吃个饭就断了。tssh 命令行参数就是为了临时体验用的,目的是体验时一般不用修改 ~/.ssh/config 配置。 |
7 pursuer 1 月 19 日 用 tmux 就不用担心掉线和漫游问题了吧 |
8 LonnyWong OP @pursuer tmux 可以解决你在服务器运行的程序不用重新运行的问题。tsshd 可以解决你不用重新登录的问题,运行中的程序也不用重新运行,不依赖 tmux 等。 |
9 molezznet 1 月 19 日 一直在用 tssh ,tsshd 是作者又开发了一个服务端了咯? |
10 pursuer 1 月 19 日 重新登录这个在 ssh 客户端上配一下就能一键登录,还能顺便并连接到 tmux ,也不是强需求的样子 |
11 LonnyWong OP @molezznet 是的,tsshd 是服务端,对标 mosh 的,tsshd 开发出来有 2 年了,不过前天发布的 tsshd v0.1.6 是一个成熟的版本的。之前的 tsshd 能解决低延迟的问题,断线重连是从 v0.1.5 才支持的,从 v0.1.6 开始稳定的。 |
12 LonnyWong OP @pursuer 如果你只在很好网络环境下 ssh ,并且不介意多登录一下,确实不是很强的需求。如果你在不太好的网络环境下 ssh ,你的延迟可能比较高(按键不跟手),网络太差(例如移动中的网络)导致你要频繁重登录,那 tsshd 就会很好用。 |
13 w568w 1 月 19 日 哎,本来想支持一下,发现早就 star 过了 |
15 Cola90 1 月 19 日 看着很不错,先 starlet |
16 craftsmanship 1 月 19 日 via Android 好奇问下 AI 辅助编程及完全 vibe coding 占比多少 以及是否有效? |
17 LonnyWong OP @craftsmanship 近期有用 AI ,但 AI 写的代码占比极低。会让 AI 帮忙 review 我写的所有代码,AI 有时会发现一些超低级错误(避免测试时浪费时间),但 AI 很多时候都会乱说。少数功能会让 AI 先写,看 AI 的思路是否会给我启发,但更多时候都是我在指正 AI 的错误,大多数时候 AI 都会承认其错误,个别时候 AI 死都不认错,只能新开会话或换个 AI 。 |
18 LonnyWong OP @craftsmanship 对了,很多注释我会让 AI 帮我写,写得我满意的我就会采用。 |
19 craftsmanship 1 月 19 日 via Android @LonnyWong 顺便问一下 常用模型是什么呢? |
20 LonnyWong OP @craftsmanship ChatGPT |
21 loveqianool 1 月 19 日 via Android 很好用的,用很久了。 |
22 MindMindMax 1 月 19 日 国内端口转发用 QUIC 、KCP 能行得通吗? QoS 严重呀。 |
23 zagfai 1 月 19 日 虽然但是, 我用 tmux. |
24 zagfai 1 月 19 日 然后 ssh over vmess.:) |
25 LonnyWong OP @MindMindMax 用户反馈正常使用时延迟下降了。在国内环境,跨境大流量转发,不是 tsshd 置力于解决的问题。 |
27 MindMindMax 1 月 19 日 @LonnyWong 你理解错了,我说的就是国内跨网的问题,不涉境外通信的。 |
28 LonnyWong OP @MindMindMax 国内其实还好,很多游戏都是用 KCP 协议的,并且 QUIC 也是未来的方向。有 QoS ,但不是完全禁掉了 UDP 报文。还是要试用一段时间,自己感受一下,会更准确。 |
29 LonnyWong OP @MindMindMax 如果你所在的网络环境 QoS 特别严重,tsshd 还支持 TCP 模式,同样具备不会掉线和支持漫游的能力。 |
30 MindMindMax 1 月 19 日 @LonnyWong 好的,我试试 |
31 goodryb 1 月 19 日 请教下 “tsshd 默认随机监听 61001 - 61999 的 UDP 端口” ,这个为啥是随机监听,并且是一段端口,有点像是 ftp 的被动模式 |
32 LonnyWong OP @goodryb tsshd 是在指定的端口范围随机监听一个,客户端会连接这个端口。同一台机器你可以登录多次,每次登录都是一个独立的 tsshd 进程,每个 tsshd 进程独占一个端口。独立的进程和独立的端口,可以更简单地实现隔离,不同的用户登录同一台服务器时,互不干涉。 |
35 Javin 1 月 21 日 没看到支持 mac ,只能编译安装吗 |
37 zisen 1 月 23 日 能不能指定 config 文件呢,默认的 config 文件不能乱动,动了 vscode 和 cursor 就连不上了 |
38 LonnyWong OP @zisen 1 、在默认的 ~/.ssh/config 配置时,可以加 #!! 前缀,就不影响 vscode 和 cursor 等了。 2 、使用新的 config 配置文件,增加一个 ~/.tssh.conf 或者 $XDG_CONFIG_HOME/tssh/tssh.conf 文件,在里面指定 COnfigPath= ~/.ssh/my_new_config ,这时只读 ~/.ssh/my_new_config 配置,不读 ~/.ssh/config 配置。 3 、扩展 ~/.ssh/config 配置,和第 2 步差不多,ConfigPath 换成 ExCOnfigPath= ~/.ssh/my_extend_config ,这里会既读 ~/.ssh/config 也读 ~/.ssh/my_extend_config 配置。 |