簡介 :
常見的內(nèi)網(wǎng)環(huán)境中 , 防火墻可能會限制只允許 udp 53 端口出站
這樣就可以利用 DNS 查詢流量來封裝 TCP 流量 , 達(dá)到繞過防火墻的目的
例如 :
CMCC / 機(jī)場 / 火車站 等需要認(rèn)證才可以鏈接互聯(lián)網(wǎng)的網(wǎng)絡(luò)環(huán)境
準(zhǔn)備 :
1. 一臺公網(wǎng)VPS
2. 一個可控域名
方法一 (dns2tcp)
Client
dns2tcpc -z dns.domain.com -d 2 -k password -l 4444 -r ssh
-d Debug level
-k 密碼
-l 本地監(jiān)聽端口
-r 請求的資源
-z 指定可控的域名
Server
==================================
listen = 0.0.0.0
port = 53
# If you change this value, also change the USER variable in /etc/default/dns2tcpd
user = nobody
key = password
chroot = /tmp
domain = dns.domain.com
resources = ssh:127.0.0.1:22
==================================
dns2tcpd -F -d 1 -f /etc/dns2tcpd.conf
Domain
1. 新建一條 A 記錄例如 ns1 , 指向之后要作為 DNS 服務(wù)器的 VPS (8.8.8.8)
記錄類型 A , 記錄值 ns1 , 指向 8.8.8.8
2. 新建一條 NS 記錄
記錄類型 NS , 記錄值 dns , 指向 ns1.domain.com
Screen shot cut

image.png

Screenshot from 2017-07-23 23-10-28.png
方法二 : (iodine)
特點(diǎn) :
1. 直接在本地和服務(wù)器分別模擬出兩張?zhí)摂M網(wǎng)卡 , 直接通過虛擬網(wǎng)卡通信
2. 下行流量不加密 , 效率更高
Server
iodined -c -f -D 10.0.0.1 dns.domain.com
-c 啟用壓縮
-f 前端運(yùn)行
-D debug 模式
Client :
iodine -f dns.domain.com
Domain
同方法一
參考資料 :
http://www.adeptus-mechanicus.com/codex/dnstun/dnstun.php
http://code.kryo.se/iodine/README.html
http://www.hsc.fr/ressources/outils/dns2tcp/