OpenWrt 重启会丢失 tailscale 登录信息

9 天前
 FaiChou

我在 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 这种基于内存类型的目录。所以持久化存储应该不是问题。

所以这是为什么?

726 次点击
所在节点    OpenWrt
5 条回复
FaiChou
9 天前
churchmice
9 天前
起码在我的 openwrt 上,/var 是一个指向 tmp 的软链接,而 tmp 是 tmpfs
kapr1k0rn
9 天前
opkg 包里的 tailscale, .state 文件是放在/etc/tailscale/下面的
shyrock
9 天前
极大可能是配置放在了 tmpfs 上。

修改设置,把配置文件换个确定是持久存储的目录吧。
FaiChou
9 天前
@churchmice
@shyrock

破案了:

$ df -T /var
Filesystem Type 1K-blocks Used Available Use% Mounted on
tmpfs tmpfs 1962076 22996 1939080 1% /tmp

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1094546

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX