You are here: Home > 技術…… > 某些DNS菊花一緊……

某些DNS菊花一緊……

那天看到云風的一篇博客《DNS 隧道》,一笑而過,收藏下來,打算有空試下。後來一直很忙,這事也就擱下不了了之了。

後來我發現中國移動送每個月20M的wifi,一直到年底,於是我每到一個地方就搜有沒有中國移動的wifi。中秋那幾天在MM宿舍裏面,習慣性打開wifi看看,沒有發現中國移動的,發現中國聯通的,而且沒有加密。連上去后發現不管上哪個網址都是自動跳轉到聯通的用戶密碼頁面,於是我就想起了這DNS隧道,開個終端ping了幾個網址,發現DNS是能正確解析的,這下還真有了實用價值- -b。好吧,如果中國聯通的DNS有感覺的話,現在肯定菊花一緊,背後涼颼颼的……

云風那篇博客只講了原理,沒有講實現方法,提到還有iodine這麽一個東西。我進去看了看,裏面有個連接“HowToSetup”,這篇文章底下還有個連接“Guide for debian server and win32 client”,這篇文章就詳細多了。後來我還發現這篇文章底下的評論還有中文,帶了一個連接,進去看看,果然是一個中國人寫的設置方法。於是我就對照著看……

首先註冊域名,搞一個A紀錄,然後再搞一個NS紀錄。這很簡單。我註冊了一個免費的.co.cc的域名,因爲我不想隨便亂用我的netson-cn.net。

然後往服務器的安裝源列表/etc/apt/sources.list文件裏面加一個源:deb http://ftp.debian.org/debian sid main

然後就是安裝iodine了:

1
2
#apt-get update
#apt-get -t natty install iodine

裝完之後把新加的源去掉,畢竟sid的源還是少用為妙。

然後就可以跑了:

1
iodined -c -f 10.0.0.1 -P yourpasswordhere iodine.yourdomain.com

其中,10.0.0.1可以隨便換一個内網IP,我架的VPN好像用的是這個IP,所以我實際上換了個172開頭的,中間兩個數都不是0的IP。yourpasswordhere隨便搞一個字符串儅密碼,iodine.yourdomain.com填剛剛設置的域名NS紀錄。

跑起來有可能會說找不到tun設備,那就建立一個好了:

1
2
mkdir /dev/net
mknod /dev/net/tun c 10 200

運行的結果應該是類似這樣的:

1
2
3
4
5
Opened dns0
Setting IP of dns0 to 内網IP
Setting MTU of dns0 to 1130
Opened UDP socket
Listening to dns for domain 域名NS紀錄

這樣子就OK了。可以搞客戶端了。

Windows客戶端要兩個軟件,一個是OpenVpn,只需要裝其中的“TAP Virtual Ethernet Adapter”,別的不需要。另外就是iodine的客戶端程序了,在這裡可以下載。

iodine的客戶端程序解壓就可以用,不用安裝。進入命令行提示符(如果是Win7要以管理員身份運行),然後到解壓后的文件夾的bin目錄底下運行:

1
iodine -f -P 剛才設置的密碼 VPS公網IP 域名NS紀錄

然後開一個新的命令行窗口應該就能ping通服務器那個内網地址了。然後SSH也可以,VPN也可以,socket5也可以……怎麽搞都行啦。

下一步就是看看客戶端是Linux的話要怎麽搞,爭取在我的手機上也能跑起來:D。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注