V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
OpenWrt 是一个专门面向嵌入式设备的 Linux 发行版。你可以将 OpenWrt 支持的型号的嵌入式设备,比如各种路由器上的系统,换成一个有更多可能性可以折腾的 Linux 系统。
OpenWrt 官方网站
FaiChou
V2EX  ›  OpenWrt

OpenWrt 重启会丢失 tailscale 登录信息

  •  
  •   FaiChou · 18 天前 · 852 次点击

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

    所以这是为什么?

    5 条回复    2024-12-03 10:00:38 +08:00
    churchmice
        2
    churchmice  
       18 天前   ❤️ 1
    起码在我的 openwrt 上,/var 是一个指向 tmp 的软链接,而 tmp 是 tmpfs
    kapr1k0rn
        3
    kapr1k0rn  
       18 天前
    opkg 包里的 tailscale, .state 文件是放在/etc/tailscale/下面的
    shyrock
        4
    shyrock  
       18 天前   ❤️ 1
    极大可能是配置放在了 tmpfs 上。

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

    破案了:

    $ df -T /var
    Filesystem Type 1K-blocks Used Available Use% Mounted on
    tmpfs tmpfs 1962076 22996 1939080 1% /tmp
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2673 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 14:55 · PVG 22:55 · LAX 06:55 · JFK 09:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.