Skip to content
返回云服务

Tailscale(网状 VPN)

基于 WireGuard 的网状 VPN,将设备和服务器连入私有网络,零配置、SSO 认证和 ACL。

VPS 与自托管入门

为什么

Tailscale 为每个节点分配稳定 100.x.y.z IP 并通过 WireGuard 点对点路由流量,穿透 NAT。用 SSO(Google、GitHub)认证,新服务器上线仅需一条命令。

ACL 控制节点间通信,MagicDNS 给节点命名如 'db.tailnet.ts.net'。

何时使用

用 Tailscale 访问私有服务器(数据库、管理面板)而无需公开暴露,或将本地+云连成一个网络。100 设备以内免费。

需要无子网路由器的完整站点到站点路由时应避免 —— 尽管 Tailscale 也支持。

如何做

1. 在 tailscale.com 注册(100 设备免费)。 2. 在每个节点安装:curl -fsSL https://tailscale.com/install.sh | sh。 3. tailscale up 通过 SSO 认证。 4. 节点获得 100.x.y.z IP 和 MagicDNS 名称。 5. 在管理控制台配置 ACL 限制访问。 6. 用 tailscale serve 在 tailnet 暴露本地服务。 ```bash curl -fsSL https://tailscale.com/install.sh | sh sudo tailscale up # 在浏览器认证 tailscale ip # 显示此节点 tailnet IP ssh [email protected] # 通过 tailnet SSH ```

示例

仅向 tailnet 暴露本地 Postgres,然后从笔记本连接: ```bash # 在数据库服务器 sudo tailscale up # postgres 监听 100.x.y.z:5432(tailnet IP) # 编辑 pg_hba.conf 允许 100.64.0.0/10(tailnet 范围) # 在笔记本 tailscale up psql -h db.tailnet.ts.net -U postgres # 通过 WireGuard 连接,无公网端口 ``` 仅允许 'admin' 标签访问数据库的 ACL: ```json { "acls": [ { "action": "accept", "src": ["tag:admin"], "dst": ["tag:db:5432"] } ], "tagOwners": { "tag:db": ["[email protected]"], "tag:admin": ["[email protected]"] } } ```

常见问题

  • ⚠节点互不可见 —— 一方或双方未运行 'tailscale up'(已认证);用 'tailscale status' 检查是否都 Active。
  • ⚠流量中继(慢)而非直连 —— NAT 阻止 P2P;Tailscale 通过 DERP 中继。通常仍够快;启用 UPnP 或用公网 IP 实现直连。
  • ⚠ACL 未生效 —— ACL 对新连接生效;现有连接可能持续到节点重新认证或连接超时。

最佳实践

  • ✓ACL 中用标签(tag:db、tag:admin)而非用户邮箱,使访问在用户变更时存活且基于组。
  • ✓启用 MagicDNS 并用主机名(db.tailnet.ts.net)而非 IP —— 节点重新加入时稳定且可读性高。
  • ✓用 'tailscale serve' 或 'tailscale funnel' 暴露本地服务到 tailnet(或公开)而无需开防火墙端口。

常见问题解答

什么是Tailscale(网状 VPN)?它解决什么问题?

基于 WireGuard 的网状 VPN,将设备和服务器连入私有网络,零配置、SSO 认证和 ACL。 它可帮助开发者在不自建基础设施的前提下完成部署、存储与扩展,是云服务选型的核心参考。

如何在 5 分钟内上手Tailscale(网状 VPN)?

两步即可跑通:① 在 tailscale.com 注册(100 设备免费)。;② 在每个节点安装:curl -fsSL https://tailscale.com/install.sh | sh。。建议先用免费套餐验证流程,再接入生产环境。

Tailscale(网状 VPN) 最容易踩的坑是什么?

最高频的问题是:节点互不可见 —— 一方或双方未运行 'tailscale up'(已认证);用 'tailscale status' 检查是否都 Active。。建议在上线前用 checklist 逐项核对,并在 CI 中加入策略与配置扫描。

Tailscale(网状 VPN) 的最佳实践有哪些?

Tailscale(网状 VPN) 的最佳实践包括:ACL 中用标签(tag:db、tag:admin)而非用户邮箱,使访问在用户变更时存活且基于组。;启用 MagicDNS 并用主机名(db.tailnet.ts.net)而非 IP —— 节点重新加入时稳定且可读性高。;用 'tailscale serve' 或 'tailscale funnel' 暴露本地服务到 tailnet(或公开)而无需开防火墙端口。。其中首条「ACL 中用标签(tag:db、tag:admin)而非用户邮箱,使访问在用户变更时存活且基于组。」应作为团队默认规范写入 IaC 模板。

Tailscale(网状 VPN) 如何控制成本与避免账单意外?

三招防超支:① 为所有资源打 env/team 标签并启用账单告警;② 用预算阈值触发 Slack/邮件通知;③ 定期用 Cost Explorer 审查闲置资源并清理。Tailscale(网状 VPN) 多数提供免费套餐,先在免费额度内验证再放量。