tailscale

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个日志文件,防止磁盘占满