这两个程序在GitHub上面都是有源码的,也有现成的Release包,但是鉴于大部分人访问GitHub的速度。。。我将AdGuard Home的Release包(下文中简称”adgh“)和我自己用GitHub上面的源码编译的AMD64平台的适用于Linux和Windows的ddns-go可执行文件上传到了我网盘,需要的可以点上面的超链接去我网盘自取,至于为啥一个是人家的release,一个是自己编译的文件。。。因为我自己编译的adgh跑起来只有一个404page not found。。。而我编译的ddns-go就能跑起来。。。
先简单说一下我在服务器上编译的时候走过的坑
首先就是网络问题,有墙,而有一些go模块是被墙的,所以编译的时候自备出墙工具,再一个是奇怪的”路径不是主机名“,上网查说是作者编写不规范导致的,不过我在Windows上编译又没遇到这个问题,最开始我直接在Debian上面编译,用go build编译先是报缺少模块,后来查了一下,去用go get获取模块,结果有些模块被墙了,设置别人搭建的代理之后就是报”路径不是主机名“,反正乱七八糟折腾几个小时没给我编译,最后我还是在adgh的readme里面得知go可以跨平台编译,我自己笔记本之前成功编译过Windows的,所以各种依赖都在,就直接设置一下环境变量然后编译了
接着我就试图编译adgh,编译看起来挺顺利
但是跑起来就会报错。。。(昨天忘记截图了,没图)会报”404 page not found“,不过ddns-go跑起来就没问题,这里我就不放图了,可以移步原作者的GitHub仓库查看效果图,这是adgh部署完成跑起来之后的样子
由于家宽没有静态IP,真服务器开53会收到警告,所以搭建的dns大概也只能自己在家里用udp53的解析了,但是家宽下搭建的dns服务器配合ddns使用之后再申请ssl证书,把doh(dns over HTTPs)、dot(dns over tls)打开,手机上设置dot,pc浏览器设置doh还是能在外面使用的,另外搭建这玩意,除非说你土豪到专门去买(严格来讲应该是”租“)一台服务器啥也不干就光搭建这玩意,或者十分有幸,拥有一个不封锁web端口(TCP80/443)的家宽,那你可以使用80端口来访问管理后台、用443端口访问后台和使用doh,不然基本是只能使用非标web端口了,另外Windows的dns设置不能带端口号,这就比较蛋疼,所以也别指望着改个非53端口就能用udp的dns了,我目前的情况是在自己家里搭建的在家庭局域网环境下使用udp的dns,同时也可以使用dot和doh等加密dns,服务器上面那个只开放dot、doh等隐私加密dns,53端口不对外开放,包括我自己也不用(因为用了就会被警告甚至挨收拾。。。)
ps:腾讯云的轻量服真香,180/年终身,1核2G(RAM)50G(硬盘),500G/月的出网流量,5mbps出网带宽,相比云服,除了不能解封SMTP25端口以及不能换IP,有流量现在以外基本不差什么,不过这个价格能选的全都是境内服
adgh的配置文件我已放出,需要修改一下再用,里面有我添加的二十三个列表和我手动放通的一些误杀链接白名单,adgh的登录用户名是明文储存在配置文件中的,密码疑似使用MD5加密储存,到时候也是在我网盘中自取
adgh的安装方式有两种,一个是直接使用作者的脚本进行安装,一个是自行下载release包之后进行解压安装
curl -s -S -L https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh -s -- -v
这是作者给出的安装示例代码,他这个命令是直接把脚本的内容全部输出,然后把输出丢给sh执行,你也可以点这里从我网盘下载脚本,然后执行sh install.sh
进行安装,安装脚本的命令行参数如下:
-c <channel> 选择一个频道,“channel”的可选值是“beta”或“edge”,如省略则使用“release”版 -r 重装AdGuard Home; -u 卸载AdGuard Home; -v 使用详细输出; 注意,“-r”选项和“-u”选项是互斥的
这段是作者原话 #The script also accepts some options: -c <channel> to use specified channel. -r to reinstall AdGuard Home; -u to uninstall AdGuard Home; -v for verbose output; Note that options -r and -u are mutually exclusive.
这个脚本会将adgh安装到/opt/AdGuardHome/
下,操作的时候需要执行/opt/AdGuardHome/AdGuardHome
再带上选项,自行下载包并解压的时候操作需要带上路径(绝对路径和相对路径都行),直接执行默认是在前台运行,可通过./AdGuardHome -s install
将adgh安装成服务,部署成服务之后的命令选项如下:
# 启动 AdGuardHome 服务 ./AdGuardHome -s start # 停止 AdGuardHome 服务 ./AdGuardHome -s stop # 重启 AdGuardHome 服务 ./AdGuardHome -s restart # 查看 AdGuardHome 服务状态 ./AdGuardHome -s status # 卸载 AdGuardHome 服务 ./AdGuardHome -s uninstall
把adgh安装成服务之后基本就不需要为它操心了,直接去浏览器设置就好,初始设置的端口号为3000
,在完成设置后记得去放通相关端口就能使用了
最后,给个忠告:安装Linux的时候空间一定要一次性给够,不然后续的扩容会十分麻烦,尤其是当Linux的分区是一块硬盘中最后一个分区的时候,我折腾了一整天都没琢磨出来怎么把分区往前移并扩容,平时在Windows里几乎万能的diskgenius在这也歇菜了
用上了,大佬牛逼,多更多更