cjchome 发表于 2021-4-27 00:36

梅林安装AdGuardHome去广告 - 不完全教程

本帖最后由 cjchome 于 2022-5-10 08:34 编辑

最近在电脑上卸阿呆猫装AdGuard,感觉用很起来不错,于是也想在路由上装一个给家里全网去去广告,我主路由K3梅林,一搜发现在OpenWrt上的安装配置教程不少,但在梅林上安装AdGuardHome的可用信息几乎为零 。
经过这几天的折腾,基本在梅林上把AdGuardHome配置好了,现在把我折腾的经过发出来跟大家共享一下,一起探讨探讨。
我也不是什么Linux高手,有什么错误的地方欢迎指正~~

1.首先,先到GitHub下载适合自己路由的AdGuardHome
https://github.com/AdguardTeam/AdGuardHome/releases
我是k3,号称armv7l的CPU,但我装的AdGuardHome、filebrowser、upx等Linux程序都只能用armv5的版本,下载AdGuardHome_linux_armv5.tar.gz可以在K3梅林直接使用,其它路由请下载适合自己CPU架构的软件包。

2.将下载到的文件解压到AdGuardHome目录,用WinSCP传到梅林的/koolshare/下,空间不够也可以放到U盘,并用WinSCP给AdGuardHome主程序文件设置可执行权限

在命令行下键入   ./AdGuardHome -c /koolshare/AdGuardHome/AdGuardHome.yaml   (文件路径自己更改,没有AdGuardHome.yaml文件没关系,后面设置完后会自动生成)试试程序能不能正常运行,命令行会有提示,确保程序能正常运行后再进行下一步操作。
目前不知道要不要entware包的支持,因为我已经装过了不想再卸载测试,有必要请自己先安装一下,旧梅林运行entware-setup.sh,384之后的运行amtm。

3.这里重点,要考!
梅林的DNS/DHCP服务由dnsmasq提供,但梅林下又不像OpenWrt下有AdGuardHome的UI可以设置DNS端口重定向和DNS转发,就很难让AdGuardHome接管dnsmasq的工作,我在这一步上费了不少工夫。
难点在于,dnsmasq的DNS服务已经占用了53端口,会与AdGuardHome冲突,而且梅林下的dnsmasq有进程守护,终止进程后,没一会它就自动运行起来了,我试着修改/etc/dnsmasq.conf的配置,结果发现它重新运行时又会重置dnsmasq.conf文件,修改了也根本没用。
第一次运行要进行一些初始化配置,AdGuardHome需要用到53端口,但当前路由的53端口又被dnsmasq占用着,我的初装办法是:
在命令行键入   ./AdGuardHome -c /koolshare/AdGuardHome/AdGuardHome.yaml   (文件路径自己更改)运行程序,跑起来后命令行信息滚动(有出错信息自行分析)
到出现提示“ Go to http://192.168.50.1:3000时,用浏览器访问:http://路由内网IP:3000,出现如下网页

开始配置,共5步


第二步这里两个端口,一个是AdGuardHome管理界面的端口,一个是DNS服务器的端口,路由上很容易出现端口冲突,输入框下方有红色字体就说明有问题
梅林固件下安装,53端口肯定会有冲突,我的办法是先修改AdGuardHome DNS服务器端口号,比如先改成55,要是网页管理端口3000也有冲突就一起改了,让这一步先过,后面几个步骤就很简单了,根据提示操作。
设置好后,AdGuardHome就以55端口提供DNS服务跑起来了,进入AdGuardHome仪表盘,你会发现已被过滤器拦截总是为0,这是因为默认DNS服务默认走53,不会去走55的端口嘛
这5步初始化配置完成后,程序会在你指定的目录自动生成AdGuardHome.yaml配置文件。
Ctrl+C结束AdGuardHome运行,用WinSCP到AdGuardHome目录里,打开AdGuardHome.yaml,找到这一段

将port: 55改成53保存退出,这一点很重要,梅林下AdGuardHome的DNS端口一定要是53,才能正常接管dnsmasq工作,同时也会接管梅林的DHCP服务,之前在梅林DHCP设置的静态IP分配也会失效,有需要可以到AdGuardHome的设置->DHCP设置中重新分配。
以上初始化之后,再次运行程序前就要先结束掉dnsmasq进程,指令集如下:
killall -9 dnsmasq ; service stop_dnsmasq ; service disable_dnsmasq ; dnsmasq --port=0 ; /koolshare/AdGuardHome/AdGuardHome -c /koolshare/AdGuardHome/AdGuardHome.yaml可以将需要的指令整理成一个脚本文件AdGuardHome.sh,给可执行权限,以后运行方便:
#!/bin/sh
killall -9 dnsmasq          #结束dnsmasq进程,准备让AdGuardHome接管DNS和DHCP服务。根据楼下的经验,杀不掉进程时,试试用kill -9 $(pidof dnsmasq)替换该指令
service stop_dnsmasq >>/dev/null          #停止dnsmasq,以保证dnsmasq终止,该指令在梅林下不一定有效
service disable_dnsmasq >>/dev/null          #禁用dnsmasq,该指令在梅林下不一定有效
nohup /koolshare/AdGuardHome/AdGuardHome -c /koolshare/AdGuardHome/AdGuardHome.yaml >>/dev/null &          #后台运行AdGuardHome
dnsmasq --port=0          #dnsmasq不是会自动运行起来吗?反正没办法完全禁用,干脆我帮它先运行了,指定端口号为0,等于关闭了DNS服务
需要手动运行AdGuardHome时,进入SSH命令行执行/koolshare/AdGuardHome/AdGuardHome.sh,重新出现命令行提示符时,AdGuardHome就驻留在后台运行了。
以上指令集和脚本的区别在于,指令集启动的AdGuardHome在前台运行,有运行状态信息提示可供配置时调试;脚本启动的完全静默,仅供程序配置正常后常驻内存提供服务。

