关于tailscale的一些经验

经验一:通过OAuth client secre避免key过期

使用docker安装tailscale客户端,对于TS_AUTHKEY变量,其实可以设置成OAuth client secre避免key过期

但有两个条件:

①:必须通过TS_EXTRA_ARGS变量指定设备标签,例如:TS_EXTRA_ARGS=–advertise-tags=tag:container

②:在Access controls中开启自定义设备标签的使用

经验二:阿里云安装tailscale后,更新无法联网问题

这个问题之前困扰了我好久,偶然看到的一篇博文帮助我解决了这个问题。

大致原因是因为安装Tailscale后,会设置一条屏蔽100.64.0.0/10 IP段的防火墙规则,而正好阿里云内网的一些服务位于这些IP段而被屏蔽。

解决方法是:启动tailscale时加入–netfilter-mod=off参数

具体详情查看这篇博文:CGNAT冲突:Tailscale出口节点无网络问题的调试与分析 - Frank's Weblog

最后,附上我的docker-compose

services:
  tailscale:
    image: tailscale/tailscale:unstable
    container_name: tailscale
    network_mode: "host"
    hostname: aliyun-lite
    environment:
      - TS_AUTHKEY=tskey-client-xxx?ephemeral=false&preauthorized=true
      - TS_EXTRA_ARGS=--advertise-tags=tag:container --netfilter-mode=off
      - TS_STATE_DIR=/var/lib/tailscale
      - TS_USERSPACE=false
    volumes:
      - ./state:/var/lib/tailscale
      - ./run:/tmp
    devices:
      - /dev/net/tun:/dev/net/tun
    cap_add:
      - net_admin
    restart: unless-stopped
10 Likes

大佬牛!

感谢分享 :partying_face:

感谢大佬 。

谢谢分享

感谢分享,关于第二个,以前也踩过坑,感谢提供解决思路!