极空间安装Tailscale的详细教程

在极空间(Zspace)上安装 Tailscale,目前最主流且稳定的方式是通过 Docker 部署。极空间系统虽然目前已有内建的远程访问功能,但使用 Tailscale 可以实现更强大的虚拟内网组网。

以下是为您准备的详细保姆级教程:


第一步:准备 Tailscale Auth Key

在安装之前,建议先获取一个授权密钥,这样可以让 Docker 容器启动后自动关联你的账号。

  1. 登录 Tailscale 管理控制台

  2. 进入 SettingsKeys

  3. 点击 Generate auth key

  4. 建议勾选 Reusable(可重复使用)和 Ephemeral(临时设备,若容器删除则设备自动离线),然后点击生成并复制保存该 Key(格式通常为 tskey-auth-xxx)。


第二步:极空间 Docker 安装步骤

  1. 打开 Docker 管理器:进入极空间桌面,点击“Docker”图标。

  2. 下载镜像

    • 在“镜像仓库”中搜索 tailscale/tailscale

    • 选择 latest 版本下载。

  3. 配置容器

    • 在“本地镜像”中找到下载好的镜像,点击添加到容器

    • 基础设置

      • 容器名称:tailscale

      • 勾选“能力”中的 NET_ADMIN(非常重要,否则无法修改网络路由)。

    • 路径设置(存储卷)

      • 在极空间上创建一个文件夹(例如:/docker/tailscale)。

      • 装载路径设置为:/var/lib/tailscale(用于持久化保存登录状态和配置)。

    • 网络设置

      • 切换为 host 模式(主机网络)。
    • 环境设置(点击添加变量):

      • TS_AUTHKEY:填入你刚才在第一步申请的 tskey-auth-xxx

      • TS_STATE_DIR/var/lib/tailscale

      • TS_USERSPACE:建议设置为 false

  4. 应用启动:点击完成,启动容器。


第三步:验证与后续配置

  1. 验证状态:回到 Tailscale Machines 页面,你应该能看到名为 tailscale 的新设备(极空间)已上线。

  2. 设置子网路由(可选但强烈建议):

    如果你想通过 Tailscale 访问极空间所在局域网的其他设备(如路由器、摄像头),需要在极空间 Docker 的“终端”中执行以下命令:

    Bash

    tailscale up --advertise-routes=192.168.x.0/24 --accept-dns=false
    
    

    (注:将 192.168.x.0/24 替换为你家里的实际网段)

  3. 管理后台开启路由:在 Tailscale 官网后台,点击该设备旁边的三个点 ...Edit route settings,勾选你刚才发布的子网段并保存。


常见问题说明

  • 权限问题:极空间部分机型可能需要开启“特权模式”,在容器创建时的“基础设置”中可以找到该开关。

  • 断连恢复:因为使用了路径挂载(/var/lib/tailscale),即使你重启极空间或更新 Docker 镜像,也不需要重新扫码登录。

如果在局域网内除极空间外,还有其他服务器需要打洞,那么如何映射udp端口?

这是一个非常经典的问题。在同一个局域网(同一个公网 IP)下,41641 端口就像是一个“独占车位”,一台服务器占用了,第二台就不能直接使用同一个外部端口。

要让多台设备都能实现“打洞”直连,你有两种主要的解决方案:


方案一:使用不同的外部端口(推荐,最稳定)

虽然 Tailscale 默认倾向于使用 41641,但它非常聪明,能够识别被转发到它身上的任何 UDP 端口。你可以采取“错位映射”的策略:

内部设备 内部 IP 内部端口 (固定) 外部端口 (手动定义)
极空间 192.168.10.188 UDP 41641 UDP 41641
服务器 B 192.168.10.189 UDP 41641 UDP 41642
服务器 C 192.168.10.190 UDP 41641 UDP 41643

操作步骤:

  1. 在路由器上,分别为不同的局域网 IP 设置端口转发。

  2. 关键点在于:外部端口要不同,但内部端口都可以指向 41641

  3. Tailscale 客户端在启动后会通过 STUN 协议发现:“哦!虽然我监听的是 41641,但外网现在通过 41642 也能找到我。” 随后它会把这个信息同步给你的 MacBook。


2. 修改 Tailscale 监听端口

如果你希望内外端口保持一致(方便管理),你可以手动修改其他服务器上 Tailscale 的监听端口。

  • Linux / Docker 端:

    在启动命令或环境变量中加入参数。如果是命令行,可以执行:

    Bash

    tailscale up --port 41642
    
    
  • Windows 端:

    需要修改注册表(相对麻烦),通常不建议。


3. 利用 IPv6 的天然优势(最高级方案)

由于你之前的 netcheck 显示你有 IPv6 地址,这其实是解决多设备打洞的“银弹”:

  • 无需端口转发:IPv6 下每个设备都有独立的公网 IP,不存在端口冲突。

  • 只需开防火墙:在路由器防火墙中,允许 入站(Inbound) 的 UDP 41641 流量指向你局域网内的各个设备即可。

  • 效果:所有设备都能同时通过自己的公网 IPv6 地址直接建立 P2P 连接,完全不需要在路由器上做复杂的 NAT 映射。


总结建议

  1. 首选 IPv6:如果你的 MacBook 也有 IPv6(比如手机热点或公司网络),只要确保路由器没拦截 IPv6 UDP 流量,所有设备都能自动直连。

  2. 次选错位映射:在路由器上把外部的 4164241643 分别指向不同服务器的 41641