为什么需要 Tailscale?
你在家里的电脑上跑了个 Web 服务——可能是开发环境、OpenClaw Gateway、或者某个自建工具。你想在手机上直接访问它,但两个设备不在同一个 Wi-Fi 下。怎么办?
传统方案:端口转发、内网穿透、frp、Ngrok……每种都要折腾配置,而且把服务暴露在公网上,安全隐患不小。
Tailscale 基于 WireGuard 协议,给你一个零配置的私有网络(tailnet)。装上客户端、登录账号,你的设备就自动组成一个加密的内网。不需要端口转发,不需要公网 IP,设备之间直接 P2P 打洞,端到端加密。
免费版支持 100 台设备,个人使用完全够。
整体思路
- 在电脑(Windows)上安装 Tailscale
- 在手机(Android / iOS)上安装 Tailscale
- 用同一个账号登录,设备自动组网
- 电脑上启动一个 Web 服务
- 手机浏览器通过 Tailscale IP 访问
第一步:注册 Tailscale 账号
打开 tailscale.com,点击 Get Started,用 Google、Microsoft、GitHub 或其他 SSO 账号登录。不需要单独注册密码,Tailscale 用 SSO 做身份认证。
登录后你就拥有了一个 tailnet——你的私有网络。免费 Personal 计划支持 6 个用户、100 台设备。
第二步:在 Windows 电脑上安装
方法一:官网下载(推荐)
去 Tailscale Windows 下载页,下载 .exe 安装包,双击安装。
安装完成后,Tailscale 会在系统托盘显示一个图标。点击图标 → Log in,浏览器会弹出登录页面。用你第一步注册的 SSO 账号登录授权。
方法二:命令行安装(PowerShell)
如果你喜欢命令行,用 PowerShell:
# 用 winget 安装
winget install tailscale.tailscale
# 或者用 Chocolatey
choco install tailscale
安装后同样从系统托盘登录,或者命令行启动:
tailscale up
这条命令会打印一个登录 URL,在浏览器打开它完成授权。
查看电脑的 Tailscale IP
登录成功后,查看本机的 Tailscale IP:
tailscale ip -4
输出类似:
100.64.0.12
记下这个 100.x.x.x 地址——这是你的电脑在 tailnet 中的私有 IP,手机要用它来访问。
你也可以在 Tailscale 管理后台 → Machines 页面看到所有设备的 IP 和名称。
第三步:在手机上安装
Android
- 打开 Google Play,搜索 Tailscale,安装
- 或者从 Tailscale Android 下载页 获取
- 打开 App,点击 Sign in,用和电脑相同的 SSO 账号登录
- 授权 VPN 权限(Tailscale 需要 VPN 权限来接管网络流量)
iOS
- 打开 App Store,搜索 Tailscale,安装
- 打开 App,点击 Sign in,用和电脑相同的 SSO 账号登录
- 允许添加 VPN 配置
登录后,手机自动加入你的 tailnet。在 App 首页可以看到已连接的设备列表,包括你的电脑。
第四步:在电脑上启动 Web 服务
这里用 Python 内置的 HTTP 服务器做演示。在电脑上打开 PowerShell:
# 进入你想共享的目录
cd C:\Users\yourname\projects
# 启动一个简单的 HTTP 服务,监听 8080 端口
python -m http.server 8080
如果你跑的是其他 Web 服务(比如 OpenClaw Gateway、Node 开发服务器、Docker 容器等),确保它监听在某个端口上就行。关键是:服务监听的地址需要是 0.0.0.0 或 Tailscale IP,不能只是 127.0.0.1。
Python 的 http.server 默认监听 0.0.0.0,所以直接能用。如果你的服务默认绑定 localhost,需要手动改成 0.0.0.0。
第五步:手机访问电脑上的 Web 服务
打开手机浏览器(Chrome、Safari 都行),在地址栏输入:
http://100.64.0.12:8080
把 100.64.0.12 换成你电脑的 Tailscale IP,8080 换成你的服务端口。
搞定!手机通过 Tailscale 的加密隧道直接访问电脑上的 Web 服务,不需要公网 IP,不需要端口转发。
进阶:用 MagicDNS 代替 IP 地址
Tailscale 自带 MagicDNS 功能,可以用设备名代替难记的 IP 地址。
在 管理后台 → DNS 页面,确认 MagicDNS 已开启(默认是开的)。
然后在 Machines 页面找到你电脑的名称,比如 my-pc。之后在手机浏览器输入:
http://my-pc:8080
就能直接访问,不用记 IP 了。
常见问题
手机访问不了怎么办?
逐项排查:
- 确认两端都在线:Tailscale App 里能看到对方设备,状态是 Connected
- 确认服务监听地址:电脑上运行
netstat -an | findstr 8080,如果只看到127.0.0.1:8080说明服务只监听了 localhost,需要改成0.0.0.0 - 检查 Windows 防火墙:PowerShell 管理员运行
New-NetFirewallRule -DisplayName "Allow 8080" -Direction Inbound -LocalPort 8080 -Protocol TCP -Action Allow(把 8080 换成你的端口) - Tailscale IP 是否正确:在管理后台 Machines 页面再次确认电脑的 IP
Tailscale 会影响手机上网吗?
不会。Tailscale 默认只接管 tailnet 内部流量(100.x.x.x 网段),你手机正常的上网流量不受影响。除非你主动开启了 Exit Node(出口节点)功能,才会把所有流量都走 Tailscale。
免费版有什么限制?
Personal 计划:100 台设备、6 个用户、MagicDNS、Subnet Router 都包含。对个人使用来说基本没限制。缺少的主要是 Team 级别的 ACL 管理和审计日志。
安全建议
- 关闭 key expiry:在管理后台对信任的设备(比如你常驻的电脑)关闭密钥过期,避免频繁重新认证
- 开启 Tailscale SSH(Linux 设备):可以用 Tailscale 直接 SSH 到服务器,不需要管 SSH key
- 不要把服务暴露到公网:既然用了 Tailscale,就别再开端口转发了。让服务只监听 Tailscale 接口更安全
总结
Tailscale 的核心价值:把复杂的网络配置变成登录账号这么简单的事。电脑和手机装上客户端、同一个账号登录、自动组网,然后就能互相访问了。
对于开发者来说,这意味着你可以在家里的电脑上跑任何 Web 服务,在外面用手机直接访问——开发环境随身携带,不需要部署到云上。