OPENWRT

展望 @by haven200
使用Openwrt中的一些备忘录

OpenWrt

OpenWrt Overlay 机制详解与扩容指南

在 OpenWrt 系统中,Overlay 分区是实现系统灵活性与稳定性的核心组件。它通过联合挂载技术,将只读文件系统与可写文件系统合二为一。


一、 Overlay 的核心作用

1. 差异存储与配置持久化

  • **只读层 (SquashFS)**:存储系统核心文件(内核、基础包),不可修改,防止误操作破坏系统稳定性。
  • **可写层 (Overlay)**:用户的所有修改(插件安装、配置文件更改)均保存在此,与只读层叠加形成“虚拟可读写”视图。

2. 系统快速恢复

  • 重置功能:只需清空 Overlay 分区即可恢复出厂设置,无需重新刷机。
  • 故障隔离:即使 Overlay 数据损坏,只读层仍能保证系统进入基础可用状态。

3. 灵活扩容

  • 空间扩展:默认 Flash 空间通常很小(如 128MB),通过将外部存储(U盘/SD卡)挂载为外部 Overlay,可显著增加软件安装空间。

4. 延长存储寿命

  • 减少擦写:将频繁的写入操作集中在外部存储或特定的可写层,降低对主板板载 Flash(擦写寿命有限)的损耗。

二、 使用 tar 迁移/扩容的具体步骤

当准备将 Overlay 挂载到外部设备时,必须完整复制现有数据。使用 tar 管道流是保持 Linux 文件权限、所有者和符号链接的最佳方式。

1. 准备工作

  • 确保目标设备已格式化为 ext4 格式(这是 Linux 权限支持最完善的文件系统)。
  • 确认已安装必要软件包:opkg update && opkg install block-mount kmod-fs-ext4

2. 执行复制命令

请务必注意目标路径,确保数据准确解压到目标盘的根目录:

1
2
3
4
5
6
7
8
9
10
11
# 1. 创建临时挂载点并挂载新分区
mkdir -p /mnt/extdisk
mount /dev/sda1 /mnt/extdisk

# 2. 使用 tar 管道同步数据 (推荐方案)
# -C 参数确保切换到对应目录执行,避免带入多余的父级路径
tar -C /overlay -cf - . | tar -C /mnt/extdisk -xf -

# 3. 验证复制结果
ls -a /mnt/extdisk
# 提示:确认看到 upper 和 work 两个目录即代表复制成功

