AdguardHome是一个去广告应用,但是它不仅仅能去广告,还能做一个局域网的DNS服务器。
安装
这个应用因为算是网络管理相关,我就安装在了OpenWrt上,在编译时只需要勾选luci-app-adguardhome即可。
然后在OpenWrt的管理页面然后下载核心(可能需要科学上网)。
去广告
-
Web管理页面默认在3000端口
-
默认的用户名密码为
admin,admin -
在设置 → DNS设置 → 上游DNS服务器可以填写公共DNS服务器,比如
# 国外 8.8.8.8 1.1.1.1# 国内 223.5.5.5 114.114.114.114 -
之后把设备的DNS服务器改为OpenWrt即可
默认DNS服务器
-
OpenWrt默认的DNS服务器为
dnsmasq,它在监听53端口,既然我们已经安装了AdguardHome,完全可以把它作为DNS服务器,在OpenWrt输入命令uci set dhcp.@dnsmasq[0].port='0' uci commit dhcp /etc/init.d/dnsmasq restart可以让
dnsmasq不监听53端口 -
然后修改AdguardHome的配置文件,它的默认port为1753,可以改成53
# vim /etc/AdGuardHome.yaml dns: bind_hosts: - 0.0.0.0 port: 53 -
重启AdguardHome
/etc/init.d/AdGuardHome restart -
这样AdguardHome就变成默认DNS服务器了,默认服务器的好处就是你可以用它来监控哪个设备请求了哪些服务,否则各个设备的请求得先被
dnsmasq接收,然后再转到Adguard Home,这样在Adguard Home看到的所有的请求都来自于localhost
给设备命名
-
把Adguard Home设置为默认DNS服务器还有个好处就是可以单独命名各个设备,之前访问debian服务器还得记住它的IP地址,现在只要记住设备的域名就可以了
-
在过滤器 → DNS重写,添加重写规则,效果如图
-
然后浏览器访问
http://openwrt.home就能直接访问到OpenWrt的Web Manager了
修改用户名密码
-
其实这个用户名密码没有很重要,因为Adguard Home肯定只在内网运行(我没有把OpenWrt部署到公网),但是为了以防万一还是修改一下用户名密码,
admin/admin实在是太危险了 -
如果你有Alpine,可以在Alpine内运行
docker run --rm alpine sh -c 'apk add --no-cache apache2-utils >/dev/null && htpasswd -B -C 10 -n -b username password'