我在 OpenWrt 上跑了 tailscale,我是直接下载的二进制,并且写了一个 init.d 的重启后自动打开的脚本:
https://gist.github.com/FaiChou/45d9bb4f0a8018ba4d339f335429c12f.js
当第一次运行时候,会提示点击链接进行授权,授权完成后,会将登录信息记录在 /var/lib/tailscale/tailscaled.state
中,能看到这文件中有一堆登录信息。
我理解的是,当重启系统后,运行起来 tailscaled 后再执行 tailscale up
,会从这个 tailscaled.state 记住的信息直接登录。
但当重启后,这个 tailscaled.state 数据被清空(仅保留着 _machinekey
一个字段),通过 logread
读取的日志也显示需要再次点击链接授权。
虽然有另外一个方法:使用 authkey 登录,在后台生成一个可重复使用的 authkey ,但这样每次重启后使用同一个 key 登录,后台会有重复的设备,而且设备名称和 ip 也一直变。
再者,/var
这个目录不是 ramfs tmpfs 这种基于内存类型的目录。所以持久化存储应该不是问题。
所以这是为什么?
2
churchmice 21 天前 1
起码在我的 openwrt 上,/var 是一个指向 tmp 的软链接,而 tmp 是 tmpfs
|
3
kapr1k0rn 21 天前
opkg 包里的 tailscale, .state 文件是放在/etc/tailscale/下面的
|
4
shyrock 21 天前 1
极大可能是配置放在了 tmpfs 上。
修改设置,把配置文件换个确定是持久存储的目录吧。 |
5
FaiChou OP @churchmice
@shyrock 破案了: $ df -T /var Filesystem Type 1K-blocks Used Available Use% Mounted on tmpfs tmpfs 1962076 22996 1939080 1% /tmp |