0%

openwrt折腾笔记

本文仅作为技术讨论及分享,严禁用于任何非法用途。

前言

本文只是记录一下openwrt日常配置方法,作为备忘。

openwrt重置

在终端中执行下面命令,可讲openwrt恢复出厂设置,主要用于特殊原因访问不到web界面的时候。

1
firstboot -y && reboot

自动更新ipv6 pd前缀

自动将从wan6获取到的ipv6 pd前缀更新到lan口,配置原因请看下文:
爱快主路由下 IPV6 防火墙的最优解(可能)

调试过程:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 获取wan6的pd前缀
newpd=`ubus call network.interface.wan6 status |jq '.["ipv6-prefix"][0]' | jq -r '"\(.address)\/\(.mask)"'`
# 获取lan口的ipv6地址
lan_v6=`ubus call network.interface.lan status |jq '.["ipv6-address"][0]' | jq -r '"\(.address)\/\(.mask)"'`
# 或者
newpd=`ifstatus wan6|jq '.["ipv6-prefix"][0]' | jq -r '"\(.address)\/\(.mask)"'`
lan_v6=`ifstatus lan|jq '.["ipv6-address"][0]' | jq -r '"\(.address)\/\(.mask)"'`

# 修改lan口v6地址
uci set network.lan.ip6addr='24xx:xxxx:xxx:xxxx::/64'
uci commit network
service network restart

# 判断wan6 pd前缀是否应用到lan口,否则就更新wan6地址到lan口
if [ "$newpd" != "$lan_v6" ];then uci set network.lan.ip6addr=$newpd;uci commit network;service network restart;fi

1
2
3
#完整cron

* * * * * newpd=`ifstatus wan6|jq '.["ipv6-prefix"][0]' | jq -r '"\(.address)\/\(.mask)"'`;lan_v6=`ifstatus lan|jq '.["ipv6-address"][0]' | jq -r '"\(.address)\/\(.mask)"'`;if [ "$newpd" != "$lan_v6" ];then uci set network.lan.ip6addr=$newpd;uci commit network;service network restart;fi

相关参考:
https://openwrt.org/zh/docs/guide-user/base-system/uci

Adguardhome与SSR共存

adguardhome直接从源安装的不稳定,容易卡死,先下载luci包,然后通过页面上的更新功能来安装adguardhome核心

1
https://github.com/rufengsuixing/luci-app-adguardhome/releases/download/1.8-9/luci-app-adguardhome_1.8-9_all.ipk

ssr作为fq网关时,dns解析依赖dnsmasq,所以dns解析必须经过dnsmasq(有特殊情况,就是ssr DNS解析方式选择”使用本机端口为5335的DNS服务”的时候,不需要,属于高级玩法啦,此处不讨论)。
为了让adguardhome显示内网ip而不是127.0.0.1,要把adguardhome监听53端口,然后上游设置为dnsmasq,dnsmasq上游设置为smartdns

client -> adguardhome 53 -> dnsmasq 53503 -> smartdns 6053 -> internet dns

以下引用恩山网友的测试记录:
dns重定向

  • 作为dnsmasq的上游服务器(在AGH中统计到的ip都为127.0.0.1,无法统计客户端及对应调整设置,乳酸菌饮料-plus正常)
  • 重定向53端口到 AdGuardHome(ipv6需要开启ipv6 nat redirect 否则如果客户端使用ipv6过滤无效,不以dnsmasq为上游乳酸菌饮料-plus失效)
  • 使用53端口替换 dnsmasq(需要设置AGH的dnsip为0.0.0.0, AGH和dnsmasq的端口将被交换,不以dnsmasq为上游乳酸菌饮料-plus失效)

官方说法:
https://github.com/rufengsuixing/luci-app-adguardhome
关于ssr配合
方法一gfw代理:dns重定向-作为dnsmasq的上游服务器
方法二gfw代理:手动设置adh上游dns为自己即127.0.0.1:[自己监听的端口],然后使用 dns重定向-使用53端口替换dnsmasq,(因为端口互换后就是dnsmasq为上游了)
方法三国外ip代理:任意重定向方式,adh加入gfw列表,开启计划任务定时更新gfw即可

安装SmartDNS

SmartDNS使用起来效果确实不错的,建议安装。
下载luci-app-smartdns,太新的貌似不兼容,下了个20年的可以

1
https://github.com/pymumu/smartdns/releases/download/Release33/luci-app-smartdns.1.2020.09.08-2235.all-luci-compat-all.ipk

下载本体:

1
https://github.com/pymumu/smartdns/releases/download/Release40/smartdns.1.2023.01.02-1537.x86_64-openwrt-all.ipk

opkg install xxx 安装
然后重启openwrt,可看到菜单有smartdns

其它

光猫桥接配置、IPTV 单线复用、异地组网请看下文:
https://r0yanx.com/2023/01/25/%E8%AE%B0%E5%AE%B6%E5%BA%AD%E7%BD%91%E7%BB%9C%E7%BB%84%E7%BD%91/

后续持续更新…