基於常規DNS隧道進行的tcp端口轉發dns2tcp的使用


0x01 安裝Dns2TCP

 

dns2tcp 是一個利用DNS隧道轉發TCP連接的工具,使用C語言開發。

 

sudo apt-get install dns2tcp

 

 

 

0x02配置dns2tcp

 

配置DNS2TCP服務端

首先,將你的某個域名(這里以creke.net為例)開個二級域名a.creke.net,類型為NS,NS記錄指向b.creke.net。然后將b.creke.net建立A記錄指向你的Linux服務器IP(這里以1.2.3.4為例)。如下表所示。

a.creke.net NS b.creke.net

b.creke.net A 1.2.3.4

 

 

 

 

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

listen = 1.2.3.4(Linux服務器的IP) 
port = 53 
user = nobody 
chroot = /var/empty/dns2tcp/ 
domain = a.creke.net(上面配置NS記錄的域名) 
resources = ssh:127.0.0.1:22,socks:127.0.0.1:1082,http:127.0.0.1:8082

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

好了,DNS2TCP的服務端配置到此完畢。接下來就是要慢慢等待域名記錄的生效了。

 

 

 

 

0x03啟動與關閉DNS2TCP服務端

以下命令用於啟動DNS2TCP的服務端:

dns2tcpd -f /etc/dns2tcpd.conf

 

以下命令用於關閉DNS2TCP的服務端:

killall dns2tcpd

 

 

 

啟動DNS2TCP客戶端

這里再次提醒,要等待a.creke.net的NS記錄生效后,才能夠繼續正常使用客戶端。查詢是否生效可以使用從各個在線網站查詢。

 

啟動DNS2TCP客戶端的命令如下;

dns2tcpc -c -d 1 -l 8118 -r http -z a.creke.net

 

 

其中:-c表示啟用數據壓縮;-d表示啟動調試,1為調試等級;-l表示監聽本地端口,8118為端口名;-r為使用服務端上的哪個資源,http為資源名;-z后的a.creke.net為前面配置的NS記錄的域名。

然后就可以通過將瀏覽器的代理服務器地址設為127.0.0.1:8118,代理類型為HTTP代理,來通過DNS隧道上網了。

如果要使用SOCKS代理,則為:

dns2tcpc -c -d 1 -l 7070 -r socks -z a.creke.net

以上是通過系統DNS來發送DNS請求的,如果要通過某個DNS服務器,如87.65.43.21來發送DNS請求,則為:

dns2tcpc -c -d 1 -l 8118 -r http -z a.creke.net 87.65.43.21

這里要注意,需要首先在Linux服務器配置好HTTP代理或者SOCKS代理。才能利用DNS隧道轉發數據包來實現代理。具體可以參考如何使用KingateHTTP代理和SOCKS代理。

 

就是這樣,采用DNS2TCP搭建了DNS隧道,慢慢折騰吧!

 

 

 

 


免責聲明!

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



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