本文寫給在用VPS的同學,即使你的VPS提供商并不支持IPv6,你可以將你網(wǎng)站做成IPv6 Ready!如果你的讀者中的不少在教育網(wǎng),做下這個就十分值得了,因為教育網(wǎng)沒有國際連線,但是有免費的IPv6。如果你的VPS服務(wù)商支持IPv6那你可以直接從第5步看起,如果不支持,那就請從頭看起。目前只在Diahosting的VPS上實驗成功(獨立服務(wù)器當然也沒有問題,至于個人電腦,必須有公網(wǎng)IP地址的才行;因為需要內(nèi)核支持IPv6和tun/tap,所以可能部分Xen、OpenVZ的不支持)。準備好了嗎,Let’s begin!
1. 基本原理
雖然你的VPS不支持IPv6,但是我們可以通過IPv6 Tunnel來解決,也就是平時說的IPv6 Over IPv4,可以理解成在IPv4上建立的IPv6的小管道。我們使用的是HE(Hurricane Electronics)提供的免費的IPv6 Tunnel Broker,HE擁有世界是最大的IPv6骨干網(wǎng),在世界各地都有提供IPv6 Tunnel Broker的服務(wù)。
2. 注冊免費的HE IPv6 Tunnel Broker
注冊地址:http://tunnelbroker.net/,點擊“Register”即可注冊,注冊流程很簡單,就不多講了。
3. 添加Tunnel
點擊左側(cè)“Create Regular Tunnel”:
在“IPv4 endpoint”填入你VPS的IP地址,HE會根據(jù)你的瀏覽器的IP地址幫你選擇服務(wù)器,但并不一定是最好的,你要根據(jù)你的VPS的地理位置,選擇服務(wù)器的地址,我的是美國西部的VPS,于是我選擇了Fremont, CA, US的服務(wù)器,點擊“Override”可選擇服務(wù)器。
再點擊“Submit”,即可建立Tunnel成功。
4. VPS上的設(shè)置
回到HE IPv6 Tunnel Broker的首頁,點擊剛剛建立的Tunnel,會有這個Tunnel的詳細信息:
可以看到,HE給你分配了/64的IPv6地址,也就是你有2的64次方個地址,這輩子都用不完,哈哈。在詳細信息的下面,有一個設(shè)置你VPS的方法,點擊“Show Config”就會出來設(shè)置方法:
把這些命令在你的VPS上執(zhí)行下。測試下看設(shè)置成功沒,ping6 he.net,如果跟下圖差不多,就說明配置成功:
行啦,你的VPS也支持IPv6啦!
5. 讓的網(wǎng)站IPv6 Ready
做完這些還不行,還得讓你的HTTP服務(wù)器支持IPv6。Apache 2.0版本開始支持IPv6,Nginx從0.7.36之后開始支持IPv6。我們只講Nginx的配置方法,其他可以自己摸索。
我的VPS上裝的是lnmp一鍵安裝包:http://lnmp.org/ ,下面講解中安裝路徑就以lnmp中安裝路徑為準。
重新編譯Nginx使之支持IPv6。不詳細說了,曬下命令,最關(guān)鍵的一句是“–with-ipv6”:
wget http://nginx.org/download/nginx-0.8.32.tar.gz tar –xvzf nginx-0.8.32.tar.gz cd nginx-0.8.32 ./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-ipv6 make make install |
在終端執(zhí)行ifconfig,可以看到你的IPv6地址:
把你虛擬機配置文件中l(wèi)isten 80;全部替換為listen ip:80;的形式,否則啟動不了。再在你想支持IPv6的虛擬機里加一句listen [ipv6]:80,配置好之后,大體如下圖所示:
server { listen 216.45.55.20:80; listen [2001:470:1f04:873::2]:80; server_name kangzj.net; ……………… } |
安裝配置完畢。停掉舊nginx,啟動新編譯的nginx:
killall nginx /usr/local/nginx/sbin/nginx |
6. 增加IPv6地址的DNS AAAA記錄
這個需要你的DNS支持AAAA記錄,也就是IPv6記錄?,F(xiàn)在基本所有的域名注冊商的DNS都支持了,如果不支持,你可以使用dnspod的服務(wù),是免費的,而且支持AAAA記錄。
我的是Name.com的域名,本身就支持,就不麻煩了。加好之后,域名會有兩條記錄,一條A的,一條AAAA的:
搞掂,等生效吧。生效之后,如果用戶網(wǎng)絡(luò)支持IPv6的話,就會訪問IPv6地址。如果只有IPv4網(wǎng)絡(luò)就會訪問IPv4的地址啦!
7. 后記
原來以為只有Native的IPv6才能提供網(wǎng)絡(luò)服務(wù),我錯了,走Tunnel的也可以。這下子VPS商支不支持IPv6無所謂了,我們可以自己解決,DIY萬歲!
原文地址:http://kangzj.net/is-your-web-ipv6-ready/