4.SSH下用上面指令集运行AdGuardHome,程序跑起来后浏览器再访问http://路由内网IP:3000就可以对AdGuardHome进一步配置
接下来的配置OpenWrt下的安装教程已经有很多很详细了,不再赘述,借用一下其他大神写的教程吧:
来吧,AdGuardHome去广告和DNS正确姿势
https://www.right.com.cn/forum/thread-4090928-1-1.html
AdGuard Home设置指南 让你点哪里打开哪里 各项性能调校
https://www.right.com.cn/forum/thread-4055807-1-1.html
openwrt插件 AdGuardHome学习与分享
https://www.right.com.cn/forum/thread-4084366-1-1.html

5.在配置过程中,网页的右下角可能会弹出一些提示xxxxx连接不上巴拉巴拉。。。的错误信息,总结一些常见问题:
   a.设置->DNS设置里,AdGuardHome的默认提供的DNS服务器不适合我们天朝上国的网络环境,改成国内腾讯阿里或ISP运营商提供的DNS就可以解决
   b.过滤器->DNS封锁清单里,同样AdGuardHome的默认配置可能不合适,连接不上的禁用,同时增加适合国内环境的阻止列表,上面的配置教程里有推荐
   c.内网接入的客户端DNS要设置成AdGuardHome所在设备的IP,如192.168.50.1
   d.路由jffs空间有限,建议调试完成后到设置->常规设置中将日志关闭
   e.配置完成后备份好AdGuardHome.yaml和AdGuardHome.sh文件,需要重装时可以省事很多

6.设置AdGuardHome开机自启
确保AdGuardHome能正常运行并提供DNS服务后,编辑/jffs/scripts/services-start,在这个文件末尾加入一行
/koolshare/AdGuardHome/AdGuardHome.sh
重启路由。

其它没什么难点了,当你看到仪表盘的DNS查询和已被过滤器拦截有数字变化时,AdGuardHome已经开始生效了,开始你的无广告冲浪之旅吧!

最后上传一个我自己的AdGuardHome.yaml配置文件和AdGuardHome.sh供你们参考,或替换你的配置文件(账号admin密码123456,DHCP已开启并分配192.168.50.x网段,需改成自己实际的网段,应该不能直接使用)


quzhe1977 发表于 2021-4-27 01:03

睡醒了赶快接着写啊,让你说的我也想试试了

HUANWENSD 发表于 2021-4-27 07:04

占个位楼主写完了看下

小麦兜 发表于 2021-4-27 11:07

坐等完美教程。。。。。。。加油

yule360@aliyun. 发表于 2021-4-27 15:34

没有ARM8的.........

cjchome 发表于 2021-4-27 15:40

yule360@aliyun. 发表于 2021-4-27 15:34
没有ARM8的.........

arm64呀,不行几个arm都下载来试一下

茶亭镇 发表于 2021-4-27 20:00

谢谢分享,辛苦了

小麦兜 发表于 2021-4-28 00:59

本帖最后由 小麦兜 于 2021-4-28 05:03 编辑

进入后台最后提示这个,AdGuardHome.yaml这个文件权限什么都设置好了,就是无法写入
Error: control/install/configure | Couldn't write config: open /AdGuardHome/.AdGuardHome.yaml448287982: no such file or directory | 500

yule360@aliyun. 发表于 2021-4-28 08:31

cjchome 发表于 2021-4-27 15:40
arm64呀,不行几个arm都下载来试一下

谢谢 我还是等他们应用软件

cjchome 发表于 2021-4-28 08:55

小麦兜 发表于 2021-4-28 00:59
进入后台最后提示这个,AdGuardHome.yaml这个文件权限什么都设置好了,就是无法写入
Error: control/insta ...

AdGuardHome.yaml前面是不是多了个点(.)?

小麦兜 发表于 2021-4-28 09:11

cjchome 发表于 2021-4-28 08:55
AdGuardHome.yaml前面是不是多了个点(.)?

不是点的原因,改了就会多个点

cjchome 发表于 2021-4-28 09:32

本帖最后由 cjchome 于 2021-4-28 09:35 编辑

小麦兜 发表于 2021-4-28 09:11
不是点的原因,改了就会多个点
改了就会多个点?这么奇葩
是不是你用的修改软件有问题
要不看看AdGuardHome.sh文件里的命令行是不是多个点了?
不排除你用AdG测试版的可能,我用的是105.2正式版

小麦兜 发表于 2021-4-28 09:52

cjchome 发表于 2021-4-28 09:32
改了就会多个点?这么奇葩
是不是你用的修改软件有问题
要不看看AdGuardHome.sh文件里的命令行是不是多 ...

AdGuardHome.sh这命令里面没有点,加个点后错误提示也会跟着多个点

xzl885500 发表于 2021-4-28 17:07

R6300V 2,下载的armv7,那个文件下载下来,里面没有.sh文件啊,安装失败,而且按照教程,也没法运行,楼主可以出个详细点儿的,带截图的教程吗

cjchome 发表于 2021-4-28 17:44

xzl885500 发表于 2021-4-28 17:07
R6300V 2,下载的armv7,那个文件下载下来,里面没有.sh文件啊,安装失败,而且按照教程,也没法运行,楼主 ...

这不是和K3一个系列的处理器吗?用armv5试试
.sh文件是自己创建的
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: 梅林安装AdGuardHome去广告 - 不完全教程