DNSPOD域名shell更新

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# 1. 获取 Domain_ID
┌──(kali㉿kali)-[~]
└─$ curl https://dnsapi.cn/Domain.List -d "login_token=555555,f32eb705b754e46711392bdb4f3083c2&format=json"
{"status":{"code":"1","message":"\u64cd\u4f5c\u5df2\u7ecf\u6210\u529f\u5b8c\u6210","created_at":"2025-05-15 10:47:50"},"info":{"domain_total":1,"all_total":1,"mine_total":1,"share_total":0,"vip_total":0,"ismark_total":0,"pause_total":0,"error_total":0,"lock_total":0,"spam_total":0,"vip_expire":0,"share_out_total":0},"domains":[{"id":94342009,"status":"enable","grade":"DP_Free","group_id":"1","searchengine_push":"no","is_mark":"no","ttl":"600","cname_speedup":"enable","remark":"","created_on":"2023-04-18 17:13:29","updated_on":"2025-05-12 18:55:06","server":"DP_Free","punycode":"sxuen.com","ext_status":"","src_flag":"QCLOUD","grade_ns":["brick.dnspod.net","database.dnspod.net"],"name":"sxuen.com","grade_level":2,"grade_title":"\u514d\u8d39\u7248","is_vip":"no","owner":"[email protected]","records":"12","is_grace_period":"no","vip_start_at":"0000-00-00 00:00:00","vip_end_at":"0000-00-00 00:00:00","vip_auto_renew":"no","tag_list":[]}]}
# 2. 获取 Record_id
┌──(kali㉿kali)-[~]
└─$ curl https://dnsapi.cn/Record.List -d 'login_token=574646,f32eb705b754e46711392bdb4f3083c2&format=json&domain_id=94342009&sub_domain=dev&record_type=AAAA&offset=0&length=3'
{"status":{"code":"1","message":"\u64cd\u4f5c\u5df2\u7ecf\u6210\u529f\u5b8c\u6210","created_at":"2025-05-15 10:53:37"},"domain":{"id":94342009,"name":"sxuen.com","punycode":"sxuen.com","grade":"DP_Free","owner":"[email protected]","ext_status":"","ttl":600,"min_ttl":600,"dnspod_ns":["brick.dnspod.net","database.dnspod.net"],"status":"enable","can_handle_at_ns":false},"info":{"sub_domains":"14","record_total":"1","records_num":"1"},"records":[{"id":"1927200607","ttl":"600","value":"240e:0340:0206:916a:b805:bc92:b083:1579","enabled":"1","status":"enable","updated_on":"2025-05-12 18:55:06","record_type_v1":"1","status_v1":"enabled","enabled_v1":"1","name":"dev","line":"\u9ed8\u8ba4","line_id":"0","type":"AAAA","weight":null,"monitor_status":"","remark":"","use_aqb":"no","mx":"0"}]}
# 3. 获取 IP地址
┌──(kali㉿kali)-[~]
└─$ curl -X POST https://dnsapi.cn/Record.Info -d 'login_token=574646,f32eb705b754e46711392bdb4f3083c2&format=json&domain_id=94342009&record_id=1927200607'
{"status":{"code":"1","message":"\u64cd\u4f5c\u5df2\u7ecf\u6210\u529f\u5b8c\u6210","created_at":"2025-05-15 10:56:17"},"domain":{"id":94342009,"domain":"sxuen.com","domain_grade":"DP_Free","dnspod_ns":["brick.dnspod.net","database.dnspod.net"]},"record":{"id":"1927200607","sub_domain":"dev","record_type":"AAAA","record_line":"\u9ed8\u8ba4","record_line_id":"0","value":"240e:0340:0206:916a:b805:bc92:b083:1579","weight":null,"mx":"0","ttl":"600","enabled":"1","monitor_status":"","remark":"","updated_on":"2025-05-12 18:55:06","domain_id":"94342009"}}
# 4. 获取线路编码
┌──(kali㉿kali)-[~]
└─$ curl -X POST https://dnsapi.cn/Record.Line.Category -d 'login_token=574646,f32eb705b754e46711392bdb4f3083c2&format=json&category_names=电信&domain_id=94342009'
{"status":{"code":"1","message":"\u64cd\u4f5c\u5df2\u7ecf\u6210\u529f\u5b8c\u6210","created_at":"2025-05-15 11:08:20"},"data":[{"line_name":"\u7535\u4fe1","line_id":"10=0","useful":true,"subgroup":[{"line_name":"电信","line_id":"10=0","useful":true,"vip":"DP_Free"},{"line_name":"安徽电信","line_id":"20=0","useful":false,"vip":"DP_Expert"},{"line_name":"北京电信","line_id":"20=2","useful":false,"vip":"DP_Expert"},{"line_name":"重庆电信","line_id":"20=4","useful":false,"vip":"DP_Expert"},{"line_name":"\u798f\u5efa\u7535\u4fe1","line_id":"20=6","useful":false,"vip":"DP_Expert"},{"line_name":"\u7518\u8083\u7535\u4fe1","line_id":"20=8","useful":false,"vip":"DP_Expert"},{"line_name":"\u5e7f\u4e1c\u7535\u4fe1","line_id":"20=10","useful":false,"vip":"DP_Expert"},{"line_name":"\u5e7f\u897f\u7535\u4fe1","line_id":"20=12","useful":false,"vip":"DP_Expert"},{"line_name":"\u8d35\u5dde\u7535\u4fe1","line_id":"20=14","useful":false,"vip":"DP_Expert"},{"line_name":"\u6d77\u5357\u7535\u4fe1","line_id":"20=16","useful":false,"vip":"DP_Expert"},{"line_name":"\u6cb3\u5317\u7535\u4fe1","line_id":"20=18","useful":false,"vip":"DP_Expert"},{"line_name":"\u6cb3\u5357\u7535\u4fe1","line_id":"20=20","useful":false,"vip":"DP_Expert"},{"line_name":"\u9ed1\u9f99\u6c5f\u7535\u4fe1","line_id":"20=22","useful":false,"vip":"DP_Expert"},{"line_name":"\u6e56\u5317\u7535\u4fe1","line_id":"20=24","useful":false,"vip":"DP_Expert"},{"line_name":"\u6e56\u5357\u7535\u4fe1","line_id":"20=26","useful":false,"vip":"DP_Expert"},{"line_name":"\u5409\u6797\u7535\u4fe1","line_id":"20=28","useful":false,"vip":"DP_Expert"},{"line_name":"\u6c5f\u82cf\u7535\u4fe1","line_id":"20=30","useful":false,"vip":"DP_Expert"},{"line_name":"\u6c5f\u897f\u7535\u4fe1","line_id":"20=32","useful":false,"vip":"DP_Expert"},{"line_name":"\u8fbd\u5b81\u7535\u4fe1","line_id":"20=34","useful":false,"vip":"DP_Expert"},{"line_name":"\u5185\u8499\u7535\u4fe1","line_id":"20=36","useful":false,"vip":"DP_Expert"},{"line_name":"\u5b81\u590f\u7535\u4fe1","line_id":"20=38","useful":false,"vip":"DP_Expert"},{"line_name":"\u9752\u6d77\u7535\u4fe1","line_id":"20=40","useful":false,"vip":"DP_Expert"},{"line_name":"\u5c71\u4e1c\u7535\u4fe1","line_id":"20=42","useful":false,"vip":"DP_Expert"},{"line_name":"\u5c71\u897f\u7535\u4fe1","line_id":"20=44","useful":false,"vip":"DP_Expert"},{"line_name":"\u9655\u897f\u7535\u4fe1","line_id":"20=46","useful":false,"vip":"DP_Expert"},{"line_name":"\u4e0a\u6d77\u7535\u4fe1","line_id":"20=48","useful":false,"vip":"DP_Expert"},{"line_name":"\u56db\u5ddd\u7535\u4fe1","line_id":"20=50","useful":false,"vip":"DP_Expert"},{"line_name":"\u5929\u6d25\u7535\u4fe1","line_id":"20=52","useful":false,"vip":"DP_Expert"},{"line_name":"\u897f\u85cf\u7535\u4fe1","line_id":"20=54","useful":false,"vip":"DP_Expert"},{"line_name":"\u65b0\u7586\u7535\u4fe1","line_id":"20=56","useful":false,"vip":"DP_Expert"},{"line_name":"\u4e91\u5357\u7535\u4fe1","line_id":"20=58","useful":false,"vip":"DP_Expert"},{"line_name":"\u6d59\u6c5f\u7535\u4fe1","line_id":"20=60","useful":false,"vip":"DP_Expert"},{"line_name":"\u534e\u5317\u7535\u4fe1","line_id":"16=0","useful":false,"vip":"DP_Expert"},{"line_name":"\u4e1c\u5317\u7535\u4fe1","line_id":"16=4","useful":false,"vip":"DP_Expert"},{"line_name":"\u534e\u4e1c\u7535\u4fe1","line_id":"16=8","useful":false,"vip":"DP_Expert"},{"line_name":"\u534e\u4e2d\u7535\u4fe1","line_id":"16=12","useful":false,"vip":"DP_Expert"},{"line_name":"\u534e\u5357\u7535\u4fe1","line_id":"16=16","useful":false,"vip":"DP_Expert"},{"line_name":"\u897f\u5357\u7535\u4fe1","line_id":"16=20","useful":false,"vip":"DP_Expert"},{"line_name":"\u897f\u5317\u7535\u4fe1","line_id":"16=24","useful":false,"vip":"DP_Expert"}],"vip":"DP_Free"}]}
# 5. 更新IP
┌──(kali㉿kali)-[~]
└─$ curl -X POST https://dnsapi.cn/Record.Modify -d 'login_token=574646,f32eb705b754e46711392bdb4f3083c2&format=json&domain_id=94342009&record_id=1927200607&sub_domain=dev&value=240e:340:206:6f0d:d50a:5a56:e38b:8b56&record_type=AAAA&record_line_id=10%3D0'
{"status":{"code":"1","message":"\u64cd\u4f5c\u5df2\u7ecf\u6210\u529f\u5b8c\u6210","created_at":"2025-05-15 11:10:12"},"record":{"id":1927200607,"name":"dev","value":"240e:340:206:6f0d:d50a:5a56:e38b:8b56","status":"enable","weight":null}}
# 6. 查询是否更新成功
┌──(kali㉿kali)-[~]
└─$ nslookup dev.sxuen.com
Server: 192.168.100.100
Address: 192.168.100.100#53

Non-authoritative answer:
Name: dev.sxuen.com
Address: 240e:340:206:6f0d:d50a:5a56:e38b:8b56

配置

1
2
3
4
5
6
7
8
1、修改默认源
2、安装 block-mount, fdisk,cfdisk,为默认overlay扩容
3、安装 luci-app-dockerman
4、安装 luci-app-ddns ddns-scripts-dnspod-v3
5、安装 luci-app-statistics collectd-mod-sensors
6、nfs客户端,安装nfs-utils kmod-fs-nfs kmod-fs-nfs-common kmod-fs-nfs-v4
7、安装 git ssh-keygen openssh-client
8、nfs服务器 nfs-server