疯狂投入了十几个周末进行优化,在一个 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 6 天前
好奇,示例--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 6 天前
感谢分享
|
7
pursuer 6 天前
用 tmux 就不用担心掉线和漫游问题了吧
|
8
LonnyWong OP @pursuer tmux 可以解决你在服务器运行的程序不用重新运行的问题。tsshd 可以解决你不用重新登录的问题,运行中的程序也不用重新运行,不依赖 tmux 等。
|
9
molezznet 6 天前
一直在用 tssh ,tsshd 是作者又开发了一个服务端了咯?
|
10
pursuer 6 天前
重新登录这个在 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 6 天前 哎,本来想支持一下,发现早就 star 过了
|
15
Cola90 6 天前
看着很不错,先 starlet
|
16
craftsmanship 6 天前 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 6 天前 via Android
@LonnyWong 顺便问一下 常用模型是什么呢?
|
20
LonnyWong OP @craftsmanship ChatGPT
|
21
loveqianool 6 天前 via Android 很好用的,用很久了。
|
22
MindMindMax 6 天前
国内端口转发用 QUIC 、KCP 能行得通吗? QoS 严重呀。
|
23
zagfai 6 天前
虽然但是, 我用 tmux.
|
24
zagfai 6 天前
然后 ssh over vmess.:)
|
25
LonnyWong OP @MindMindMax 用户反馈正常使用时延迟下降了。在国内环境,跨境大流量转发,不是 tsshd 置力于解决的问题。
|
27
MindMindMax 6 天前
@LonnyWong 你理解错了,我说的就是国内跨网的问题,不涉境外通信的。
|
28
LonnyWong OP @MindMindMax 国内其实还好,很多游戏都是用 KCP 协议的,并且 QUIC 也是未来的方向。有 QoS ,但不是完全禁掉了 UDP 报文。还是要试用一段时间,自己感受一下,会更准确。
|
29
LonnyWong OP @MindMindMax 如果你所在的网络环境 QoS 特别严重,tsshd 还支持 TCP 模式,同样具备不会掉线和支持漫游的能力。
|
30
MindMindMax 6 天前
@LonnyWong 好的,我试试
|
31
goodryb 6 天前
请教下 “tsshd 默认随机监听 61001 - 61999 的 UDP 端口” ,这个为啥是随机监听,并且是一段端口,有点像是 ftp 的被动模式
|
32
LonnyWong OP @goodryb tsshd 是在指定的端口范围随机监听一个,客户端会连接这个端口。同一台机器你可以登录多次,每次登录都是一个独立的 tsshd 进程,每个 tsshd 进程独占一个端口。独立的进程和独立的端口,可以更简单地实现隔离,不同的用户登录同一台服务器时,互不干涉。
|
35
Javin 4 天前
没看到支持 mac ,只能编译安装吗
|
37
zisen 2 天前
能不能指定 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 配置。 |