OpenWrt中zerotier-one配置保存问题的解决方案

OpenWrt中zerotier-one配置保存问题的解决方案

istore 一个 Openwrt 标准的软件中心,纯脚本实现,只依赖Openwrt标准组件。支持其它固件开发者集成到自己的固件里面。更方便入门用户搜索安装插件。The iStore is a app store for OpenWRT istore 项目地址: https://gitcode.com/gh_mirrors/is/istore

问题背景

在OpenWrt系统中使用zerotier-one时,用户可能会遇到通过zerotier-cli命令进行的配置在系统重启后丢失的问题。这是由于OpenWrt系统的特殊设计导致的,需要采取特定的解决方案来确保配置持久化。

问题分析

OpenWrt系统中,/var目录默认是内存盘(tmpfs),这意味着其中的数据在系统重启后会丢失。而zerotier-one默认会将运行时配置存储在/var/lib/zerotier-one目录下,这就导致了配置无法持久保存的问题。

通过分析发现,在OpenWrt的istore环境中,zerotier的luci插件实际上将配置存储在/var/lib/zerotier-luci目录下,这个目录通过符号链接指向/etc/config/zero,而/etc目录是持久化存储的。这就是为什么通过luci界面进行的配置能够保存的原因。

解决方案

方法一:手动绑定挂载

最直接的解决方案是通过绑定挂载(bind mount)将持久化目录映射到zerotier期望的目录位置:

mount -o bind /var/lib/zerotier-luci /var/lib/zerotier-one

执行此命令后,zerotier-cli命令就可以正常工作了,因为现在它访问的实际上是持久化存储的位置。

方法二:创建开机自动执行脚本

为了确保每次系统启动后自动执行上述操作,可以创建一个启动脚本:

  1. 创建脚本文件:
echo '
mkdir -p /var/lib/zerotier-one
mount -o bind /var/lib/zerotier-luci /var/lib/zerotier-one
zerotier-cli set xxxxxxxxxxx allowGlobal=true
' > /opt/config_zerotier.sh
chmod +x /opt/config_zerotier.sh
  1. 添加到开机启动:
echo 'sleep 60 && /opt/config_zerotier.sh &' >> /etc/rc.local

方法三:使用官方软件源

如果问题是由于软件包版本导致的,可以考虑使用OpenWrt官方软件源中的zerotier-one包,这通常是最稳定的选择。

技术原理

OpenWrt系统设计上为了减少对存储设备的写入,延长设备寿命,将/var目录设置为内存文件系统(tmpfs)。这种设计带来了性能优势,但也导致了数据持久化的问题。

zerotier-luci插件通过将配置存储在/etc目录下解决了这个问题,但zerotier-cli工具仍然默认查找/var/lib/zerotier-one目录。通过绑定挂载,我们可以在不改变zerotier-cli行为的情况下实现配置持久化。

注意事项

  1. 不建议使用第三方软件源,这可能导致系统不稳定或安全问题
  2. 修改系统配置前建议备份重要数据
  3. 如果使用luci界面配置zerotier,通常不需要额外操作,因为插件已经处理了持久化问题
  4. 对于高级配置如allowGlobal,可能需要通过CLI方式设置

总结

OpenWrt系统中zerotier配置保存问题源于系统设计特性,通过理解其存储机制并采取适当的解决方案,可以确保zerotier配置的持久化。绑定挂载是最直接有效的解决方案,既保持了系统原有设计,又满足了配置持久化的需求。

istore 一个 Openwrt 标准的软件中心,纯脚本实现,只依赖Openwrt标准组件。支持其它固件开发者集成到自己的固件里面。更方便入门用户搜索安装插件。The iStore is a app store for OpenWRT istore 项目地址: https://gitcode.com/gh_mirrors/is/istore

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

尹疆岗Will

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值