本帖最後由 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]複製代碼
這時候檢查一下服務能否正常解析域名
[color=rgb(51, 102, 153) !important]複製代碼
,如果返回ip則反映服務正常,返回無結果的話請重複以上步驟。
安裝dnsmasq服務
安裝dnsmasq很簡單,一般系統都會默認安裝,如果沒有安裝的話,請使用系統自帶軟件包管理器安裝,我用的debian系統,所以用
[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]複製代碼
,完成後運行
[color=rgb(51, 102, 153) !important]複製代碼
,結束。
搭建AdguardHome
去這個頁面下載對應系統版本的安裝包並解壓https://github.com/AdguardTeam/AdGuardHome/releases
進入解壓文件夾後直接運行./AdGuardHome,根據命令行顯示的ip用瀏覽器打開,進行初始化設置,這一步都是圖形化,按說明設置即可。
設置完成後進入主界面,打開設置->DNS設置,刪掉上游 DNS 服務器裡的默認值,替換為
[color=rgb(51, 102, 153) !important]複製代碼
對,沒錯,dnsmasq的地址,保存設置,然後回到命令行ctrl + c 停掉服務,將adguard安裝到系統服務內,
[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 |