VPSKnow

异地组网与虚拟局域网完全指南 (SD-WAN)

中级
45分钟

在传统的网络思维里,访问内网设备需要复杂的 DDNS 或暴露风险极高的端口转发。异地组网 (SD-WAN) 彻底颠覆了这一模式:它通过加密隧道将分散在世界各地的设备拉进同一个虚拟局域网。即使你的 VPS 在伦敦,NAS 在上海,手机在路边,它们也能像连在同一台交换机上一样互相访问。

🌐 什么是异地组网?

异地组网的核心在于虚拟网卡。每台加入网络的设备都会获得一个私有的 IP 地址(如 100.64.x.x)。这些设备之间通过基于 WireGuard 的加密协议直接通信(P2P 打洞)。如果两台设备由于复杂的防火墙无法直连,系统会自动通过中继服务器(Relay)进行转发。

⚖️ 方案选型:四大组网工具对比

2026 年主流的组网方案已经相当丰富,按需求选择:

工具 底层协议 自托管 配置难度 适合场景
Tailscale ⭐ WireGuard Headscale 替代 ⭐ 极简 个人/团队首选,一键组网,功能最丰富
ZeroTier 自研(L2层) ZTNet 自托管 ⭐⭐ 简单 需要二层透明组网、SMB/Bonjour局域网发现
Netbird WireGuard 完全支持 ⭐⭐ 简单 企业/团队,需要 SSO 登录和完全自托管
WireGuard 原生 WireGuard 完全自控 ⭐⭐⭐ 手动 极简两点互联,追求轻量无依赖

🦖 实战:Tailscale 极速组网

Tailscale 基于 WireGuard 数据平面,并提供设备注册、访问策略、DNS、子网路由和出口节点。是否适合取决于身份源、设备规模、审计和自托管要求;套餐限制会变化,部署前查看当前价格与功能页。

Tailscale 安装与基础组网
# 1. 优先按 Tailscale 官方 stable packages 页面配置发行版软件源
# 若使用官方安装脚本,先下载并审阅,不直接 curl | sh
curl -fsSL -o /tmp/tailscale-install.sh https://tailscale.com/install.sh
less /tmp/tailscale-install.sh
sudo sh /tmp/tailscale-install.sh

# 2. 启动并执行授权 (终端会给出登录 URL)
sudo tailscale up

# 3. 验证当前组网内的设备状态
tailscale status

# 4. 查看本机的 Tailscale IP
tailscale ip -4

运行后按终端链接完成认证,并在管理后台确认设备所有者、密钥过期和访问策略。设备会获得 tailnet 地址,但不应把它当作脱离控制平面的永久资产;设备删除、重新注册或策略变化都可能影响访问。

✨ Tailscale 核心特性速览

