环境
部署
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| services: tailscale: image: tailscale/tailscale:latest container_name: tailscale network_mode: host restart: unless-stopped volumes: - /dev/net/tun:/dev/net/tun - tailscale-sock:/var/run/tailscale - tailscale-state:/var/lib/tailscale cap_add: - net_admin - sys_module environment: - TS_AUTHKEY=${TS_AUTHKEY} - TS_HOSTNAME=${TS_HOSTNAME} - TS_NO_LOGS_NO_SUPPORT=true - TS_STATE_DIR=/var/lib/tailscale - TS_SOCKET=/var/run/tailscale/tailscaled.sock
derper: image: fredliang/derper container_name: derper restart: unless-stopped ports: - ${DERP_PORT}:443 - ${STUN_PORT}:3478/udp environment: - DERP_DOMAIN=${DERP_DOMAIN} - DERP_CERT_MODE=manual - DERP_CERT_DIR=/app/certs - DERP_VERIFY_CLIENTS=true - DERP_HTTP_PORT=-1 volumes: - tailscale-sock:/var/run/tailscale - ${CRT_DIR}:/app/certs/${DERP_DOMAIN}.crt - ${KEY_DIR}:/app/certs/${DERP_DOMAIN}.key
volumes: tailscale-sock: tailscale-state:
|
1 2 3 4 5 6 7
| TS_AUTHKEY= TS_HOSTNAME= DERP_PORT= STUN_PORT= DERP_DOMAIN= CRT_DIR= KEY_DIR=
|
- 最后 docker compose up -d 即可启动~
如果你想通过IP部署,可以参考这篇 Tailscale DERP Docker版教程(国内 无需域名 IP+Port) - 开发调优 - LINUX DO
ACL配置
暂时懒得写,参考其他人的吧 tailscale自建derp提高打洞效率与中继稳定性 - 正汰的学习笔记
附注
- state 和 sock 没有映射到主机中(因为觉得没必要),而是直接用了 docker volume,并且没有直接映射 .sock。这是因为同时启动时会被默认创建为目录,因此映射了上一级的目录。
- 这个部署案例默认是采用了手动维护证书的更新,个人感觉现在的证书自动化工具已经非常好用了,这里推荐一个目前在用的 https://github.com/usual2970/certimate
推荐阅读