[笔记] Redmi AX6S OpenWrt 安装 / NAT66 配置 / AdguardHome etc 配置

Author Avatar
空気浮遊 2023年05月21日
  • 在其它设备中阅读本文章

最近在折腾 AX6S。我也不知道为什么我要折腾,但总之我买了一台过来折腾。也因此做做笔记。

PID 106031896 - catzz

前言

本文不会过多的讲解原理,基本上只是信息整合(指丢教程链接)。

OpenWrt 安装

分为两步:

  1. 给 AX6S 开 telnet,开完 telnet 之后开 ssh,之后 ssh 上传过渡固件刷机。
  2. 给过渡固件升级到另一个固件。

全程过程请参考这篇教程:https://www.bilibili.com/read/cv22327855

这里做一些补充。

  1. AX6S 必须是红米版 (RB03 model),国际版(小米版)不行。
  2. 求解 root 密码也可以使用 这个 Python 脚本,保存命名为unlock_pwd.py后可以通过以下命令行调用:python3 unlock_pwd.py <S/N>。其中<S/N>请替换为 SN 码。

NAT66 配置

不是校园网 / 校园网给了前缀就可以忽略这一段。如果校园网只给你分配了一个 IPv6,那么恭喜你,你成为了 Openwrt 受害者之一。

NAT66 就是 IPv6 的 NAT。为什么 IPv6 需要 NAT?这你得问问校园网网管了。

这部分主要参考这篇文章:https://lwz322.github.io/2018/10/07/IPv6_NAT.html

省流版:进入 openwrt 的 ssh,Copy 如下内容到 bash 直接回车运行即可。注意其中的iface_dhcpiface_route两行我有所更改以适配该文章实际使用的固件,如果你使用的不是上方的固件则你应该跳转原文章仔细查看这两行到底应该怎么填才正确。

有概率不 work。你可以尝试再次运行/etc/init.d/network restart来重启网络。

脚本只需运行一次即可,因为每次重启网络服务时都会自动重新配置 NAT66。但脚本并没有添加对防火墙重启的处理办法。所以如果你动了防火墙你可能又需要使用上面的命令来重启网络。

关于如何关闭 NAT66 与脚本的具体细节,请跳转上面文章查看。

opkg update && opkg install kmod-ipt-nat6

echo "net.ipv6.conf.default.accept_ra=2" >> /etc/sysctl.conf
echo "net.ipv6.conf.all.accept_ra=2" >> /etc/sysctl.conf

uci set network.globals.ula_prefix="$(uci get network.globals.ula_prefix | sed 's/^./d/')"
uci commit network
uci set dhcp.lan.ra_default='1'
uci commit dhcp

touch /etc/hotplug.d/iface/99-ipv6

cat > /etc/hotplug.d/iface/99-ipv6 << EOF
#!/bin/sh
[ "\$ACTION" = ifup ] || exit 0
iface_dhcp=wan6 # 这里填逻辑接口,用于检测是否接收到ipv6地址
iface_route=wan # 这里填路由表中指向上级路由的接口,可以使用ip -6 route | grep wan看看是否正常存在内容
[ -z "\$iface_dhcp" -o "\$INTERFACE" = "\$iface_dhcp" ] || exit 0

ip6tables -t nat -I POSTROUTING -s \`uci get network.globals.ula_prefix\` -j MASQUERADE
gw=\$(ip -6 route show default | grep \$iface_route | sed 's/from [^ ]* //' | head -n1)
status=\$(ip -6 route add \$gw 2>&1)
logger -t IPv6 "Done: \$status"
EOF
/etc/init.d/network restart

注:这是有线情况下的配置。如果你想要中继无线,一般情况下逻辑接口你得自己创建(比如 wwan6)作为 dchpv6 的客户端,然后 iface_dhcp 填 wwan6,iface_route 填 wlan1(根据具体情况可能存在变动),再重启网络即可。

Adguard

在软件包里搜luci-app-adguardhome安装,刷新看侧边栏启动插件就行。

我个人关闭了 DHCP/DNS 中 dnsmasq 的重定向选项,然后打开了 Adguard 的 53 端口重定向到 Adguard 选项。

页面的最左下角有个很隐蔽的更多选项:里面你可以改 Adguard 后台的密码(默认 root)。

关于 Adguard Home 的配置,你基本上只要:

  1. 上游 DNS 修改。如果你不想要污染的 DNS,我提供几个试出来的能用的 DoH:

    tls://dns.google
    h3://dns.cloudflare.com/dns-query
    tls://101.101.101.101
    https://doh.opendns.com/dns-query
    quic://dns.adguard-dns.com
    h3://dns.adguard-dns.com/dns-query

    然后改为并行请求。如果你只是想要快的话,把 DoH 全部去掉填几个 88881111 就行。或者干脆你也都可以都填上。

  2. 启用 EDNS 子网。
  3. DNS 黑名单默认的就行。你可以加一条 Halflife:https://cdn.jsdelivr.net/gh/o0HalfLife0o/list@master/ad.txt。加太多可能导致 ax6s 卡住。
  4. 自定义过滤规则可以加一条重定向到网关的域名。你可以取个可爱的短域名。
  5. 别的设置最好... 不要动,但总之可以自己玩一玩。

其它

可以装点有趣的软件包。比如 argon-config。你可以改登录界面的壁纸。

然后你就会惊奇的发现,what,wow,该固件的 AX6S 竟然只有 64M 的可用空间,它真的好大...

这时候你可能才会仔细翻看 AX6S 的外表,然后发现规规整整只有 4 个网口和一个电源孔。甚至连螺丝钉都没有。

但还能咋办呗,将就凑合吧。其实 argon-config 要是允许添加自定义 url 的图片也不是不行... hmm

最后

感谢以上链接中所有教程的作者的辛勤劳动与无私分享。没有他们我可能就把 AX6S 退款了,或者血亏 300。

扩展阅读 & 引用

https://openwrt.org/toh/xiaomi/ax3200

https://sustech.online/service/network/ipv6/

https://adguard-dns.io/kb/zh-CN/general/dns-providers/

https://p3terx.com/archives/use-adguard-home-to-build-dns-to-prevent-pollution-and-remove-ads-2.html

【OpenWrt】用 C 语言交叉编译路由器的可执行文件

https://github.com/lwz322/lwz322.github.io/blob/master/_posts/2019-07-25-IPv6_Home.md

https://post.smzdm.com/p/awzodmpp/

https://vicfree.com/2023/02/ipv6-explained-and-setup-in-openwrt/

https://jasper1024.com/jasper/codsa242cp3/

https://chariri.moe/archives/644/#toc-head-4