Debian 配置 Tailscale 组网
本文记录一种较直接的做法:使用 Docker Compose 在 Debian 上运行 tailscale/tailscale 容器,把当前机器加入你的 Tailscale 网络,便于后续远程访问、内网互通或跨设备组网。
1. 目标
完成后你将得到:
- 一套可复用的
compose.yml - Tailscale 容器开机自启
- 当前 Debian 主机加入 tailnet
- 可通过命令查看 Tailscale 状态与分配到的组网 IP
2. 前提条件
执行前请先确认:
- 系统为 Debian,且已安装 Docker 与 Docker Compose
- 主机可以正常访问外网
- 你已登录 Tailscale 管理后台
- 已准备好一个可用的
auth key
获取 auth key:
- 打开 Tailscale 管理后台密钥页面
- 创建一个新的 key
- 复制备用
3. 创建目录与配置文件
先准备数据目录:
sudo mkdir -p /volume1/docker/tailscale
然后新建 compose.yml:
services:
tailscale:
container_name: tailscale
image: tailscale/tailscale:latest
network_mode: host
restart: unless-stopped
cap_add:
- NET_ADMIN
- NET_RAW
volumes:
- /volume1/docker/tailscale:/var/lib/tailscale
- /dev/net/tun:/dev/net/tun
environment:
- TS_STATE_DIR=/var/lib/tailscale
- TS_USERSPACE=false
- TS_AUTHKEY=<你的key>
4. 配置项说明
上面这份配置里,关键项含义如下:
network_mode: host让容器直接使用宿主机网络,Tailscale 组网场景下通常更直接。restart: unless-stopped机器重启后会自动恢复运行,适合作为常驻网络组件。NET_ADMIN与NET_RAW允许容器配置网络相关能力,否则 Tailscale 通常无法正常工作。/dev/net/tun:/dev/net/tun提供 TUN 设备给容器使用,这是 Tailscale 建立虚拟网络接口所需的关键条件。TS_STATE_DIR=/var/lib/tailscale指定状态目录,用于保存登录状态与节点信息。TS_USERSPACE=false表示使用内核 TUN 模式,而不是 userspace networking。TS_AUTHKEY=<你的key>首次启动时用于自动登录并加入 tailnet,注意官方 key 有效期最长为90天,过期需重新申请。
5. 启动容器
在 compose.yml 所在目录执行:
sudo docker compose up -d
如果需要查看容器是否已正常起来,可执行:
sudo docker ps
sudo docker logs tailscale
6. 查看状态与组网 IP
启动后,执行以下命令确认节点是否已经加入网络:
# 查看当前状态
docker exec -it tailscale tailscale status
# 查看本机的 Tailscale IP
docker exec -it tailscale tailscale ip
如果配置成功,tailscale status 一般会列出:
- 当前节点名称
- 已登录账号
- tailnet 中的其他节点
- 各节点对应的
100.x.x.x组网 IP
tailscale ip 则会直接返回当前设备在 Tailscale 网络中的地址。
7. 常用运维命令
重启容器:
sudo docker compose restart
停止容器(无法恢复):
sudo docker compose down
查看实时日志:
docker logs -f tailscale
进入容器执行命令:
docker exec -it tailscale sh