Centos7下dnscrypt-proxy安裝


  DNS劫持指的是“一些設備”會攔截DNS解析請求,並將錯誤的DNS信息返回給主機;DNS污染指的是“一些設備”會將錯誤的域名信息下發至公共的DNS服務器中(比如114),這樣用戶在進行DNS查詢的時候將會得到錯誤的IP信息。針對這兩個問題,可通過搭建基於TCP且加密的DNS代理服務器來解決。 

1、安裝依賴包libsodium

wget https://download.libsodium.org/libsodium/releases/libsodium-1.0.10.tar.gz
tar -xvzf libsodium-1.0.10.tar.gz 
cd libsodium-1.0.10/
CFLAGS="-O3 -fPIC" ./configure
make && make install
echo /usr/local/lib > /etc/ld.so.conf.d/usr_local_lib.conf
sudo ldconfig

2、安裝dnscrypt-proxy

wget https://download.dnscrypt.org/dnscrypt-proxy/dnscrypt-proxy-1.7.0.tar.gz
tar -xvzf dnscrypt-proxy-1.7.0.tar.gz 
cd dnscrypt-proxy-1.7.0/src/libevent-modified/
CFLAGS="-O3 -fPIC" ./configure
make && make install
cd ../..
echo /usr/local/lib > /etc/ld.so.conf.d/usr_local_lib.conf
sudo ldconfig
./configure 
make -j 2 && make install

3、運行並加入開機自啟動

[root@localhost ~]# /usr/local/sbin/dnscrypt-proxy -R yandex -E --local-address=0.0.0.0 -d
[root@localhost ~]#  vi /etc/rc.d/rc.local
#添加如下一行
/usr/local/sbin/dnscrypt-proxy -R yandex -E --local-address=0.0.0.0 -d
[root@localhost ~]#  chmod +x /etc/rc.d/rc.local

  /usr/local/share/dnscrypt-proxy/dnscrypt-resolvers.csv中存放了已經支持dnscrypt查詢的公共dns,上邊表達式中的“-R yandex”代表的是這個文檔中第一列的name。

4、驗證

  由以下運行結果可以看到,在解析facebook.com這個網址時,本機上的dnscrypt-proxy能夠解析正確,而114和8.8解析出來的都是被牆篡改過的IP。

[root@localhost ~]# dig facebook.com +short @114.114.114.114
93.46.8.89
[root@localhost ~]# dig facebook.com +short @8.8.8.8
93.46.8.89
[root@localhost ~]# dig facebook.com +short @8.8.8.8
78.16.49.15
[root@localhost ~]# dig facebook.com +short @127.0.0.1
157.240.3.35
[root@localhost ~]# dig facebook.com +short @127.0.0.1
157.240.3.35

 

  如果想用這個DNS代理的話,只需要將系統的DNS服務器配置為該服務器即可(該服務器上需要開放 UDP:53端口)。當然,以上只解決了DNS解析的問題,“一些設備”還有IP封鎖等等機制來過濾相應網站。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM