双端模型
服务端部署在公网机器、客户端部署在内网机器,职责清楚、边界明确。
TSM Travel 由马鞍山小红花科技研发并开源。它没有重造一套穿透协议,而是站在 frp 的成熟架构之上,把「人怎么用它」这件事重新做了一遍。
名字本身就是一句说明书:Tunnel(隧道)——内网与公网之间只打通这一条通道,内网侧不监听、不暴露任何端口;Session Multiplexer(会话复用)——多条连接、多个内网服务共用这条隧道进出,而不是每个服务各捅一个洞、各维护一套链路;travel(穿行)——内网流量顺着隧道走到公网,外部用户看起来就像公网那台机器自己开的服务。
一句话:内网把流量塞进隧道,公网把流量送到外面。内网服务原地不动,公网凭空多出几个端口。
frp 已经把内网穿透这件事做得足够好了:服务端与客户端双端模型、控制连接与数据连接分离、工作连接池、token 鉴权——这套架构经受了时间检验,我们原样承接,没有动它。
真正拦住大多数人的不是协议,而是流程。要记住 ini 参数、要分清 frps 与 frpc、要知道哪个端口该放行、出了问题要登服务器翻日志。对熟悉网络的人来说这不算事,但对一个只想让家里的 NAS 能在外网打开的人来说,每一步都是坎。
所以 TSM Travel 做了三处改动:管理界面从简单 dashboard 升级为完整的 Web 管理面板;配置存储从散落的 ini / toml 归档为 SQLite 统一管理;角色设定不再是两个程序,而是同一份程序装好之后访问管理端口自助选择。
这些做法不是我们的发明,而是这一领域的共识。我们做的只是把它们原样接住,再把使用门槛降下来。
服务端部署在公网机器、客户端部署在内网机器,职责清楚、边界明确。
控制连接负责握手与指令,数据连接负责搬流量,互不干扰。
连接预先建好、复用,避免每次请求都重新握手带来的延迟。
客户端必须持服务端下发的 token 才能接入,未授权的连接一律拒绝。
客户端主动出站并完成 TLS 1.3 握手,公网侧不接受任何入站反向连接。
客户端离线后对应的转发端口即时释放,不会长期占着不放。
全部源码已在 Gitee 开放,欢迎下载试用、提交 Issue、参与共建。
gitee.com/duojinshaotang/tsmtravel —— 完整代码、部署文档、测试用例与压测脚本都在这里。
使用中遇到问题、有功能建议,直接在仓库提 Issue,我们会在仓库里跟进。
docs/deploy.md 内含完整的安全组放行清单与系统调优参数,部署前建议先读一遍。
仓库自带 pytest 端到端用例与 bench/bench.py 压测脚本,改完代码自己就能跑一遍。
TSM Travel 的官方网站域名是 tsmtravel.com。它的注册日期是 1995 年 7 月,距今整整三十一年,比绝大多数互联网公司的历史都要长。在域名资源尚未被大规模瓜分的年代,它就已经存在于互联网的注册簿上了。
这是一枚货真价实的数字铭牌,记录着互联网商业化的最初时光。三十一年后,它成为 TSM Travel 的正式门牌。
用这样一枚老域名承载一款刚刚问世的工具,想表达的意思很直白:这个项目不是做一票就走。 后面的路还长。
TSM Travel 由马鞍山小红花科技有限公司研发并开源。团队长期从事软件开发、网络与数字化技术方向的工作,TSM Travel 是自研工具链中的一环。
除了 TSM Travel,团队还维护着万网创维(WWCW)智能建站体系——TSM Travel 的官方网站,正是跑在这套体系上的。