用VPS主机做网站,让你的网站也支持IPV6
本文写给在用vps的同学,即使你的vps提供商并不支持ipv6,你可以将你网站做成ipv6 ready!如果你的读者中的不少在教育网,做下这个就十分值得了,因为教育网没有国际连线,但是有免费的ipv6。如果你的vps服务商支持ipv6那你可以直接从第5步看起,如果不支持,那就请从头看起。目前只在diahosting的vps上实验成功(独立服务器当然也没有问题,至于个人电脑,必须有公网ip地址的才行;因为需要内核支持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骨干网,在世界各地都有提供ipv6 tunnel broker的服务。
2. 注册免费的he ipv6 tunnel broker
注册地址:http://tunnelbroker.net/,点击“register”即可注册,注册流程很简单,就不多讲了。
3. 添加tunnel
点击左侧“create regular tunnel”:
在“ipv4 endpoint”填入你vps的ip地址,he会根据你的浏览器的ip地址帮你选择服务器,但并不一定是最好的,你要根据你的vps的地理位置,选择服务器的地址,我的是美国西部的vps,于是我选择了fremont, ca, us的服务器,点击“override”可选择服务器。
再点击“submit”,即可建立tunnel成功。
4. vps上的设置
回到he ipv6 tunnel broker的首页,点击刚刚建立的tunnel,会有这个tunnel的详细信息:
可以看到,he给你分配了/64的ipv6地址,也就是你有2的64次方个地址,这辈子都用不完,哈哈。在详细信息的下面,有一个设置你vps的方法,点击“show config”就会出来设置方法:
把这些命令在你的vps上执行下。测试下看设置成功没,ping6 he.net,如果跟下图差不多,就说明配置成功:
行啦,你的vps也支持ipv6啦!
5. 让的网站ipv6 ready
做完这些还不行,还得让你的http服务器支持ipv6。apache 2.0版本开始支持ipv6,nginx从0.7.36之后开始支持ipv6。我们只讲nginx的配置方法,其他可以自己摸索。
我的vps上装的是lnmp一键安装包:http://lnmp.org/ ,下面讲解中安装路径就以lnmp中安装路径为准。
重新编译nginx使之支持ipv6。不详细说了,晒下命令,最关键的一句是“–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 |
在终端执行ifconfig,可以看到你的ipv6地址:
把你虚拟机配置文件中listen 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记录。现在基本所有的域名注册商的dns都支持了,如果不支持,你可以使用dnspod的服务,是免费的,而且支持aaaa记录。
我的是name.com的域名,本身就支持,就不麻烦了。加好之后,域名会有两条记录,一条a的,一条aaaa的:
搞掂,等生效吧。生效之后,如果用户网络支持ipv6的话,就会访问ipv6地址。如果只有ipv4网络就会访问ipv4的地址啦!
7. 后记
原来以为只有native的ipv6才能提供网络服务,我错了,走tunnel的也可以。这下子vps商支不支持ipv6无所谓了,我们可以自己解决,diy万岁!
原文地址:http://kangzj.net/is-your-web-ipv6-ready/
下一篇: 3DMAX怎么给物体设置多维子材质?