tailcat

tailcat

点对点加密隧道

连接官网

应用介绍

< #点对点 #内网穿透 #WireGuard #文件传输 #远程登录 #端口转发 #命令行工具 #开源软件

tailcat 是 Tailscale 官方出的小工具,作者自己的形容是「用 Tailscale 做的、不需要 Tailscale 的 Tailscale」。它像 netcat,但通道走的是 Tailscale 的数据平面:两台机器之间建立点对点的 WireGuard 加密隧道,DERP 服务器负责 NAT 打洞的信令,打不通时才降级为中继。区别在于它不使用 Tailscale 的控制平面——连接信息完全由你自己带外传递。

用法就是一端启动服务并打印出一串短地址,把这串地址通过任意渠道发给对方,对方拿它连接,加密通道即刻建立。不需要 Tailscale 账号,不需要 root 或管理员权限,也不会改动系统的路由表和 DNS——它只是一个用户态的命令行程序(两端都要有这个程序)。默认使用官方免费的限速 DERP 中继,也可以自建。BSD-3-Clause 协议。

软件功能



管道传数据:最基础的用法和 netcat 一样,一端 tailcat 监听,另一端把标准输入通过地址送过去,适合临时传一段文本或者接管道。

收发文件:tailcat recv ~/inbox 开一个收件箱,对方用 tailcat cp 文件 地址: 发过来;底层调用系统 scp,所以有熟悉的进度显示,收件箱是只写的,发送方无法列目录或读取里面的内容

远程登录:内置 SSH 服务端,可以按 authorized_keys 文件、直接给出的公钥行,或者某个 GitHub 账号的公钥来放行;也支持无客户端认证的模式,但那种模式下地址本身就是凭据,只能走私密渠道分享。

端口转发:serve 把本地端口暴露到隧道里,forward 在客户端映射成普通的本地端口,浏览器、数据库客户端这类不支持 SOCKS 的工具也能直接用;默认只绑定 127.0.0.1。

出口节点与 SOCKS 代理:服务端可以作为 exit-node 让客户端访问它所在的内网,客户端也能起一个 SOCKS5 代理,把任意命令的流量走进隧道。

按连接执行命令:类似 inetd 的 exec 模式,每来一个连接就运行指定命令,连接本身作为该命令的标准输入输出;配合 SSH 服务时相当于 ForceCommand,只允许执行这一个命令。

密钥与地址管理:默认每次运行都生成临时密钥,进程一退出这个地址就永久失效;也可以用 genkey 保存密钥让地址固定,代价是所有拿到过该地址的人都能连上后续的服务,这时可以用 --allow 限制客户端。默认启用 WireGuard 预共享密钥。

连通性诊断:ping 会告诉你每个回包是走 DERP 中继还是已经打通了直连,parseresolve 可以解析地址内容或把短地址展开成自带中继信息的长地址。

多种安装方式:发布页提供 Linux 静态二进制与 deb/rpm 包、Windows 压缩包,另有容器镜像、Homebrew、go install、Nix、AUR 和 conda-forge;还有一个编译成 WebAssembly 的浏览器试验版,可以和命令行端互传文件(浏览器端只走中继)。

开源项目:项目源码托管在 GitHub,方便开发者查看实现方式、参与开发,或者根据自己的需求进行二次定制。

相关推荐