本文方案不適用於須要和PSW聯用的場景,如須要與PSW共同使用,請見 https://www.cnblogs.com/zlAurora/p/12501185.html
有沒有經歷過這種狀況:
-
300M寬帶,訪問網站老是反應遲鈍,感受不流暢
-
一些網站好比github,常常抽風沒法訪問
-
網頁莫名其妙彈出各類廣告,網站頁面貼滿牛皮癬
出現這種狀況,極有多是DNS惹的禍:
-
使用寬帶運營商DNS,返回了一個當前線路訪問速度不佳的IP,致使訪問緩慢
-
DNS請求被污染,返回錯誤IP致使某些站點沒法訪問
-
DNS請求被污染,致使某些正常站點頁面被嵌入廣告,頁面佈滿牛皮蘚
本文介紹一種基於OpenWrt的方案,實現DNS 去AD + 抗污染 + 速度優選 ,全面提高上網體驗。
![](http://static.javashuo.com/static/loading.gif)
![](http://static.javashuo.com/static/loading.gif)
在OpenWrt中搭建3級DNS,組成DNS鏈,第一級去廣告,第二級抗污染,第三級進行速度優選。
第一級:AdGuardHome,做爲LAN主DNS,監聽192.168.1.1 53端口,上游指向第二級DNS。AdGuardHome是一個商業公司的開源軟件,質量有保證,具有中文界面,配置簡單,能夠過濾絕常見的頁面牛皮癬廣告,視頻站點廣告。
第二級:chinadns-ng,做爲一級DNS上游,經過GFW及China地址列表,實現國內站點國內解析,國外站點國外解析,同一個站點的IP,會經過國內及可信DNS進行對比,必定程度上剔除被污染IP。監聽路由器127.0.0.1 53端口,國內DNS上游指向第三級DNS國內組,可信DNS指向第三級DNS海外組。
第三級:smartdns,對於一個站點的請求,smartdns經過併發查詢多個dns,對返回地址進行測速,返回最快的一個,實現站點速度優選。咱們利用smartdns建立兩個組,第一組(也是默認組)添加國內知名DNS,第二組,命名海外組,指向Google,CloudFlare,Quad9。
爲了不海外組污染,所有使用DOH或者DOT協議(不使用53端口UDP)。第一組監聽路由器6053端口,第二組監聽路由器7053端口。
經過三級DNS組合,實現了去AD + 抗污染 + 速度優選,頁面響應速度提高明顯,抽風現象大幅減輕,頁面牛皮蘚也一掃而空。
接下來是配置方法,能夠自行搜索安裝這三個軟件,也可使用集成好的ROM。
集成好的ROM下載: 連接: https://pan.baidu.com/s/1jC72UeGwrFgKTDHFbvt5Dg 提取碼:mvre ROM說明: https://www.cnblogs.com/zlAurora/articles/12433225.html
接下來,以LAN 192.168.1.0/24網段,路由器爲192.168.1.1爲例介紹,若是修改LAN IP段,請自行調整IP。
1 關閉dnsmasq的DNS服務。
網絡->HTTP/DNS中找到「高級設置」,將「
DNS 服務器端口」設置爲0,點擊右下角「保存&應用」。
2 關閉防火牆自定義轉發53端口規則。以下圖,自定義規則中後兩行註釋(每行前加#)。右下角,點擊「重啓防火牆」。
![](http://static.javashuo.com/static/loading.gif)
![](http://static.javashuo.com/static/loading.gif)
3 按照下面配置 /etc/config/smartdns
config smartdnsoption server_name 'smartdns'option port '6053'option tcp_server '1'option dualstack_ip_selection '0'option prefetch_domain '0'option rr_ttl_min '300'option server_group 'mainland'option seconddns_port '7053'option seconddns_tcp_server '1'option seconddns_no_speed_check '0'option seconddns_no_rule_addr '0'option seconddns_no_rule_nameserver '0'option seconddns_no_rule_ipset '0'option seconddns_no_rule_soa '0'option seconddns_no_cache '0'option coredump '0'option seconddns_enabled '1'option seconddns_server_group 'overseas'option seconddns_no_dualstack_selection '1'option ipv6_server '0'option rr_ttl_max '600'option redirect 'none'option cache_size '4096'option enabled '1'list old_redirect 'none'list old_port '6053'list old_enabled '1'config serveroption name 'Google DNS #1'option server_group 'overseas'option blacklist_ip '0'option type 'https'option ip ' https://dns.google/dns-query'option enabled '0'option addition_arg '-exclude-default-group'config serveroption enabled '1'option name 'CloudFlare #1'option type 'https'option server_group 'overseas'option blacklist_ip '0'option ip ' https://cloudflare-dns.com/dns-query'option addition_arg '-exclude-default-group'config serveroption enabled '1'option name 'Quad9 #1'option type 'https'option ip ' https://dns.quad9.net/dns-query'option server_group 'overseas'option blacklist_ip '0'option addition_arg '-exclude-default-group'config serveroption enabled '1'option type 'udp'option name 'OpenDNS #1'option ip '208.67.222.222'option server_group 'overseas'option blacklist_ip '0'option addition_arg '-exclude-default-group'config serveroption enabled '1'option type 'udp'option name 'QINGHUA #1'option ip '166.111.8.28'option server_group 'mainland'option blacklist_ip '0'config serveroption enabled '1'option type 'udp'option name 'USTC #1'option ip '202.141.160.95'option server_group 'mainland'option blacklist_ip '0'config serveroption enabled '1'option type 'udp'option name 'LN_UNICOM #1'option ip '202.96.69.38'option server_group 'mainland'option blacklist_ip '0'config serveroption enabled '1'option type 'udp'option name '114DNS #1'option ip '114.114.114.114'option server_group 'mainland'option blacklist_ip '0'config serveroption enabled '1'option type 'udp'option name 'DNSPOD#1'option ip '119.29.29.29'option server_group 'mainland'option blacklist_ip '0'config serveroption enabled '1'option type 'udp'option name 'BAIDU'option ip '180.76.76.76'option server_group 'mainland'option blacklist_ip '0'config serveroption enabled '1'option type 'udp'option name 'ALI#1'option ip '223.5.5.5'option server_group 'mainland'option blacklist_ip '0'config serveroption enabled '1'option name 'Google DNS #1 TLS'option port '853'option type 'tls'option server_group 'overseas'option blacklist_ip '0'option ip '8.8.8.8'option addition_arg '-exclude-default-group'config serveroption enabled '1'option name 'Quad9 #2 TLS'option ip '149.112.112.112'option port '853'option type 'tls'option server_group 'overseas'option blacklist_ip '0'option addition_arg '-exclude-default-group'
4 按照下面配置 /etc/config/chinadns-ng
config chinadns-ngoption enable '1'option bind_addr '0.0.0.0'option bind_port '5053'option china_dns '127.0.0.1#6053'option trust_dns '127.0.0.1#7053'option ipset_name_4 'chnroute'option ipset_name_6 'chnroute6'option gfwlist_file '/etc/chinadns-ng/gfwlist.txt'option chnlist_file '/etc/chinadns-ng/chinalist.txt'option timeout_sec '3'option repeat_times '1'option chnlist_first '0'option fair_mode '0'option reuse_port '1'option noip_as_chnip '0'
5 啓動AdHomeGuard
![](http://static.javashuo.com/static/loading.gif)
![](http://static.javashuo.com/static/loading.gif)
界面上勾選「啓用廣告屏蔽」,點擊右下角「保存&應用」。
6 重啓路由器。
7 配置AdGuardHome。使用
http://192.168.1.1:3000打開配置頁面。
AdGuardHome用戶名root密碼root
8 更新AdGuardHome的過濾器。按圖下勾選,點擊檢查更新。確認過濾規則已經成功加載。
![](http://static.javashuo.com/static/loading.gif)
![](http://static.javashuo.com/static/loading.gif)
9 更改DHCP設置。
在「網絡」->「接口」中,找到「LAN」。
在頁面最下方「DHCP 服務器」的「高級設置」,在「DHCP選項」中輸入「6,192.168.1.1」。
![](http://static.javashuo.com/static/loading.gif)
![](http://static.javashuo.com/static/loading.gif)
點擊右下角「保存&應用」。
至此,所有配置完成。看看效果:
開啓AD過濾前,
![](http://static.javashuo.com/static/loading.gif)
![](http://static.javashuo.com/static/loading.gif)
開啓AD過濾後,
![](http://static.javashuo.com/static/loading.gif)
![](http://static.javashuo.com/static/loading.gif)
是否是久違的乾淨頁面又回來了?
PS:還能夠試試視頻網站,視頻前插播的大多數的AD已經沒了:)