https://github.com/tailscale/tailscale
https://hub.docker.com/r/tailscale/tailscale
docker-compose
https://post.smzdm.com/p/a5xn5mzk/
grok优化重新格式化后
version: '3.8' # 指定Docker Compose版本,3.8为较新稳定版本
services:
tailscale:
image: tailscale/tailscale:latest # 使用官方Tailscale镜像,始终拉取最新版本
container_name: tailscale # 容器名称,方便识别和管理
network_mode: host # 使用宿主机网络,便于Tailscale连接跨子网客户端
privileged: true # 开启特权模式,Tailscale需要以管理网络接口和路由
environment:
- TS_AUTHKEY=tskey-auth-kGr12345ym11CNTRL-X67890QPnLSLxgPnFh4aMSytAxixihaha # Tailscale认证密钥,用于自动注册节点
- TS_EXTRA_ARGS=--netfilter-mode=off # 附加参数,禁用netfilter以避免iptables冲突
- TS_STATE_DIR=/var/lib/tailscale # 指定Tailscale状态存储目录,与挂载卷对应
- TS_HOSTNAME=ugospro # 设置Tailscale节点名称,显示在Tailscale控制面板
# - TS_ROUTES=192.168.10.0/24 # 可选:广告的子网路由,当前注释掉,启用需确认子网
volumes:
- ./tailscale/state:/var/lib/tailscale # 持久化Tailscale状态到宿主机的./tailscale/state目录
- /dev/net/tun:/dev/net/tun # 挂载TUN设备,Tailscale需要用于创建虚拟网络接口
- /etc/localtime:/etc/localtime:ro # 同步宿主机时间,只读模式,替换了原上海时区挂载
cap_add:
- NET_ADMIN # 授予网络管理权限,Tailscale需要配置网络接口
- SYS_MODULE # 授予加载内核模块权限,可能用于加载TUN模块
restart: unless-stopped # 除非手动停止,否则容器总是重启,适合生产环境
logging:
driver: json-file # 使用json-file日志驱动,Docker默认
options:
max-size: "10m" # 限制单个日志文件大小为10MB
max-file: "3" # 保留3个日志文件,防止磁盘占满