首页 时政热点 科技头条 智能AI 安全攻防 数码硬件 开发者生态 汽车 游戏 社会热点 开源推荐 医疗健康 归档 标签 关于

尾猫

2026-08-27 1 阅读 约9分钟阅读 nderjung
分享:
字号:
“Tailscale without Tailscale,作者:Tailscale” Tailcat 是 Tailscale 开源作品的混音,其行为类似于 netcat,但在 Tailscale 的数据平面上,没有 Tailscale 的控制平面。 Tailscale 的数据平面( magicsock ,内部)为您提供两台机器之间的点对点 WireGuard® 加密隧道,并使用 DERP 作为 NAT 打洞通信侧通道以及 NAT 穿越失败时的最终中继手段。不使用 Tailscale 控制平面,而是根据您的需要在带外交换所有 tailcat 连接元数据。 tailcat CLI(在 cmd/tailcat 中)构建于 tailcat Go 库(可通过 github.com/tailscale/tailcat 导入)。无论您使用 tailcat 作为 CLI 工具还是库,一侧都会运行 tailcat 服务器(侦听器)并获取一个短连接令牌。另一端将该令牌传递给 tailcat 的客户端进行连接。两者之间的所有流量均通过 WireGuard 进行端到端加密。初始连接通过 DERP 服务器引导(见下文),然后 magicsock 执行 NAT 遍历,以在可能时(通常!)升级到直接对等 UDP 连接。您不需要 Tailscale 帐户、机器上的 root/admin 访问权限(它不会更改机器的路由表、DNS 等)。它只是一个用户空间库和 CLI 工具。而且都是开源的。您可以使用我们的免费速率限制 DERP 中继(默认 DERP 映射为 https://tailcat.dev/derpmap.json ),也可以运行您自己的 . $ go install github.com/tailscale/tailcat/cmd/tailcat@latest 或者使用 Nix flakes,直接运行或安装它: $ nix run github:tailscale/tailcat $ nix profile install github:tailscale/tailcat 在两台机器之间通过管道 stdin/stdout 服务器启动,打印其临时地址: $ tailcat # 选择引导中继区域 302,旧金山 # 🐈 使用新地址监听的服务器: tcomFwWCCcjS5nKNqAod034nWoJZW0LZqDhhC8U_dKdnDRYQ8uNGFpGQEu(挂起,等待...)然后客户端可以: tailcat tcomFwWCCcjS5nKNqAod034nWoJZW0LZqDhhC8U_dKdnDRYQ8uNGFpGQEu $ 然后服务器解锁: $ tailcat # 选择引导中继区域 302,旧金山 # 🐈 服务器使用新地址侦听: tcomFwWCCcjS5nKNqAod034nWoJZW0LZqDhhC8U_dKdnDRYQ8uNGFpGQEu hello $ 通过隧道公开本地端口 或者您可以提供本地 TCP 端口,转发到本地主机: $ tailcat --serve=8080,8443 # 或 --serve=all # 🐈 服务器使用新地址监听: tcXXXXXXXXX 然后client: $ tailcat tcXXXXXXXXX 8080 GET / HTTP/1.1 Host: foo HTTP/1.1 200 OK .... 在 Linux 和 macOS 上,您也可以无需身份验证即可运行 SSH 服务器。 (如果你想要身份验证,你可以直接 tailcat --serve=22 并代理到你的系统 SSH 服务器) $ tailcat --serve=no-auth-ssh # 🐈 服务器监听新地址: tcXXXXXXXXX 在客户端: $ tailcat ssh tcXXXXXXXXX $ tailcat ssh tcXXXXXXXXX ls -la Ping 测试连接;每个 pong 报告它是通过 DERP 中继还是直接路径到达。 --until-direct 保持 ping 操作(最多 --timeout ,默认 10 秒),直到直接路径工作为止,如果不工作则退出非零值: $ tailcat ping --until-direct < token > pong in 42.1ms via DERP(sfo) pong in 1.2ms via 203.0.113.7:41641 通过通过隧道路由的 SOCKS5 代理运行命令: $ tailcatocks < token >curl http://server.tailcat:8081/ 令牌也可以直接用作 URL 主机名:SOCKS 代理识别并拨打它们,因此令牌参数是可选的。 (令牌区分大小写;这适用于curl和大多数CLI工具,但不适用于小写主机名的浏览器。) $ tailcatockscurl http:// < token > :8081/ 充当退出节点,以便客户端可以到达服务器的网络: $ tailcat --serve=exit-node 解析连接令牌并将其内容(服务器的WireGuard公钥和DERP信息)作为JSON打印,而不连接到任何东西: $ tailcat parse tcomFwWCCcjS5nKNqAod034nWoJZW0LZqDhhC8U_dKdnDRYQ8uNGFpGQEu {“服务器公共”:“ nodekey:9c8d2e6728da80a1dd37e275a82595b42d9a838610bc53f74a7670d1610f2e34 ", " RegionID ": 302 } 使用 DERP 将短令牌(通过 ID 引用 DERP 区域,要求客户端获取 DERP 映射)解析为较长的独立令牌嵌入服务器信息,让客户端连接更快: $ tailcat解析 tcomFwWCCcjS5nKNqAod034nWoJZW0LZqDhhC8U_dKdnDRYQ8uNGFpGQEu tcomFwWCCcjS5nKNqAod034nWoJZW0LZqDhhC8U_dKdnDRYQ8uNGFygaFhToGjYWhudGMzMDJhLmlwbi5kZXZhNG0yMDguMTExLjM5LjM4YTZzMjYwNzpmNzQwOjA6M2Y6OjcyMA 解析已解析的令牌显示嵌入的 DERP 信息: $ tailcat parse tcomFwWCCcjS5nKNqAod034nWoJZW0LZqDhhC8U_dKdnDRYQ8uNGFygaFhToGjYWhudGMzMDJhLmlwbi5kZXZhNG0yMDguMTExLjM5LjM4YTZzMjYwNzpmNzQwOjA6M2Y6OjcyMA {“服务器公共“:”nodekey:9c8d2e6728da80a1dd37e275a82595b42d9a838610bc53f74a7670d1610f2e34”,“区域”:[{“节点”:[{“主机名”:“tc302a.ipn.dev”,“IPv4”:“ 208.111.39.38 " , " IPv6 " : " 2607:f7
这篇文章对您有帮助吗?

订阅66必读

每日精选科技资讯,直达你的邮箱