臺州企業(yè)網(wǎng)站建設(shè)500元全包(私人dns有什么用?)什么叫私人dns,
如果你對自己的DNS有更高的要求那么你或許可以打造一個專屬于自己的DNS, 并且利用這個DNS做一些反廣告的操作,又因為這個DNS是用的DNS-Over-TLS(DOT)協(xié)議, 所以可以反毒化, 因為TLS的加密特性可以防止數(shù)據(jù)在傳輸過程中被篡改.
打造自己的DNS有兩種辦法,一是做一個公網(wǎng)可訪問的DNS服務(wù)器, 二是僅局域網(wǎng)可訪問的DNS服務(wù)器第一種方法需要一個域名,一個公網(wǎng)云主機第二種方法需要一個本地的主機(可以是樹莓派, 可刷機的電視盒子, 本地電腦, 不用的舊手機等。
)本人是兩種方法都搞上了, 本地因為是局域網(wǎng)所以不需要搞DOT, 也就不需要一個跟域名匹配的證書, 而第二種方法因為是效果展示
接入方法接入方法這里介紹兩種安卓手機和windows11電腦安卓手機小米安卓手機是 "設(shè)置" -> "連接于共享" -> "私人DNS" -> "私人DNS提供商主機名" 然后填入自己的域名的DOT協(xié)議的DNS即可
本人只有小米手機, 所以這種方法可能并不一定適合你,但是Android9以上的安卓手機,應(yīng)該都有一個類似私有DNS的選項windows11電腦因為自己用的電腦就是在自己已經(jīng)假設(shè)私有dns的局域網(wǎng), 所以就不需要設(shè)置一個公網(wǎng)的dot協(xié)議的DNS服務(wù)了。
大家可以參考: https://4sysops.com/archives/activate-dns-over-tls-dot-in-windows-11/安裝方法DNS服務(wù)選型有兩種ADGuardHome
CoreDNS 如上文所示, 本文選擇的是第一種方式, ADGuardHome的好處在于有一個web控制臺, 操作簡單好用,對終端用戶比較友好, 因為安裝方法及占用資源相較于第二種要復(fù)雜和稍多一些,但是用戶體驗要好于第二種太多太多。
這里兩種辦法都會介紹兩種安裝方式可以安裝在本地也可以安裝在云主機, 安裝在本地就是局域網(wǎng)DNS服務(wù), 反之就是公網(wǎng)可訪問的DNS服務(wù)值得注意的云主機一般會有安全組(或者說防火墻, DOT協(xié)議用的是853TCP端口, 你需要放行。
)獲取證書獲取證書的前提是你需要一個域名, 這里建議通過國內(nèi)的云服務(wù)商(阿里云, 騰訊云等)買一個域名, 這些云廠商可以申請免費的ssl證書, 雖然可以申請lets encrypt的免費證書, 但是親測發(fā)現(xiàn)小米手機無法連接, 也沒有更多的報錯, 個人懷疑是小米手機對于DOT協(xié)議的根證書沒有安裝lets encrypt的根證書所以不能驗證證書的有效性, 但是其他品牌手機的"私人DNS"沒有設(shè)置, 如果跟完教程并且測試過,可以反饋一下,云廠商贈送的免費ssl證書的還有一個好處是有效期一年!
雖然小米手機的私人DNS不能識別這個lets encrypt的證書, 但是并不代表這個證書就沒用, 用其他客戶端是沒有問題的騰訊云ssl免費證書申請參考: https://cloud.tencent.com/document/product/400/6814。
申請流程很快, 本人申請發(fā)現(xiàn)不到十分鐘就下來了. 如果是阿里云或者華為云等云廠商可以參考官網(wǎng)對于的文檔。 本人是用騰訊云的小程序申請的,截圖如下:
證書下來之后就可以去騰訊云的控制臺下載證書了我下載的"Nginx(適用大部分場景)"選項, 下載下來是一個壓縮包, 解壓后有以下文件:dot.example.com.csrdot.example.com。
.keydot.example.com_bundle.crtdot.example.com_bundle.pem假設(shè)你的域名是dot.example.com 本文只需要dot.example.com.key,
dot.example.com_bundle.crt兩個文件即可, 前者是一個私鑰, 后者是一個證書安裝DNS服務(wù)這里演示兩種DNS的方法,首先演示CoreDNS, 因為它比較簡單CoreDNS如果對linux收悉的話, 安裝Coredns還是很簡單的, 因為Coredns只需要一個配置文件,并且自身是一個可執(zhí)行的二進制包. 配置文件如下。
tls://. { # tls證書配置tlsdot.example.com_bundle.crt dot.example.com.key # 會打印日志, 顯示解析的詳情log # 將dns查詢轉(zhuǎn)發(fā)給8.8.8.8, .代表所有域名
forward. 8.8.8.8}然后再這個配置文件的目錄執(zhí)行coredns即可, 正常運行會顯示如下[root@localhost download]# coredns tls://.:853 CoreDNS
-1.10.0 linux/amd64, go1.19.1, 596a9f9coredns下載地址: https://github.com/coredns/coredns/releases下載一個對應(yīng)版本的coredns即可, 因為coredns是go語言寫的, 所以幾乎支持所有平臺, 比如windows, linux, macos, 安卓手機(推薦termux), 樹莓派等.
反廣告但是coredns怎么屏蔽廣告呢? 可以使用coredns的hosts插件, 比如我們準備一個這樣的hosts文件127.0.0.1baidu.com然后Coredns配置文件就變成了這樣tls:
//. { # tls證書配置tlsdot.example.com_bundle.crt dot.example.com.key # 會打印日志, 顯示解析的詳情log # 將dns查詢轉(zhuǎn)發(fā)給8.8.8.8, .代表所有域名
hostsadhosts.txt}然后通過doggo(類似dig, 支持更多的dns協(xié)議)的dns查詢工具查詢一下baidu.com[root@ye download]# doggo baidu.com
@tls://dot.example.com NAME TYPE CLASS TTL ADDRESS NAMESERVER baidu.com. A IN
3600s 127.0.0.1 dot.example.com:853你會發(fā)現(xiàn)baidu.com被解析成127.0.0.1了, 這樣就達到了廣告屏蔽的效果, 所以為了匹配廣告你需要準備一些廣告域名, 然后將其改成hosts插件支持的格式.
doggo工具下載地址: https://github.com/mr-karan/doggo/releases加速(也許)既然能hosts插件能夠?qū)⒅付ㄓ蛎馕龀芍付ǖ膇p地址,那么就可以hosts加速, 可自行搜索hosts加速, 這里就不展開了。
ADGuardHomeADGuardHome也是用go語言寫的, 雖然也能二進制安裝, 但是默認會占用一堆的端口, 比如53, 80等端口, 所有一般使用docker安裝.dockerrun --name adguardhome --restart unless-stopped -v /my/own/workdir:/opt/adguardhome/work -v /my/own/confdir:/opt/adguardhome/conf -p 80:80/tcp 3000:3000/tcp -p 853:853/tcp -d adguard/adguardhome
上面的命令代碼啟動adguard/adguardhome容器, 并且將本地的80, 3000, 853等端口映射到容器內(nèi), 如果你不想映射同樣的端口, 比如80端口已經(jīng)被占用了, 那么你可以將80:80改成8080:80, 即將8080映射到容器的80端口。
/my/own/workdir應(yīng)該是主機上一個存在的目錄,docker的知識這里就不展開了, 大家需有一定的docker使用基礎(chǔ)ADGuardHome的安裝在云主機稍微有點麻煩, 因為初次啟動需要本地訪問它的3000端口, 如果通過公網(wǎng)訪問會發(fā)現(xiàn)無法訪問, 所以你需要通過ssh代理來安裝。
本人用的是xshell的隧道功能,
這樣xshell就會在本地開啟一個監(jiān)聽11211端口的socks5代理. 然后通過自瀏覽器設(shè)置一個代理訪問云主機的本地地址就可以連接ADGuardHome的3000端口, 安裝完成之后你可以不在映射3000端口
安裝完成之后就可以通過設(shè)置的用戶名密碼進行登錄了詳細的安裝教程可參考以下鏈接:https://www.jianshu.com/p/a52ea033615ahttps://sspai.com/post/63088。
默認情況只有一個DOH的DNS上游服務(wù)器, 國內(nèi)使用需要添加自定義的DNS列表, 本人只設(shè)置了如下三個# 騰訊dns119.29.29.29# 廣東聯(lián)通210.21.196.6# 阿里dns223.5.5
.5當然你還可以使用DOT, DOH等協(xié)議防止上游DNS毒化, 但是本人不需要, 因為毒化的一般是國外域名, 而國外域名需要梯子, 所以影響并不大反廣告通過控制臺的 "過濾器" -> "DNS 攔截列表" -> "添加阻止列表"就可以添加廣告域名列表了, ADGuardHome內(nèi)置了一些列表, 可以"從列表中選擇"或者"添加一個自定義列表"。
本人兩者都選擇了加速(也許)類似coredns的hosts插件, 添加自定義的域名解析,可以通過"過濾器" -> "DNS重寫"實現(xiàn).但是添加沒有coredns那么方便總結(jié)如果真的需要一個私人的DNS服務(wù), 你可能需要考慮以下云主機的地理位置和帶寬, 個人建議是選擇一個本省的云主機, 一般本省的云主機的ping速度能夠搞到50ms以下, 而外省的延遲可能就比較高了, 對于dns解析也許是難以接受的, 因為大部分時間用在了傳輸, 而帶寬就跟使用的人數(shù)有關(guān)了。
最后總結(jié)以下優(yōu)點和缺點: 私人DNS優(yōu)點: 完全可控, 查詢?nèi)罩? 控制策略等 反毒化 反廣告 可加速(也許)缺點: 速度相較于運營商的dns要慢 運營商DNS或公網(wǎng)DNS優(yōu)點: 快缺點: 如果沒有特別需求, 無 如果有特別需求, 就是沒有私人DNS的優(yōu)點。