旁路由网关设置及联通光猫的若干注意事项

本篇文章记录树莓派3(Paspberry Pi 3)刷写Lean OpenWrt固件,并且用作软路由后所遇到的一些障碍和解决方法,比方说旁路由防火墙自定义规则的设置,局域网接口桥接的设置,旁路由于主路由网关互指的配置,主路由关于DHCP/DNS默认网关的配置,ADGuard用作DNS服务器拦截广告及自定义DNS服务器地址及端口的设置,光猫超级管理员密码的获取等等。本文上述内容的关键步骤进行记录,同时贴出所需的相关软件资源备份,以备日后不时之需,方便查阅。

旁路由固件

首选给出适配树莓派3的(CPU芯片为博通2710)的OpenWrt安装包,编译者为SuLingGG,刷入固件后进入名为:OpenWrt的开放wifi,初始管理地址为:192.168.1.1,账户名:root,密码:password。

重新设置管理后台IP:

1
2
3
uci set network.lan.ipaddr=192.168.123.100
uci commit network
/etc/init.d/network restart

设置完成后,LAN接口选择静态地址,IPv4地址即为刚刚设置的管理后台地址,IPv4网关为主路由IP,广播为该网段255广播地址,自定义DNS服务器也为主路由IP。

防火墙规则

设置完成后,倘若出现出现无法上网、访问国内网站缓慢等症状,可在完成上文全部步骤的基础上,在“网络 - 防火墙 - 自定义规则”中新增一行 iptables 规则并重启防火墙再试:

1
2
3
4
iptables -t nat -I POSTROUTING -j MASQUERADE
#若仍未解决,可以尝试删除原有两条规则并重启防火墙再试:
iptables -t nat -A PREROUTING -p udp --dport 53 -j REDIRECT --to-ports 53
iptables -t nat -A PREROUTING -p tcp --dport 53 -j REDIRECT --to-ports 53

下面给出本人正在使用的自定义防火墙iptables规则(注5300端口为ADGuard监听端口):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# This file is interpreted as shell script.
# Put your custom iptables rules here, they will
# be executed with each firewall (re-)start.

# Internal uci firewall chains are flushed and recreated on reload, so
# put custom rules into the root chains e.g. INPUT or FORWARD or into the
# special user chains, e.g. input_wan_rule or postrouting_lan_rule.
#iptables -t nat -A PREROUTING -p udp --dport 53 -j REDIRECT --to-ports 53
#iptables -t nat -A PREROUTING -p tcp --dport 53 -j REDIRECT --to-ports 53

iptables -t nat -A PREROUTING -p udp --dport 53 -j REDIRECT --to-ports 5300
iptables -t nat -A PREROUTING -p tcp --dport 53 -j REDIRECT --to-ports 5300

iptables -t nat -I POSTROUTING -j MASQUERADE

取消桥接

如果以上两个方法未能解决,请尝试在 Lan 口的“物理设置”中取消“桥接接口”的打勾,并在下方的“接口”中选择“eth0”,保存并应用再试。但请注意,此时树莓派的板载无线网卡将无法使用 (有信号但无法上网)。

详细步骤:网络-接口-LAN(br-lan)-修改-物理设置-取消勾选✔桥接接口-接口仅选择以太网适配器 eth0(lan)这一项 不勾选起初✔打勾的无线网络:Master OpenWrt 初始状态可能是 br-lan(lan),设置完成后才会变成eth0。并且在该接口设置 忽略此接口/不在此接口提供DHCP服务。

本篇文章所述设置方法可能对某些型号的华为路由器无效,建议更换其他路由器再试。

AdGuardHome

AdGuardHome面板设置端口为:3000,监听端口为:5300。(可根据实际修改)

修改防火墙,53 端口重定向到 AdGuardHome 监听端口5300(与前面配置一致):

1
2
iptables -t nat -A PREROUTING -p udp --dport 53 -j REDIRECT --to-ports 5300
iptables -t nat -A PREROUTING -p tcp --dport 53 -j REDIRECT --to-ports 5300

在AdGuardHome设置中设置5300重定向至 作为dnsmasq的上游服务器。关闭Turbo ACC中的DNS加速,DNS解析全部经过AdGuardHome。修改 网络 - DHCP/DNS 转发到 AdGuardHome,注意此处端口5300需与前面 AdGuardHome 配置监听端口一致,DNS转发:127.0.0.1#5300。科学的插件中也需要设置“访问国外域名DNS服务器:127.0.0.1:5300”。

下面给出一些AdGuardHome的一些拦截规则:

