
[!NOTE] Tailscale 是一款基于 WireGuard® 协议构建的虚拟组网工具。它采用点对点(P2P)连接技术,无需公网 IP 即可安全打通您的 Windows、Mac、Linux、iOS、Android 以及 NAS 设备,形成一个加密的专属局域网(Tailnet)。
1.Tailscale 架构优势简述
2.MagicDNS(免记 IP,设备名直连)
3.Taildrop(跨平台局域网免流文件快传)
4.Subnet Router(子网路由,广播整网设备)
5.Exit Node(出口节点,专属安全上网代理)
6.Tailscale SSH(无需配置密钥的免密登录)
7.Tailscale Funnel(零公网 IP 暴露本地端口到外网)
8.性能调优与故障排查(DERP 节点诊断与唤醒)
传统的内网穿透(如 frp、花生壳)通常通过一台具有公网 IP 的中转服务器来转发流量,这会导致明显的延迟,且带宽受限于中转机。
而 Tailscale 使用的是 P2P(点对点)直连架构。它的控制面板(Coordination Server)只用于交换密钥 and 协调路由信息。当两台设备建立连接时,它们会尝试穿透 NAT 进行直连,实现带宽跑满、延迟降到最低。如果直连失败,Tailscale 才会通过其官方或自建的 DERP 中继服务器 进行加密转发。
连接多台设备时,记忆 100.x.x.x 格式的内网 IP 极易混淆。MagicDNS 允许您直接使用设备主机名进行解析。
1.打开 Tailscale 控制台 (Admin Console)。
2.导航至 DNS 选项卡。
3.找到 MagicDNS 并点击 Enable。
4.在下方 Nameservers 中可以配置上游 DNS,推荐点击 Add nameserver 选择公共服务商(如 Cloudflare 1.1.1.1 或 Google 8.8.8.8),并勾选 Override local DNS 保证解析在全部节点生效。
5.此时您的设备可以使用简短的机器名称代替 IP:
# 原来: ssh user@ip # 现在直接: ssh user@my-macbook

Taildrop 是基于 Tailscale 网络构建的文件传输功能,类似于苹果的 AirDrop(隔空投送),但支持 Windows、Mac、Linux、iOS 和 Android 跨平台互传。
·macOS: 点击状态栏 Tailscale 图标 -> 点击 Send File... -> 选择文件及目标设备。
·Windows: 在文件管理器中右键点击任意文件 -> 选择 Send with Tailscale -> 选择接收设备。
·iOS / Android: 在相册或文件应用中点击“分享”按钮 -> 在分享菜单中选择 Tailscale。
[!TIP] 如果接收设备在同一局域网下,Taildrop 会自动通过本地 Wi-Fi / 有线连接传输,不会占用您的宽带公网带宽,传输速度仅受限于硬件网卡和硬盘。

如果您家中有一台已经安装 Tailscale 的设备(如 MacBook、台式机、软路由或群晖 NAS),您可以将其配置为子网路由(Subnet Router)。这样一来,您在外面不需要为家里的智能电视、摄像头、打印机、未装客户端的 NAS 分别安装客户端,也能通过其原本的内网 IP(如 192.168.1.x)访问它们。
打开终端,运行命令(将 192.168.1.0/24 替换为您家里的实际路由器网段):
tailscale up --advertise-routes=192.168.1.0/24
(Windows 端配置命令为 tailscale up --advertise-routes=192.168.1.0/24,需要使用管理员身份打开 CMD 或 PowerShell)
1.登录 Tailscale 网页端后台。
2.找到该设备,点击右侧的三个点 ... 并选择 Edit route settings。
3.在 Subnet routes 部分,勾选刚才宣告的 192.168.1.0/24 网段,并点击保存。
4.验证:您的外网设备(如 Windows 电脑)现在可以直接通过 192.168.1.1 访问家里的路由器,或者直接连接家里的其他服务器,体验与在家无异。

当您在机场、咖啡厅等公共场所使用公共 Wi-Fi 时,网络极易受到中间人监听。您可以将家里的 Mac/台式机设置为出口节点(Exit Node)。

通过这一设置,客户端的所有网络请求(包括普通网页流量)都会加密传输到家里的 Mac,再由 Mac 的宽带访问外网,等同于您时刻处于家里的安全网络环境中。
打开终端并运行:
tailscale up --advertise-exit-node
1.打开 Tailscale 后台,找到该设备,点击 ... -> Edit route settings。
2.勾选 Use as exit node 并保存。
·Windows: 在任务栏右击 Tailscale 图标 -> 悬停在 Exit Nodes 菜单 -> 勾选您的 Mac 设备。
·iOS / Android: 在 Tailscale APP 首页找到 Exit Node 选项,选择刚刚配置的 Mac 设备即可。
通常我们配置 SSH 需要先运行 ssh-keygen 生成密钥,再将其拷入目标设备的 .ssh/authorized_keys。Tailscale SSH 将这一过程完全内置于其身份链中。
·无需生成、分发或管理任何 SSH 密钥对。
·Tailscale 账号在客户端通过身份认证后,将自动对 SSH 进行端到端加密验证。
·即使有人拿到了您的本地密码,也无法在外网建立 SSH,必须先通过 Tailscale 的安全链。
1.在目标 Mac 上运行以下命令配置启动:
tailscale up --ssh
2.此时,只要您的客户端设备已经连接至 Tailscale,便可直接运行免密登录:
ssh user@my-macbook
这是一个极强的功能。如果您在 Mac 本地搭建了 Web 网页服务(如前端项目、临时文件共享工具等,运行在 8080 端口),并希望让没有安装 Tailscale 的普通互联网用户访问它,可以使用 Tailscale Funnel。
1.启用权限:首次使用需要前往 Tailscale 控制台 -> Access Control (ACL) 确保添加了 funnel 的相关准入配置(通常默认支持,或者在首次运行命令时会提示自动开启)。
2.在终端开启端口映射:
tailscale funnel 8080
3.获取公网域名:运行后命令行会输出一个由 Tailscale 提供的免费 HTTPS 公网域名(例如 https://my-macbook.tailnet-xxx.ts.net)。
4.公网访问:将该地址发给任何微信好友或外部客户,他们都可以通过此域名直接安全地访问您 Mac 本地正在运行的服务,整个通信路径会自动受到 Let's Encrypt SSL 证书的安全保护。
如果感觉连接变慢,可以运行以下命令检查当前连接是否成功实现了 P2P 直连:
tailscale status # 或者使用 ping 查看路径 tailscale ping my-macbook
·Direct: 说明两台机器正在进行 P2P 直连(速度最快,延迟最低)。
·Relay (via DERP): 说明两台机器之间存在对称型 NAT 隔离或其他防火墙阻碍,流量正通过 Tailscale 官方的节点进行中转。
1.开启 UPnP:在您的主路由器上开启 UPnP 服务,允许客户端自动映射端口。
2.防火墙放行 UDP 41641 端口: Tailscale 默认在设备之间使用 UDP 41641 端口进行 WireGuard 通信。如果在本地网关或设备防火墙上开放该端口的传入/传出权限,会极大提高直连的成功率。
如果远程 Mac 进入深度休眠(Deep Sleep),它的网卡和 Tailscale 客户端也会下线,从而导致连接超时。
·解决办法:
1.打开 Mac 的 系统设置 -> 锁定屏幕 -> 关闭显示器时防止自动休眠(仅限插电源时)。
2.启用 系统设置 -> 通用 -> 节能 -> 唤醒以供网络访问 (Wake for network access)。
3.在终端可以使用原生命令临时锁定状态防止休眠:
caffeinate -di