GitHub 今天最火的项目之一,是 Tailscale 官方自己发的,叫 tailcat。名字听着像猫,实际上是个工具,能让你在两台电脑之间直接建一条加密通道,互相传文件、开远程终端、甚至转发端口。
事情有意思在它怎么干活。以前你要干这事儿,一般得注册个账号,装客户端,登录,加入同一个网络。tailcat 把这些全砍了——你不需要有任何账号,不需要 root 权限,它也不改你机器的路由表、DNS 之类的系统设置。它就是一个跑在用户态的小程序。
用法也简单得有点原始。一台机器跑个服务端,屏幕上给你吐出一串短的连接令牌,你把令牌发给另一台机器,那边拿这串字符一敲,加密隧道就通了。令牌本身还能当网址用,比如配个 SOCKS5 代理,curl 直接就能走隧道访问对方网络里的东西。
技术上它其实是用 Tailscale 自己的开源零件拼的,只是把管理用的那套控制平面去掉了,改用你自定义的方式交换连接信息。流量用 WireGuard 加密,一开始走公共的中继服务器,接着自动尝试打洞,成功的话就升级成点对点直连,速度跟局域网差不多。
这玩意儿适合谁?比如你想临时给朋友传个大文件,又不想注册任何网盘账号;或者你想在云服务器上开个服务,懒得配复杂的证书和防火墙;再或者你想把家里一台电脑的端口安全地暴露给自己在外面用。它把以前要折腾半小时的事,压成了一句话。
项目还在早期,浏览器版只有个实验性的 WebAssembly 演示,只能走中继不能直连。不过思路挺有意思的——把最核心的加密通道和打洞能力拆出来,去掉所有账号和管理的负担,剩下的就是纯粹的点对点连接。