http://smusic7.blogspot.com/2017/07/dnspcap-dns-proxy-dns.html
導語
很久以前就想要寫一篇防止DNS污染的文章,但是找了很多的工具,要麼很複雜,要麼沒有智能分線路解析的功能。簡單解釋下,DNS污染就是指運營商對於你的DNS域名解析請求會進行修改,以插入廣告,或者讓你無法訪問某些網站,網速也會變慢。
最常規的想法就是把DNS全部使用一臺國外VPS進行解析,返回結果。但是這樣又帶來一個問題:很多套上CDN的網站會根據請求DNS服務器的不同而給你不同的IP地址,訪問不同的線路。
如果全部在國外的DNS服務器上解析,可能會一直讓你走國外的線路訪問國內的網站。本次我發現了一個寶貝,叫做 Pcap_DNSProxy。
特點
國內域名自動使用114DNS解析,不在白名單中的域名都在國外DNS服務器解析,純淨無污染,提升網速,拒絕廣告。
Summary 簡介
Pcap_DNSProxy 是一個基於 WinPcap/LibPcap 用於過濾 DNS 投毒污染的工具,提供便捷和強大的包含正則表達式的修改 Hosts 的方法,以及 對 DNSCurve/DNSCrypt 協議、並行和 TCP 協議請求的支持。多服務器並行請求功能,更可提高在惡劣網絡環境下域名解析的可靠性:
- IPv4/IPv6 協議雙棧支持,並可自定義多端口多地址監聽和遠程請求協議
- 服務器模式爲其它設備提供解析服務,可限制請求範圍
- 支持對 CNAME 記錄和解析結果進行 Hosts 並同時支持 Local Hosts 境內 DNS 服務器解析,可提高對境內域名解析速度和服務器訪問速度
- 主要/備用雙服務器模式,境外服務器支持並行多次請求,提高 DNS 解析可靠性
- 獨立 DNS 緩存、EDNS 標籤、DNSSEC 請求功能以及完整的 DNSCurve/DNSCrypt 協議支持
- 原生 SOCKS 版本 4/4a/5 和 HTTP CONNECT 隧道協議包括 TLS/SSL 加密連接的支持
- 豐富的配置參數和選項以及錯誤報告功能
- 支持 ASCII 和 UTF-8(/BOM) 和 UTF-16(LE/BE) 和 UTF-32(LE/BE) 編碼以及 Unicode 標準要求實現的所有空格/換行格式
安裝方法(需要以管理員身份進行)
自動獲取純淨DNS設置方法
① 安裝WinpCAP
打開網址:https://www.winpcap.org/install/default.htm
下載安裝 WinpCAP:
- WinPcap 只需要安裝一次,以前安裝過最新版本或以後更新本工具時請從第2步開始操作
- 如果 WinPcap 提示已安裝舊版本無法繼續時,參見 FAQ 中 運行結果分析 一節
- 安裝時自啓動選項對工具的運行沒有影響,本工具直接調用 WinPcap API 不需要經過服務器程序
② 下載 Pcap_DNSProxy
下載地址:https://github.com/chengr28/Pcap_DNSProxy/releases
- 打開下載回來的二進制可執行文件包,將 Windows 目錄解壓到磁盤的任意位置
- 目錄所在位置和程序文件名可以隨意更改,建議將本項目放置在一個獨立的目錄內
- 配置文件需要使用固定的文件名
③ 下載完成後,我們解壓文件,進入裏面的Windows文件夾。
以管理員身份 運行 ServiceControl.bat
文件。並輸入’1
‘, 回車
- 確定工具目錄的名稱和路徑後進入目錄內,右鍵以管理員身份(Vista 以及更新版本)或直接以管理員登錄雙擊(XP/2003)運行
ServiceControl.bat
- 輸入
1
並回車,即選擇 “1:
Install service
” 安裝服務 - 批處理會將程序註冊系統服務,並進行 Windows 防火牆測試,每次開機服務都將自動啓動
- 此時 Windows 系統會詢問是否同意程序訪問網絡,請將 “專用網絡” 以及 “公用網絡” 都勾上並確認
至此,軟件端配置就完成了。
設置本地DNS服務器
下面就是把我們電腦的DNS服務器改成本機 127.0.0.1,這個很簡單。
打開 控制面板 \ 網絡和 Internet \ 網絡和共享中心 \ 更改適配器設置
右擊你的網卡,選擇 屬性 ,將 首選DNS服務器 改成 127.0.0.1
- 如果需要使用 IPv6 協議的本地服務器
- 右擊 “屬性” – “Internet協議版本6(IPv6)” – “屬性” – 勾選 “使用下面的 DNS 服務器地址”
- 在 “首選DNS服務器” 內填入 “
::1
“(不含引號) 確定保存並退出即可 - 請務必確保只填入這兩個地址,填入其它地址可能會導致系統選擇其它 DNS 服務器繞過程序的代理
- 注意:建議將 “本地連接” 和 “無線連接” 以及 “寬帶連接” 全部修改!
最後確定,保存就行了~
小白以上內容足夠使用 以下爲高階使用技巧
特別注意:
* 如需讓程序的流量通過系統路由級別的代理(例如 VPN 等)進行域名解析,請選擇其中一種方案,配置完成後重啓服務:
* Direct Request = IPv4
* Direct Request = IPv6
* Direct Request = IPv4 + IPv6
重啓服務方法(需要以管理員身份進行):
1.右鍵以管理員身份(Vista 以及更新版本)或直接以管理員登錄雙擊(XP/2003)運行 ServiceControl.bat
2.輸入 5
並回車,即選擇 “5: Restart service
” 立刻重啓服務
更新程序方法(需要以管理員身份進行,切勿直接覆蓋,否則可能會造成不可預料的錯誤):
- 提前下載好新版本的 Pcap_DNSProxy(亦即 安裝方法 中第2步),更新過程可能會造成域名解析短暫中斷
- 備份好所有配置文件
Hosts
文件IPFilter
文件的自定義內容 - 右鍵以管理員身份(Vista 以及更新版本)或直接以管理員登錄雙擊(XP/2003)運行 ServiceControl.bat
- 輸入
2
並回車,即選擇 “2:Uninstall service
” 卸載服務 - 將整個
Pcap_DNSProxy
程序的目錄刪除。注意 Windows 防火牆可能會留有允許程序訪問網絡的信息,卸載服務後又變更了程序的目錄則可能需要使用註冊表清理工具清理 - 將新版本的
Pcap_DNSProxy
解壓到任何位置(亦即 安裝方法 中第3步) - 將配置文件的自定義內容加回新版本配置文件裏相應的區域內
- 按照 安裝方法 中第4步重新部署
Pcap_DNSProxy
卸載方法(需要以管理員身份進行):
- 按照 安裝方法 中第6步還原 DNS 域名服務器地址配置
- 右鍵以管理員身份(Vista 以及更新版本)或直接以管理員登錄雙擊(XP/2003)運行
ServiceControl.bat
- * 輸入
2
並回車,即選擇 “2:Uninstall service
” 卸載服務 - * 注意:Windows 防火牆可能會留有允許程序訪問網絡的信息,故卸載後可能需要使用註冊表清理工具清理
- * 轉移工具目錄路徑需要重新安裝服務,先卸載服務轉移,轉移完成後重新安裝服務即可
正常工作查看方法:
- 打開命令提示符
* 在開始菜單或直接 Win + R
調出 運行 ,輸入cmd
並回車
* 開始菜單 – 程序/所有程序 – 附件 – 命令提示符
- 輸入
nslookup www.google.com
並回車 - 運行結果應類似:
>nslookup www.google.com
服務器: pcap-dnsproxy.server(視配置文件設置的值而定,參見下文 配置文件詳細參數說明 一節)
Address: 127.0.0.1(視所在網絡環境而定,本地監聽協議爲 IPv6 時爲 ::1)
非權威應答:
名稱: www.google.com
Addresses: ……(IP地址或地址列表)
更多說明
更多的內容,歡迎去Github上尋找:https://github.com/chengr28/Pcap_DNSProxy/blob/master/Documents/ReadMe.zh-Hans.txt