[黑科技]DNS隧道-繞過wifi熱點登陸免費上網

[黑科技]DNS隧道-繞過wifi熱點登陸免費上網

DNS隧道實現原理

常見的熱點都需要登錄才能夠上網,而提供熱點的ISP對熱點的DNS查詢服務並不作限制,這樣我們就可以在利用DNS查詢機制傳遞信息.

也就是說,如果我們的請求數據包中的數據,不含過濾規則時,有限制的ISP或者防火牆則不會進行丟包處理.
所以,我們在發起請求時,將請求數據包內容通過標準的DNS協議進行加密,標記解析請求的DNS地址,則有限制的ISP在解析客戶端發起的域名請求時,無法識別地址,而去指定的DNS服務器上進行請求查詢.此時,我們在指定的DNS服務器上進行數據包解密.
再將查詢內容返回.此時,有限制的ISP或者防火牆會再次檢測內容是否爲非認證狀態,如果是非認證狀態,則將查詢結果內容進行丟包處理.
所以,在特定的DNS服務器上,我們需要將結果進行標準DNS協議加密返回客戶端.此時ISP無法識別結果,而直接返回客戶端進行解密處理.這樣我們就完成了一次DNS隧道請求,而完全繞過的ISP服務商的認證.

建立DNS隧道的環境需求

  1. 可以連接有限制的ISP服務商,比如連接CMCC的無線信號
  2. 需要一臺擁有公網IP的服務器
  3. DNS隧道工具,用來提供客戶端,服務器通信加解密操作,以下總結幾個流行的工具
  4. 客戶端代理工具

實戰操作

本次配置的服務器環境爲centos:

[root@iZ28hcmbsi9Z ~]# cat /etc/issue
CentOS release 6.3 (Final)
Kernel \r on an \m

爲服務器添加A記錄和NS記錄

a.abc.xyz NS b.abc.xyz
b.abc.xyz A 1.2.3.4(填你的服務器IP,這裏用1.2.3.4爲例)

配置DNS工具服務端

這裏我們選用dns2tcp爲例
在服務器上安裝dns2tcp

wget http://www.hsc.fr/ressources/outils/dns2tcp/download/dns2tcp-0.5.2.tar.gz
tar zxf dns2tcp-0.5.2.tar.gz
cd dns2tcp-0.5.2
./configure
make
make install

在/etc目錄建立一個名爲dns2tcpd.conf的文件,然後輸入以下配置:

listen = 1.2.3.4(Linux服務器的IP)  
port = 53  
user = nobody  
chroot = /tmp  
domain = a.abc.xyz(上面配置NS記錄的域名)  
resources = ssh:127.0.0.1:22,socks:127.0.0.1:1082,http:127.0.0.1:3128 

最後的resources裏面配置的是dns2tcp供客戶端使用的資源。作用是:客戶端在本地監聽一個端口,並指定使用的資源,當有數據往端口傳送後,dns2tcp客戶端將數據用DNS協議傳動到服務器,然後服務器將數據轉發到對應的資源配置的端口中。

服務端執行如下命令啓動dns2tcp

dns2tcpd -f /etc/dns2tcpd.conf -F -d 2

參數意義:
-f 讀取配置文件
-F 強制前臺運行
-d 2 開啓debug,等級爲2

到此爲止,服務端配置完成

配置DNS工具客戶端

DNS2TCP的客戶端配置較爲簡單,一條命令就行:

dns2tcpc -r ssh -z a.abc.xyz 1.2.3.4 -l 8888 -d 2

-r 後接服務名稱,這裏我們用ssh
-z 後接NS記錄的網址,ip,注意IP地址最好寫上,可以不寫
-l 後接本地端口
-d 開啓debug

注意本地需要安裝dns2tcp工具,windows用戶請從網盤下載(http://pan.baidu.com/s/1c05APFE 密碼:rem5)

到此爲止,服務端配置完成
可以用ssh 測試一下

ssh [email protected]:8888

連通的話就說明dns2tcp成功了可以直接用ssh通道建立代理上網,chrome再用SwitchOmega接入,也可以在客戶端那寫http或socks服務,前提是服務器那要有對應服務(可以找Kingate架設HTTP和SOCKS代理的文章)
放上成果圖
結果圖

資源鏈接:
http://pan.baidu.com/s/1c05APFE 密碼:rem5
參考文檔:
http://www.houhongwei.xyz/shi-yong-dns2tcpmian-fei-shang-wang/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章