MagicDNS 自动为每台设备分配 DNS 名(如 my-vps.tailnet-name.ts.net),无需记 IP
Tailscale SSH 无需管理 SSH 密钥,组网内直接 `tailscale ssh 设备名` 即可登录
HTTPS 证书 一键为组网内服务申请受信任的 HTTPS 证书(基于 Let's Encrypt)
文件传输 taildrop 功能,组网内设备间直接拖拽传文件,跨平台

🏠 进阶:Subnet Router 子网路由

Subnet Router 是 Tailscale 最实用的功能之一:在家庭局域网的一台设备上运行,可以让整个家庭局域网(如 192.168.1.0/24)对组网内所有设备可见,无需在每台设备上安装 Tailscale。

子网路由器配置(家庭局域网接入 Tailscale)
# ── Subnet Router:将整个局域网接入 Tailscale 网络 ──────────────────────────
# 在家庭局域网网关机(如树莓派/NAS/路由器)上执行

# 1. 开启 IP 转发
echo 'net.ipv4.ip_forward = 1' | sudo tee -a /etc/sysctl.d/99-tailscale.conf
sudo sysctl -p /etc/sysctl.d/99-tailscale.conf

# 2. 广播子网路由(将 192.168.1.0/24 替换为你的局域网网段)
sudo tailscale up --advertise-routes=192.168.1.0/24

# 如果有多个子网:
sudo tailscale up --advertise-routes=192.168.1.0/24,10.0.0.0/24

# 3. 在 Tailscale 管理后台审批路由
# https://login.tailscale.com/admin/machines → Edit route settings → 勾选子网

# 4. 其他组网设备开启"Accept Routes"
sudo tailscale up --accept-routes

# 5. 验证路由、访问策略、真实 TCP 服务和源地址行为
ip route get 192.168.1.100
nc -vz 192.168.1.100 443
# 连接器密钥过期时路由会 fail-close;生产环境应禁用连接器密钥过期或部署高可用

🔒 进阶:ACL 访问控制策略

默认情况下,Tailscale 组网内的所有设备可以互相访问所有端口(零信任但全开放)。在多人共用或服务器较多时,建议配置 ACL 策略:按标签(Tag)定义设备角色,精确控制"谁能访问谁的哪些端口"。

Tailscale ACL 策略示例(管理后台 Access Controls 编辑)
// Tailscale ACL 策略文件(HuJSON 格式,在管理后台 Access Controls 页面编辑)
// 文档:https://tailscale.com/kb/1018/acls

{
  // 定义标签(打标签后可以按标签而非设备名控制访问)
  "tagOwners": {
    "tag:server":  ["autogroup:admin"],   // 服务器类设备
    "tag:client":  ["autogroup:admin"],   // 客户端设备(手机/电脑)
    "tag:monitor": ["autogroup:admin"],   // 监控设备
  },

  // 访问控制规则(默认全部拒绝,需显式允许)
  "acls": [
    // 1. 管理员可以访问所有设备
    {
      "action": "accept",
      "src": ["autogroup:admin"],
      "dst": ["*:*"],
    },

    // 2. 客户端只能访问服务器的特定端口
    {
      "action": "accept",
      "src": ["tag:client"],
      "dst": ["tag:server:22,80,443,3000-9999"],  // SSH + Web 服务端口
    },

    // 3. 服务器之间可以互相通信(用于数据库复制/备份等)
    {
      "action": "accept",
      "src": ["tag:server"],
      "dst": ["tag:server:*"],
    },

    // 4. 监控节点只能访问各设备的监控端口
    {
      "action": "accept",
      "src": ["tag:monitor"],
      "dst": ["*:9100"],   // Node Exporter 端口
    },
  ],

  // SSH 配置:允许通过 Tailscale SSH 访问(不需要密钥文件)
  "ssh": [
    {
      "action": "accept",
      "src":    ["autogroup:admin"],
      "dst":    ["tag:server"],
      "users":  ["autogroup:nonroot", "root"],
    },
  ],
}

⚙️ 高阶:Exit Node 与 DERP 自建

1. 出口节点 (Exit Node)

出口节点可转发客户端的互联网流量,适合在受信任的自有 VPS 上统一出口。它加密设备到出口节点这一段,不会让出口之后的流量天然匿名或可信;还要评估 DNS、IPv6、带宽、日志、当地规则和出口节点失效时的行为。

Exit Node 配置
# 1. 开启系统 IP 转发功能
echo 'net.ipv4.ip_forward = 1' | sudo tee -a /etc/sysctl.d/99-tailscale.conf
echo 'net.ipv6.conf.all.forwarding = 1' | sudo tee -a /etc/sysctl.d/99-tailscale.conf
sudo sysctl -p /etc/sysctl.d/99-tailscale.conf

# 2. 启动时声明自己为出口节点
sudo tailscale up --advertise-exit-node

# 3. 在 Tailscale 管理后台审批该设备的 Exit Node 权限
# 访问 https://login.tailscale.com/admin/machines → 找到设备 → Edit route settings

# 4. 客户端连接时选择出口节点
tailscale up --exit-node=<exit-node-IP>    # 命令行
# 或在手机/电脑的 Tailscale App 里图形化选择

2. 自建 DERP 中继服务器(国内加速)

先用 tailscale statustailscale pingtailscale netcheck 确认是否中继,再比较真实业务延迟。自建 DERP 会增加证书、升级、容量、监控和可用性责任,也不保证被客户端选中;只有重复测量证明中继路径是瓶颈时再评估。

DERP 节点完整部署
# ── 在国内 VPS 上自建 DERP 中继节点 ─────────────────────────────────────────

# 1. 安装 Go 环境(DERP 用 Go 编写)
apt install golang-go -y
# 或者用官方最新版:
wget https://go.dev/dl/go1.22.linux-amd64.tar.gz
tar -C /usr/local -xzf go1.22.linux-amd64.tar.gz
export PATH=$PATH:/usr/local/go/bin

# 2. 安装 derper(Tailscale DERP 服务端)
go install tailscale.com/cmd/derper@latest

# 3. 申请 SSL 证书(DERP 需要 HTTPS)
certbot certonly --standalone -d derp.yourdomain.com

# 4. 创建 systemd 服务文件
cat > /etc/systemd/system/derper.service << 'EOF'
[Unit]
Description=Tailscale DERP Server
After=network.target

[Service]
Type=simple
User=root
ExecStart=/root/go/bin/derper \
  --hostname=derp.yourdomain.com \
  --certmode=manual \
  --certdir=/etc/letsencrypt/live/derp.yourdomain.com \
  --stun \
  --verify-clients
Restart=always

[Install]
WantedBy=multi-user.target
EOF

systemctl daemon-reload
systemctl enable --now derper

# 5. 在 Tailscale 管理后台配置自定义 DERP
# 访问 https://login.tailscale.com/admin/dnsplit
# 或在 ACL 策略中添加:
# "derpMap": {
#   "OmitDefaultRegions": false,  // 保留官方节点作为备份
#   "Regions": {
#     "900": {
#       "RegionID": 900,
#       "RegionCode": "cn-custom",
#       "RegionName": "China Custom DERP",
#       "Nodes": [{
#         "Name": "1",
#         "RegionID": 900,
#         "HostName": "derp.yourdomain.com",
#         "DERPPort": 443,
#         "STUNPort": 3478
#       }]
#     }
#   }
# }

# 6. 验证 DERP 节点可用
tailscale netcheck

🖥️ 完全自托管:Headscale 控制器

Headscale 是面向个人和小型开源组织的自托管 Tailscale 控制服务器实现,并非 Tailscale SaaS 的完整等价替代。采用它意味着自行负责兼容性、升级、备份、身份认证、策略、HTTPS 和高可用。

🧭

单 Tailnet 定位

适合个人实验和小型组织,先核对当前客户端兼容范围

🔒

自管控制面

自行保管数据库、私钥、策略、认证与备份

🩺

自负可用性

需监控 HTTPS、健康端点、升级和灾难恢复

安装 Headscale

Headscale 安装
# ── Headscale:自托管 Tailscale 控制服务器实现 ───────────────────────────────
# 官方文档:https://headscale.net

# Debian 12 / Ubuntu 22.04+ 优先使用官方 Release 的对应 .deb
# 在 Release 页面固定版本与架构,核对发布信息后下载
HEADSCALE_VERSION="<X.Y.Z>"
HEADSCALE_ARCH="amd64"
wget -O /tmp/headscale.deb \
  "https://github.com/juanfont/headscale/releases/download/v${HEADSCALE_VERSION}/headscale_${HEADSCALE_VERSION}_linux_${HEADSCALE_ARCH}.deb"
sudo apt install /tmp/headscale.deb

# 从安装包提供的当前示例开始配置,不生成可能与版本错位的模板
sudo less /usr/share/doc/headscale/examples/config-example.yaml
sudo systemctl status headscale

关键配置项

/etc/headscale/config.yaml(关键配置)
# 文件路径:/etc/headscale/config.yaml(关键配置项)

# 服务器地址(必须是 HTTPS,客户端用此地址连接)
server_url: https://headscale.yourdomain.com:443

# 监听地址
listen_addr: 0.0.0.0:8080

# 分配给设备的虚拟 IP 段
ip_prefixes:
  - fd7a:115c:a1e0::/48
  - 100.64.0.0/10

# DNS 配置(MagicDNS)
dns_config:
  magic_dns: true
  base_domain: headscale.internal    # 设备通过此域名互访
  nameservers:
    - 1.1.1.1
    - 8.8.8.8

# 数据库(默认 SQLite,生产可改为 PostgreSQL)
db_type: sqlite3
db_path: /var/lib/headscale/db.sqlite

# DERP 配置(可接入自建 DERP)
derp:
  server:
    enabled: false
  urls:
    - https://controlplane.tailscale.com/derpmap/default

日常管理命令

# ── Headscale 日常管理命令 ──────────────────────────────────────────────────

# 创建用户命名空间(相当于 Tailscale 的 Tailnet)
headscale users create myuser

# 生成设备注册 Key(用于新设备加入)
headscale preauthkeys create --user myuser

# 查看已注册设备
headscale nodes list

# 删除设备
headscale nodes delete --identifier <node-id>

# 客户端连接 Headscale(替换官方控制服务器地址)
sudo tailscale up \
  --login-server=https://headscale.yourdomain.com \
  --authkey=<上面生成的PreAuthKey>

# 查看路由
headscale routes list
headscale routes enable --route <route-id>

🌍 实战:ZeroTier 经典组网

如果您更倾向于完全自主控制网络(不依赖第三方 OAuth 登录),或者需要处理更复杂的二层网络(Layer 2)协议(如 SMB 网上邻居、游戏局域网联机),ZeroTier 是更好的选择。

ZeroTier 安装与加入网络
# 1. 按 ZeroTier 当前官方安装页选择发行版软件包
# 若使用官方脚本,先下载、审阅,再执行
curl -fsSL -o /tmp/zerotier-install.sh https://install.zerotier.com
less /tmp/zerotier-install.sh
sudo bash /tmp/zerotier-install.sh

# 2. 加入虚拟网络 (将 NETWORK_ID 替换为控制台生成的 16 位 ID)
sudo zerotier-cli join NETWORK_ID

# 3. 检查连接状态
sudo zerotier-cli listnetworks

# 4. 查看当前节点信息
sudo zerotier-cli info

⚠️ 核心提示: 加入网络后,必须登录 ZeroTier Central 控制台,手动勾选新加入设备的 Auth 复选框,设备才能获得 IP 并通信。这是新手最容易卡住的地方。

🌙 历史方案:ZeroTier Private Moon

ZeroTier 官方已将 Private Moons 标为弃用,并明确不建议新部署,原因包括可靠性和支持边界。Moon 是补充 root,不应简单描述成保证选中的流量中继。新项目应使用当前受支持架构;已有部署只做现状盘点、升级验证和迁移计划。

ZeroTier Private Moon 弃用说明
# ZeroTier 官方已将 Private Moons 标为弃用,不建议新部署
# 已有 Moon 仅按官方迁移/维护文档盘点,避免扩建为新依赖
# 先运行 zerotier-cli peers / info 记录现状,并为移除 Moon 做回退演练
# 需要受支持的自定义 root 基础设施时,联系 ZeroTier 评估企业方案

🐦 新兴:Netbird 全自托管组网

Netbird 是 2023-2026 年快速崛起的开源 Mesh VPN,基于 WireGuard,对标 Tailscale 但完全支持自托管(包括控制平面)。支持 SSO 登录(Google/GitHub/Okta/自建 IDP),自带 Web 管理界面,非常适合需要团队协作且不想依赖 Tailscale 官方服务器的场景。

Netbird 云服务 + 自托管两种方案
# ── Netbird:完全开源、可自托管的现代 Mesh VPN ──────────────────────────────
# GitHub: https://github.com/netbirdio/netbird  (2025-2026 快速增长)
# 特点:完全兼容 WireGuard,支持 SSO 登录,自带 Web 管理界面

# ── 方案一:使用 Netbird 官方云服务(最简单)────────────────────────────────
# 在 app.netbird.io 注册账号,支持 Google/GitHub/微软 SSO 登录
# 免费版:5台设备,无限流量

# 安装客户端(Linux):优先按当前官方包仓库说明;使用脚本时先审阅
curl -fsSL -o /tmp/netbird-install.sh https://pkgs.netbird.io/install.sh
less /tmp/netbird-install.sh
sudo sh /tmp/netbird-install.sh

# 登录(自动打开浏览器授权)
netbird up

# 查看组网状态
netbird status

# ── 方案二:完全自托管(Netbird Self-Hosted)────────────────────────────────
# 前提:一台有公网 IP 的 VPS + Docker

# 1. 下载 Netbird 自托管部署脚本
curl -o docker-compose.yml \
  https://raw.githubusercontent.com/netbirdio/netbird/main/infrastructure_files/docker-compose.yml

# 2. 下载环境变量示例文件
curl -o setup.env \
  https://raw.githubusercontent.com/netbirdio/netbird/main/infrastructure_files/setup.env

# 3. 修改 setup.env 中的关键配置:
# NETBIRD_DOMAIN=vpn.yourdomain.com
# NETBIRD_LETSENCRYPT_EMAIL=your@email.com

# 4. 一键启动(自动申请 SSL 证书)
docker compose up -d

# 5. 客户端连接自托管服务器
netbird up --management-url https://vpn.yourdomain.com:443

🔧 极简:WireGuard 原生两点组网

Tailscale/ZeroTier/Netbird 都是基于 WireGuard 的上层封装,提供了自动发现和控制平面。如果您只需要固定两台机器互联,不需要多设备管理界面,可以直接使用 WireGuard 原生——配置文件只有十几行,无任何第三方依赖,内核级加密性能最高。

WireGuard 服务端 + 客户端完整配置
# ── WireGuard 原生两点组网(最轻量,手动配置)──────────────────────────────
# 适用场景:固定两台机器互联,不需要多设备管理界面,追求极简

# ── 服务端(VPS,有公网IP)────────────────────────────────────────────────
apt install wireguard -y

# 生成服务端密钥对
wg genkey | tee /etc/wireguard/server_private.key | wg pubkey > /etc/wireguard/server_public.key
chmod 600 /etc/wireguard/server_private.key

# 查看生成的密钥(记录下来)
cat /etc/wireguard/server_private.key   # 服务端私钥
cat /etc/wireguard/server_public.key    # 服务端公钥

# 创建服务端配置文件
cat > /etc/wireguard/wg0.conf << 'WGEOF'
[Interface]
Address = 10.10.0.1/24         # VPN 内网地址
ListenPort = 51820             # 监听端口
PrivateKey = <服务端私钥>
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

[Peer]
PublicKey = <客户端公钥>         # 稍后填写
AllowedIPs = 10.10.0.2/32       # 客户端的 VPN 内网地址
WGEOF

# 开放防火墙端口
ufw allow 51820/udp

# ── 客户端(家庭/办公网络,可以没有公网IP)──────────────────────────────────
apt install wireguard -y

# 生成客户端密钥对
wg genkey | tee /etc/wireguard/client_private.key | wg pubkey > /etc/wireguard/client_public.key

# 创建客户端配置文件
cat > /etc/wireguard/wg0.conf << 'WGEOF'
[Interface]
Address = 10.10.0.2/24         # 客户端 VPN 内网地址
PrivateKey = <客户端私钥>

[Peer]
PublicKey = <服务端公钥>         # 服务端公钥
Endpoint = <服务端公网IP>:51820  # 服务端地址和端口
AllowedIPs = 10.10.0.0/24       # 允许路由的网段(只走 VPN 内网)
# AllowedIPs = 0.0.0.0/0        # 全流量走 VPN(改成这个相当于 Exit Node)
PersistentKeepalive = 25        # 保持连接(NAT 穿透)
WGEOF

# ── 双方互相填写对方公钥后启动 ────────────────────────────────────────────
# 将客户端公钥填入服务端 wg0.conf 的 [Peer] PublicKey
# 将服务端公钥填入客户端 wg0.conf 的 [Peer] PublicKey

# 启动并设置开机自启
wg-quick up wg0
systemctl enable wg-quick@wg0

# 验证连接
wg show                        # 查看握手状态
ping 10.10.0.1                 # 客户端 ping 服务端(应该通)

📊 架构对比:SD-WAN vs 内网穿透

维度 FRP / 内网穿透 Tailscale / SD-WAN
安全性 需暴露端口到公网,易被扫描 完全不开放入站端口,零信任架构
配置难度 需要手动配置服务端和客户端 几乎零配置,一键登录
流量路径 所有流量必须经过 VPS 中转 优先 P2P 直连,速度不受 VPS 带宽限制
适用场景 将单个内网服务对外暴露(如 NAS 远程访问) 多设备互联、访问内网全部资源
需要 VPS 必须,且 VPS 带宽决定速度上限 可选(仅 DERP/Moon 中继时需要)
管理界面 需自建或无 Tailscale/Netbird 提供 Web 控制台

常见问题解答

Tailscale 和 ZeroTier 怎么选?有什么核心区别? +

Tailscale 侧重基于身份和策略的三层设备互联,并提供子网路由与出口节点;ZeroTier 的虚拟网络模型适合部分需要二层语义的场景。选择前比较当前套餐、平台支持、身份源、策略表达、审计、自托管责任和真实网络下的直连率。Headscale 面向个人和小型组织,Private Moon 已弃用;不要把任何方案视为完整无成本替代。

Tailscale 组网后两台机器延迟很高,如何判断是 P2P 直连还是中继? +

tailscale statustailscale ping 对端 区分 direct 与 DERP relay,再用 tailscale netcheck 查看 UDP、NAT 和中继可达性。直连时延仍包含实际网络路径,中继时延也不能用固定公式推算。先排查防火墙、NAT、IPv6 和本地出口;只有重复测量证明 DERP 是瓶颈时,才承担自建中继的升级、证书、容量和容灾成本。

如何将整个局域网(而非单台机器)接入 Tailscale 网络? +

使用 Subnet Router(子网路由器)功能(见本文章节):在局域网中选一台安装了 Tailscale 的设备(如 NAS 或树莓派),以该设备为网关,让整个子网的流量通过它路由到 Tailscale 网络中。步骤:① 开启 IP 转发;② 执行 sudo tailscale up --advertise-routes=192.168.1.0/24(替换为你的局域网网段);③ 在 Tailscale 管理后台审批该子网路由;④ 其他组网设备在"设置"中开启"使用子网路由"(--accept-routes)。完成后,您在世界任何地方都可以直接访问家里局域网内的设备(如 192.168.1.100),就像人在家一样。

Tailscale 免费版有什么限制?超过限制怎么办? +

套餐、价格和功能限制会变化,应以 Tailscale 当前定价页为准,并核对用户、设备、子网路由器、审计和身份功能。超出边界时可升级套餐,或评估 Headscale/NetBird 等自托管方案;自托管会把兼容性、安全更新、备份和可用性责任转移给自己,不能只按设备数量决定。

组网后如何访问组网内其他设备上的 Docker 容器? +

直接用 Tailscale IP + 容器映射的端口访问即可。例如对方 Tailscale IP 是 100.64.1.2,容器端口映射为 -p 8080:80,则访问 http://100.64.1.2:8080。注意:容器端口必须绑定到 0.0.0.0(默认)而非 127.0.0.1,否则只监听本机。进阶用法:在对方机器上部署 Nginx 反代,将各容器服务统一用子域名暴露(如 nextcloud.internal.yourdomain.com),并在 Tailscale 网络内的 AdGuard Home(见第26篇)配置 DNS 重写,实现组网内的 DNS 服务发现——无需记忆端口号。

ZeroTier 加入网络后一直显示 REQUESTING_CONFIGURATION,无法获得 IP? +

这是 ZeroTier 新手最常见的问题。ZeroTier 默认网络是私有网络,新设备加入后需要管理员手动授权,否则设备永远处于等待状态。解决步骤:① 登录 my.zerotier.com;② 点击您的网络 Network ID;③ 下滑到 Members 列表,找到新加入的设备(通过 Node ID 识别);④ 勾选该设备行左侧的 Auth 复选框;⑤ 稍等几秒,设备会自动获得分配的 IP 地址。如果自动分配的 IP 不在您期望的网段,在 Advanced → Managed Routes 中修改 IP 分配范围。

异地组网和 VPN 有什么区别?能替代 VPN 吗? +

技术上,Tailscale/ZeroTier 本质上也是 VPN(虚拟私有网络)的一种形式,但使用场景不同:传统 VPN(OpenVPN/WireGuard 原生)通常是将所有流量通过一台 VPS 出口,用于翻墙或企业远程接入;异地组网(Mesh VPN)的设计目标是多设备互联,流量优先 P2P 直连,不走单一出口节点(除非开启 Exit Node)。能否替代传统 VPN?部分场景可以:通过 Exit Node 功能,Tailscale 可以实现"全流量走 VPS 出口",效果类似传统 VPN;但 Tailscale 和 ZeroTier 本身并不具备流量混淆能力,在 GFW 面前容易被识别和封锁,不适合作为翻墙工具(需要用第25篇的代理工具)。

组网设备之间的流量有加密吗?安全性如何? +

数据平面加密不等于整套系统自动安全。除协议外,还要审阅身份提供商、设备密钥过期、节点审批、访问策略、控制面元数据、客户端更新、端点安全和日志。DERP 中继不能读取 Tailscale 的端到端数据平面内容,但控制面仍承担协调职责;Headscale 自托管减少第三方控制面依赖,同时增加自己的密钥、数据库和运维风险。

Tailscale 在国内连接很慢甚至无法使用,有没有解决方案? +

先记录失败发生在登录、控制面、DNS、直连打洞还是 DERP 中继,并从不同接入网络复测。自建 DERP 或迁移 Headscale 都会扩大运维范围,且不能保证解决所有路径问题;应先做小规模兼容性和回退验证。ZeroTier Private Moon 已被官方弃用,不再作为新部署的解决方案。

完成异地组网后,下一步应该做什么? +

组网完成后,您的设备形成了一个安全的私密网络,按 30 篇路径的自然延伸:① 代理服务器搭建(第25篇):组网提供内网互通,代理解决出站流量问题,两者是互补关系——VPS 上的代理可以设置为只允许 Tailscale 内网 IP 访问,安全性大幅提升,参见代理服务器搭建;② 私有 DNS 服务(第26篇):在组网内的某台 VPS 上部署 AdGuard Home,为所有组网设备提供去广告、防污染的 DNS 解析,通过 Tailscale 的 Magic DNS 功能还能实现组网内的服务发现,参见DNS 服务器搭建;③ 监控组网节点状态:在 Uptime Kuma 中添加各组网节点的内网 IP 监控,实时掌握所有机器的在线状态,参见服务器监控指南