旁路由(OpenWrt)同时使用AdguardHome和OpenClash
旁路由存储空间扩容+AdguardHome+OpenClash设置的笔记。
起源
早就有听闻AdguardHome拦截广告的能力比较出众,之前在还没有入手软路由的时候直接把我的华硕RT-ACRH17刷了PandoraBox,然后安装AdguardHome(详见我的另一篇帖子 ASUS RT-ACRH17 刷入 PandoraBox )。但是由于RT-ACRH17始终是硬路由,内存空间不大,经不起折腾,最终还是把RT-ACRH17还原华硕官方的固件,并买了个N5105芯片的工控机做旁路由(刷了OpenWrtR22.4.1)。同时为了后续让家里的电视盒子能看到更多的片源,需要在路由上(使用OpenClash)处理亿点点数据。
小弟不才,在网络拓扑知识方面确实不熟悉,走了不少弯路(折腾了快2个星期晚上的时间),无论如何,结果是好的就行。写个笔记,为了让后续跟我一样的小白少走弯路。
网络拓扑
介绍一下我家目前的设备:
网线入户接入光猫 -> 光猫接主路由(RT-ACRH17) -> 主路由:LAN1接旁路由(N5105工控机)、LAN2接台式电脑、启用wifi供移动设备使用
动手阶段
旁路由
关于旁路由的设置,我最开始是参考知乎的这篇文章 (OpenWrt中,旁路由的设置与使用)。这篇文章的前两章介绍了旁路由界限方式与工作原理,也许是没问题的,但是后续写的设置旁路由的方式对我来说并不适用。
介绍下我设置旁路由的方法:先获取到主路由的IP并记录下来,台式机网线直接连接旁路由:
- 依次进入“网络”->“接口”->“LAN”->“基本设置”:
- 手动设置IPv4地址(需要与主路由同网段,如主路由IP为192.168.2.1,那么这里设置的IP必须要为192.168.2.XXX)。
- IPv4 子网掩码设置为:255.255.255.0。
- IPv4 网关设置为主路由的IP
- IPv4 广播设置为主路由网段,最后一段为255(如主路由IP为192.168.2.1,那么这里设置的IP必须要为192.168.2.255)。
- 自定义DNS服务器:主路由的IP。
- 停用IPv6的所有设置。
- 停用LAN接口的DHCP服务
- 依次进入“网络”->“接口”->“LAN”->“高级设置”:
- 打开“强制链路”
- 依次进入“网络”->“接口”->“LAN”->“物理设置”:
- 打开“桥接接口”
- 勾选中设备的所有LAN口
完成以上设置后,可以把台式机网线重新插回主路由,同时使用网线将主路由和旁路由连接起来。这时在浏览器输入刚刚设置的旁路由IPv4地址,能正常打开旁路由的管理界面即可。
旁路由扩容
我这边买到的工控机是带了128G固态硬盘的,为了能让AdguardHome的日志能存久一点,以及后续可能会在旁路由使用docker搞点其他好玩的(HomeAssistant、Photoprism等...),所以需要先把OpenWrt的软件包空间扩展一下。在这一步,我是参考这篇文章(软路由探索之旅 篇三:给openwrt扩容overlay),我使用的是文章里的方案二的方法。在这里简要描述一下流程:
- 通过ssh连接进入OpenWrt。
- 运行
lsblk
命令查看系统分区信息。 - 输入
cfdisk
进入分区操作。注意:如果在上一步查看分区信息是,你的分区路径不是/dev/sda
这种格式的话,在执行这步时需要加上路径(如cfdisk /dev/disk
)。 - 选中Free space,下方光标定位在New时,按回车。这时系统会让你输入新分区的空间,输入后回车确定。
- 回车后选择主分区primary,有的系统可能没有这个选择。
- 这时在上方列表里会显示多了一个分区,是刚刚新加的分区,这时需要做写入操作。按左右方向键使光标定位至write,接着输入
yes
,然后按回车。 - 然后按左右方向键使光标定位至quit退出分区操作,此时系统会提示syncing disks。
- 接着需要将新分区格式化,输入
mkfs.ext4 /dev/sda3
(这里的/dev/sda3是新分区的路径,请根据实际情况输入,下同),按回车,等待提示done。 - 然后是挂载目录,输入
mount /dev/sda3 /mnt/sda3
将新建的分区挂载到mnt文件夹。输入ls /mnt/sda3
,如果显示lost+found,说明挂载成功 - 接着是把文件复制到新分区,输入
cp -r /overlay/* /mnt/sda3
,将overlay下的所有目录和文件都拷贝到sda3这时候再运行ls /mnt/sda3
,可以看到upper和work目录被拷贝过来了。 - 最后,回到OpenWrt的管理网站页面,进入“系统”->“挂载点”,在页面下方的“挂载点”,如果能找到刚刚新建的分区(根据容量大小判断),则直接修改该项。如果没找到,就点“添加”。在UUID中选中新建的分区(根据容量大小判断),勾选顶部“启用此挂载点”,挂载点选择“作为外部overlay使用”,点击下方“保存&应用”,然后重启路由。重启后,在“系统”->“软件包”页面中,应该就能看到增加了空闲空间。
AdguardHome
安装AdguardHome的方法只在这里简单说一下,详细的安装说明可参考我之前写的文章(ASUS RT-ACRH17 安装 AdGuard Home)或在网上搜索其他教程。
- 在OpenWrt管理页面依次进入“系统”->“软件包”,点击页面上方的“刷新列表”按钮,然后在下方切换至“可用软件包”分页,过滤器输入框内输入“AdguardHome”,查找软件包。在下方列表中安装“luci-app-adguardhome”
- 安装完成后,手动刷新一下页面,依次进入“服务”->“AdGuard Home”进入到AdguardHome的页面,更新一下核心版本,然后勾选上方的“启用”复选框,保存并应用。
- 这时可以通过路由IP加端口号3000进入AdguardHome管理页面。
OpenClash
OpenClash的安装流程这里就不写了,主要是要写一下需要如何设置才能使AdguardHome和OpenClash能同时生效。这部分主要是参考了这篇文章(AdGuard Home和Openclash一起使用)
- 在DNS设置页面将“本地DNS劫持”、“自定义上游DNS服务器”、“禁止Dnsmasq缓存DNS”这三项打开。
- 页面下方“设置自定义上游DNS服务器”表格内,将所有DNS服务器关闭(取消勾选左侧的复选框),然后添加四个NameServer服务器分组的DNS服务器,IP为127.0.0.1,端口为AdguardHome监听的DNS端口号(如果不知道这个端口号是多少,可以在AdguardHome管理页面上方菜单栏最右侧的“设置指导”里查看,里面的IP地址后面的端口号就是要在这里填的端口号)。这四个DNS服务器唯一不同的就是类型,分别设置UDP、TCP、TLS、HTTPS。
- 保存并应用配置。
- 接着需要去AdguardHome管理页面的DNS设置页面把“上游DNS服务器”设置为“127.0.0.1:7874”(OpenClash的DNS监听端口)。这时点击页面的“测试上游DNS”按钮会提示这个地址无法使用,但实际是没问题的。点击“应用”按钮后,设置完成。
这时可以使用连接了主路由的设备(包括有线和无线)设置代理地址为旁路由的IP地址,端口号设置为OpenClash的代理端口,就可以实现既能正常使用OpenClash,也能通过AdguardHome过滤广告。
结尾
对于我这种网络知识积累比较少的人来说,折腾旁路由真的是很累,但是也能学到很多知识,算是累并快乐着吧。如果这篇文章能帮到你的话,那就真的太棒了。