局域网内科学上网的DNS设置

[复制链接]
老黑酱 发表于 2019-11-30 10:26:52 | 显示全部楼层 |阅读模式
这几天看到好多人在纠结DNS的事,不是污染就是断流,具体原因未知,我仅分享一下我认为比较科学的DNS设置。

首先声明,只是分享我的设置,不一定适合所有人,步骤比较简化,有问题的可以留言或者google解决,配置可以自己灵活修改,不一定拘泥一种。

前提:局域网内软路由一台(或者可以跑linux服务器的设备也可以,在软路由内创建一台linux服务器(已有可以略过)

使用root用户登录服务器:

搭建DNSCrypt服务
下载地址https://github.com/dnscrypt/dnscrypt-proxy/releases/tag/2.0.33,下载对应版本并解压,运行安装命令

  1. dnscrypt-proxy -service install
复制代码
创建配置文件夹

  1. mkdir -p /etc/dnscrypt-proxy/dnscrypt-proxy-config
复制代码
下载这些文件到这个文件夹里。https://github.com/CNMan/dnscrypt-proxy-config
打开配置文件dnscrypt-proxy.toml,修改端口号

  1. listen_addresses = ['0.0.0.0:5335']
复制代码
同样也可以修改下面的DNS server,可以去这里找更多的server。https://dnscrypt.info/public-servers/
修改完成后重启服务
  1. systemctl restart dnscrypt-proxy
复制代码
这时候检查一下服务能否正常解析域名
  1. dig FB.com -p 5335
复制代码
如果返回ip则反映服务正常,返回无结果的话请重复以上步骤。

安装dnsmasq服务
安装dnsmasq很简单,一般系统都会默认安装,如果没有安装的话,请使用系统自带软件包管理器安装,我用的debian系统,所以用
  1. apt install dnsmasq -y
复制代码
即可
安装完成后,修改配置文件

  1. port=553
  2. server=127.0.0.1#5335
  3. conf-dir=/etc/dnsmasq.d
复制代码
只需要修改这三处就行。这一步骤就结束了。

使用dnsmasq-china-list优化国内域名解析
找一个文件夹,运行
  1. wget https://raw.githubusercontent.com/felixonmars/dnsmasq-china-list/master/install.sh
复制代码
完成后运行
  1. bash install.sh
复制代码
设置完成。

搭建AdguardHome
去这个页面下载对应系统版本的安装包并解压https://github.com/AdguardTeam/AdGuardHome/releases
进入解压文件夹后直接运行./AdGuardHome,根据命令行显示的ip用浏览器打开,进行初始化设置,这一步都是图形化,按说明设置即可。
设置完成后进入主界面,打开设置->DNS设置,删掉上游 DNS 服务器里的默认值,替换为
  1. 127.0.0.1:553
复制代码
对,没错,dnsmasq的地址,保存设置,然后回到命令行ctrl + c 停掉服务,将adguard安装到系统服务内
  1. ./AdGuardHome -s install
复制代码
本帖最后由 imswing 于 2019-11-23 21:47 编辑


这几天看到好多人在纠结DNS的事,不是污染就是断流,具体原因未知,我仅分享一下我认为比较科学的DNS设置。

首先声明,只是分享我的设置,不一定适合所有人,步骤比较简化,有问题的可以留言或者google解决,配置可以自己灵活修改,不一定拘泥一种。

前提:局域网内软路由一台(或者可以跑linux服务器的设备也可以,在软路由内创建一台linux服务器(已有可以略过)

使用root用户登录服务器:

搭建DNSCrypt服务
下载地址https://github.com/dnscrypt/dnscrypt-proxy/releases/tag/2.0.33,下载对应版本并解压,运行安装命令
  • dnscrypt-proxy -service install

[color=rgb(51, 102, 153) !important]复制代码


创建配置文件夹
  • mkdir -p /etc/dnscrypt-proxy/dnscrypt-proxy-config

[color=rgb(51, 102, 153) !important]复制代码

,下载这些文件到这个文件夹里。https://github.com/CNMan/dnscrypt-proxy-config
打开配置文件dnscrypt-proxy.toml,修改端口号
  • listen_addresses = ['0.0.0.0:5335']

[color=rgb(51, 102, 153) !important]复制代码

,同样也可以修改下面的DNS server,可以去这里找更多的server。https://dnscrypt.info/public-servers/
修改完成后重启服务
  • systemctl restart dnscrypt-proxy

[color=rgb(51, 102, 153) !important]复制代码


这时候检查一下服务能否正常解析域名
  • dig FB.com -p 5335

[color=rgb(51, 102, 153) !important]复制代码

,如果返回ip则反映服务正常,返回无结果的话请重复以上步骤。

安装dnsmasq服务
安装dnsmasq很简单,一般系统都会默认安装,如果没有安装的话,请使用系统自带软件包管理器安装,我用的debian系统,所以用
  • apt install dnsmasq -y

[color=rgb(51, 102, 153) !important]复制代码

即可
安装完成后,修改配置文件
  • port=553
  • server=127.0.0.1#5335
  • conf-dir=/etc/dnsmasq.d


[color=rgb(51, 102, 153) !important]复制代码


只需要修改这三处就行。这一步骤就结束了。

使用dnsmasq-china-list优化国内域名解析
找一个文件夹,运行
[color=rgb(51, 102, 153) !important]复制代码

,完成后运行
  • bash install.sh

[color=rgb(51, 102, 153) !important]复制代码

,结束。

搭建AdguardHome
去这个页面下载对应系统版本的安装包并解压https://github.com/AdguardTeam/AdGuardHome/releases
进入解压文件夹后直接运行./AdGuardHome,根据命令行显示的ip用浏览器打开,进行初始化设置,这一步都是图形化,按说明设置即可。
设置完成后进入主界面,打开设置->DNS设置,删掉上游 DNS 服务器里的默认值,替换为
  • 127.0.0.1:553

[color=rgb(51, 102, 153) !important]复制代码

对,没错,dnsmasq的地址,保存设置,然后回到命令行ctrl + c 停掉服务,将adguard安装到系统服务内,
  • ./AdGuardHome -s install

[color=rgb(51, 102, 153) !important]复制代码



这时候DNS服务已经搭建完毕,去你的路由器或者其他设备,就是分配DHCP的地方,把DNS服务器改成刚刚装这些服务的机器的ip地址。
或者你也可以用AdGuard 内置的 DHCP 服务器来接管局域网内DHCP分配,看你的爱好。
以上设置就完成了,DNS污染从此说byebye。

PS:Adguard还可以有安全浏览和去广告的服务,你们自己去找过滤列表去玩吧。
完结。
dnsmasq-china-list对国内常见的域名做了分流,用国内DNS加速解析
整个局域网的解析是这样的
device -> AdguardHome -> dnsmasq -> dnscrpt

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入我们

本版积分规则 返回列表 发新帖

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

快速回复 返回顶部 返回列表