社团自建 Tailscale 使用指南
什么是 Tailscale
Tailscale 是一个基于 WireGuard 的零配置虚拟组网服务,它可以让你在任何地方都能安全地访问计协内部的服务。社团自建的 Tailscale 服务(基于开源的 Headscale)提供了一个私有的、安全的虚拟组网解决方案。
主要功能和优势
- 简单易用:只需安装客户端并登录即可连接到虚拟网络
- 身份验证:接入NBTCA的账号进行身份验证,确保只有社团成员可以访问
- 安全加密:基于 WireGuard 协议,提供军事级别的加密保护
- 零配置:无需配置防火墙规则或端口转发,开箱即用
- 跨平台:支持 Windows、macOS、Linux、Android、iOS 等多个平台
- 点对点连接:设备之间可以直接通信,延迟更低
- ACL 访问控制:可以精确控制哪些设备可以访问哪些服务
- 中转节点:由多位成员提供的中转节点,在无法P2P连接时提供流量中转服务
使用场景
- 远程访问社团服务器:在家里或宿舍访问社团的文件服务器、校园网内网网站等
- 文件共享:在不同设备间安全地共享文件
- 开发测试:让团队成员可以访问开发环境和测试服务器
- 游戏联机:通过虚拟网络进行局域网游戏联机
准备工作
在开始使用之前,你需要:
- 注册NBTCA账号:https://myid.app.nbtca.space/
- 使用自己的账号登录 Headscale 管理面板: https://headscale.app.nbtca.space/admin
- 在你的设备上安装 Tailscale 客户端
不同设备的使用方式
Windows
下载安装包
访问 Tailscale 官网 下载 Windows 安装包。
安装 Tailscale
双击下载的安装包,按照提示完成安装。完成后不用点击登录按钮。
配置 Headscale 服务器
安装完成后,打开命令提示符(CMD)或 PowerShell,运行以下命令:
powershelltailscale up --login-server=https://headscale.app.nbtca.space完成认证
浏览器会自动打开认证页面,按照页面提示完成认证即可。
macOS
下载安装包
访问 Tailscale 官网 下载 macOS 安装包,或使用 Homebrew:
bashbrew install tailscale启动 Tailscale
如果使用 Homebrew 安装,需要先启动服务:
bashsudo tailscaled install-system-daemon配置 Headscale 服务器
打开终端,运行:
bashtailscale login --login-server=https://headscale.app.nbtca.space完成认证
浏览器会自动打开认证页面,按照提示完成认证。
Linux
安装 Tailscale
根据你的发行版选择对应的安装方式:
Ubuntu / Debian
bashcurl -fsSL https://tailscale.com/install.sh | shArch Linux
bashsudo pacman -S tailscaleFedora
bashsudo dnf install tailscale启动服务
bashsudo systemctl enable --now tailscaled配置 Headscale 服务器
bashsudo tailscale login --login-server=https://headscale.app.nbtca.space完成认证
终端会显示一个 URL,在浏览器中打开该 URL 完成认证。
Android
安装应用
在 Google Play 商店搜索 "Tailscale" 并安装,或从 F-Droid 下载开源版本。
配置自定义服务器
- 打开 Tailscale 应用
- 点击右上角的设置图标(三个点)
- 选择 "Use custom control server"
- 输入社团提供的 Headscale 服务器地址
- 点击 "Sign in"
完成认证
应用会打开浏览器进行认证,按照提示完成即可。
iOS
安装应用
在 App Store 搜索 "Tailscale" 并安装。
配置自定义服务器
- 打开 Tailscale 应用
- 点击右上角的设置图标(齿轮)
- 点击账户
Accounts - 选择 "Use custom coordination server"
- 输入社团提供的 Headscale 服务器地址
https://headscale.app.nbtca.space - 点击 "Sign in"
使用 Docker Compose 部署
如果你想在服务器上使用 Docker Compose 运行 Tailscale 客户端,可以参考以下配置:
基本配置
创建一个 docker-compose.yml 文件:
version: "3"
services:
tailscale:
image: ghcr.io/tailscale/tailscale:latest
container_name: tailscale
hostname: tailscale-docker
volumes:
- ./tailscale-data:/var/lib/tailscale # 存储 state,保持登录状态
- /var/run/tailscale:/var/run/tailscale
# # 取消下面这段的注释让宿主机也可以直接使用虚拟网络
# - /lib/modules:/lib/modules:ro
# - /dev/net/tun:/dev/net/tun # TUN 设备访问
# privileged: true # tailscale 需要特权模式才能配置网络接口
# devices:
# - /dev/net/tun:/dev/net/tun
# cap_add:
# - NET_ADMIN
# - SYS_MODULE
# # https://github.com/wg-easy/wg-easy/issues/1554
# - NET_RAW
# network_mode: host # tailscale 直接控制宿主网络(可选)
environment:
# TS_AUTHKEY: xxx # 如果使用预注册密钥,可在注册账号后联系管理员获取
TS_EXTRA_ARGS: --advertise-tags=tag:container --login-server=https://headscale.app.nbtca.space
TS_STATE_DIR: /var/lib/tailscale
TS_SOCKET: /var/run/tailscale/tailscaled.sock
TS_USERSPACE: false # 如果遇到问题可以尝试改成true,但性能会差一些,false即运行在内核模块
TS_HOSTNAME: xxx-docker # 你的设备名称 建议修改
TS_DEBUG_FIREWALL_MODE: nftables # 如果操作系统的防火墙使用的是iptables,请去掉这一行
TZ: Asia/Shanghai
healthcheck:
test:
[
"CMD-SHELL",
'tailscale status --json | grep -q ''"BackendState": "Running"''',
]
restart: unless-stopped
# # 可选:部署 DERP 中转服务器,如果你运行在公网服务器并且带宽足够大,贡献给社团
# derp-server:
# container_name: tailscale-derp
# image: ghcr.io/nbtca/tailscale-derp:edge
# network_mode: host
# depends_on:
# tailscale:
# condition: service_healthy
# environment:
# TZ: Asia/Shanghai
# DERP_HOST: "公网IP或域名"
# DERP_PORT: 10086
# STUN_PORT: 10086
# HTTP_PORT: -1
# VERIFY_CLIENTS: true
# volumes:
# - /var/run/tailscale:/var/run/tailscale
# restart: unless-stopped启动服务
# 创建状态目录
mkdir -p tailscale-state
# 启动容器
docker-compose up -d
# 查看日志
# 比如手动登录的时候可以进入查看登录链接,复制后在浏览器中打开
docker-compose logs -f tailscale常见问题
获取认证密钥
通常不需要使用pre auth key,正常启动会跳转使用统一身份认证,如有需要请在连接一台设备后,联系社团管理员获取预注册密钥(Pre-auth key)。
进阶使用
子网路由
如果你想让 Tailscale 网络中的其他设备访问你本地的子网(例如 192.168.1.0/24),可以启用子网路由:(注意启动后需要管理员去后台批准,且不能与已有子网重复)
# 在 Linux 上
sudo tailscale up --advertise-routes=192.168.1.0/24 --login-server=https://headscale.app.nbtca.space
# 在 Docker 中
# 在 docker-compose.yml 的 TS_ROUTES 环境变量中设置
TS_ROUTES=192.168.1.0/24然后需要管理员在 Headscale 服务器上批准路由:
headscale routes enable -i <node-id> -r 192.168.1.0/24相关链接
总结
通过社团自建的 Tailscale 网络,我们可以更方便、更安全地访问社团的各种资源。如果你在使用过程中遇到任何问题,欢迎在社团群里提问或联系管理员寻求帮助!
祝你使用愉快!🎉