1
2
3
4
5
6
7
8
9
10
11
#自带规则:AdGuard DNS filter - https://adguardteam.github.io/AdGuardSDNSFilter/Filters/filter.txt
#自带规则:MalwareDomainList.com Hosts List - https://www.malwaredomainlist.com/hostslist/hosts.txt
#自带规则:AdAway - https://adaway.org/hosts.txt
#anti-AD - https://anti-ad.net/easylist.txt 官宣:anti-AD 是目前中文区命中率最高广告过滤列表,实现了精确广告屏蔽和隐私保护。
#neoHosts Full 127.0.0.1 - https://hosts.nfz.moe/127.0.0.1/full/hosts 官宣:neoHosts 自由、负责、克制 的去广告 Hosts
#Easylist 官方规则 - https://easylist.to/easylist/easylist.txt
#EasylistChina+EasylistLite+CJX’sAnnoyance - https://raw.githubusercontent.com/o0HalfLife0o/list/master/ad.txt 简介:由 halflife 维护,合并了 EasylistChina、EasylistLite、CJX’sAnnoyance,以及一些补充规则,每日更新。
#EasyPrivacy 隐私保护 - https://easylist-downloads.adblockplus.org/easyprivacy.txt
#CJX's Annoyance List - https://raw.githubusercontent.com/cjx82630/cjxlist/master/cjx-annoyance.txt
#EasyList China 中文补充规则 - https://easylist-downloads.adblockplus.org/easylistchina.txt
#EasyList Lite 中文精简规则 - https://raw.githubusercontent.com/cjx82630/cjxlist/master/cjxlist.txt

最后,感谢沙唐桔关于AdGuardHome DNS设置相关提供的思路和内容。

SD卡扩展分区

本项目OpenWrt固件刷入SD卡后SD卡内boot分区所占空间为64M,root分区所占空间为960M,所以:SD卡总容量 - (64+960)M ≈ 空闲分区容量。

ext4 固件由于未知原因,ext4 固件暂时无法在 Windows 下使用 Diskgenius、PartitionGuru 等磁盘管理工具扩容,所以我们需要在 Linux 环境下对 SD 卡进行扩容操作。
①如果你有现成的 Linux 环境,则可以将 SD 卡插入电脑,使用 GParted 工具对 SD 卡的 Root 分区进行扩容;
②如果你有空闲的 U 盘,则可以将 Linux 发行版的 Live CD 写入 U 盘,重启至 U 盘中的 Live 环境使用 GParted 工具对 SD 卡进行扩容;
③如果以上条件都不满足,则可使用虚拟机软件虚拟 Gparted 的 Live CD,在虚拟机中完成 SD 卡的扩容。

下面介绍第三种方法,需要用到VirtualBox,下载VirtualBox-6.1.18-142142-Win.exe和Oracle_VM_VirtualBox_Extension_Pack-6.1.18.vbox-extpack,所有需要的软件资源均可从Google Drive中自取,操作过程在此不再赘述,具体可参考SuLingGG

DHCP默认网关

在主路由上选择“网络”-“接口”-“LAN”-“修改”-“DHCP服务器”-“高级设置”- [可选/勾选“强制”] -“DHCP选项”中填写如下信息即可。(当然倘若选择了勾选✔忽略此接口提供DHCP,自然看不到DHCP的“高级设置”选项卡)

1
2
3
3,192.168.10.15
6,192.168.10.15
#注意为英文逗号, ,其中3,192.168.2.4表示DHCP网关指向N1,其中6,192.168.2.4表示DNS指向OP。

其中该选项下方有提示:设置 DHCP 的附加选项,例如设定 "6,192.168.2.1,192.168.2.2" 表示通告不同的 DNS 服务器给客户端。

联通光猫设置

型号为HG261G的联通烽火光猫开启IPv6以及获取超级管理员密码的设置如下:

1
2
3
4
5
#登录 http://192.168.1.1/logoffaccount.html,将隐藏用户选项改为启用,该选项改过后过一段时间会自动变回禁用;
#登录 http://192.168.1.1/ 用户名:fiberhomehg2x0 密码:hg2x0,进入服务设置->应用服务,勾选 启用telnet 服务,telnet默认的用户名密码均为 admin,
#可使用Putty进行 telnet 连接 192.168.1.1,命令为:telnet 192.168.1.1
#依次输入该用户名和密码,然后依次输入get telname和get telpwd 来获得特权用户的用户名和密码;
#登录 http://192.168.1.1/cu.html,输入刚才获得的特权用户名和密码,点击管理->网络,Internet 连接,将协议模式由 IPv4 更换为 IPv4&IPv6,然后保存/应用,此时光猫的 IPv6 模式已经开启,只需在下级拨号路由器或其他设备中中设置 IPv6 相关功能即可。