架构
- tailscale官方服务
- 中心点:官方节点发现服务器
- 客户端:每个设备包括本地服务器也是一个端点,google登录每个节点,同一个账号下形成互通
- 官方子域名/公网IP,无损直接ssh使用
- 非常流畅,无需代理
- headscale私有化
- 中心点:headscale申请端口,headscale-admin管理后台
- 客户端:向私有中心端口发起申请,后台点同意
- 未部署,不知道实际怎么样
- 优先建立点对点,托底中转服务
- 登录凭证可保存复用
docker-compose.yml
services:
tailscale:
image: tailscale/tailscale:stable # 使用官方长期维护的稳定版标签
container_name: tailscale
restart: always
privileged: true # 必须:给予网络管理特权以创建 tun 虚拟网卡
network_mode: "host" # 必须:使用 host 模式实现最优的 P2P 穿透打洞性能
# 👇 新增下面这两个环境变量,彻底关掉临时节点模式
environment:
- TS_EPHEMERAL=false
- TS_STATE_DIR=/var/lib/tailscale
# 👇 强行清空容器内的代理环境变量,让它走原生非代理网络(国内大部分时间可以直接握手)
- HTTP_PROXY=
- HTTPS_PROXY=
- http_proxy=
- https_proxy=
volumes:
- ./data/tailscale:/var/lib/tailscale # 核心持久化:保存设备证书和状态,防止重启后重连/变成新设备
- /dev/net/tun:/dev/net/tun # 必须:映射宿主机的网络隧道设备
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro # 严格统一时区,防止证书因时间错乱失效
# 资源约束:防止由于网络风暴、DDoS或异常流量压垮公司服务器
deploy:
resources:
limits:
cpus: '0.50' # 限制最多使用 50% 的单核 CPU
memory: 256M # 限制最多使用 512MB 内存