在自己的服务器上安装AdGuard Home和ddns-go以搭建DNS服务器

这两个程序在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,编译看起来挺顺利

试图编译adgh
试图编译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在这也歇菜了

dg报错
无法扩容
点赞
  1. 音也说道:
    Google Chrome Android 11
    用上了,大佬牛逼,多更多更 :huaji9: :huaji19:
  2. Gaoice说道:
    Google Chrome Windows 7
    :huaji20:

发表评论

电子邮件地址不会被公开。必填项已用 * 标注