你的网站“IPv6 Ready”了吗?

本文写给在用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”:

image

在“IPv4 endpoint”填入你VPS的IP地址,HE会根据你的浏览器的IP地址帮你选择服务器,但并不一定是最好的,你要根据你的VPS的地理位置,选择服务器的地址,我的是美国西部的VPS,于是我选择了Fremont, CA, US的服务器,点击“Override”可选择服务器。

image

再点击“Submit”,即可建立Tunnel成功。

4. VPS上的设置

回到HE IPv6 Tunnel Broker的首页,点击刚刚建立的Tunnel,会有这个Tunnel的详细信息:

image

可以看到,HE给你分配了/64的IPv6地址,也就是你有2的64次方个地址,这辈子都用不完,哈哈。在详细信息的下面,有一个设置你VPS的方法,点击“Show Config”就会出来设置方法:

image

把这些命令在你的VPS上执行下。测试下看设置成功没,ping6 he.net,如果跟下图差不多,就说明配置成功:

image

行啦,你的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的:

image

搞掂,等生效吧。生效之后,如果用户网络支持IPv6的话,就会访问IPv6地址。如果只有IPv4网络就会访问IPv4的地址啦!

7. 后记

原来以为只有Native的IPv6才能提供网络服务,我错了,走Tunnel的也可以。这下子VPS商支不支持IPv6无所谓了,我们可以自己解决,DIY万岁!

© 2010, kangzj. 版权所有.

Tags: , , , , ,
| 一月 22nd, 2010 | Posted in 服务器OS |

116 Responses to “你的网站“IPv6 Ready”了吗?”

  1. ShuaiGe.Me Says:

    沙发好软。。

    [回复]

    kangzj 回复:

    @ShuaiGe.Me, 吼吼~欢迎~

    [回复]

  2. 久酷 Says:

    稳定是前提,暂且不折腾,因为好多人上不了IPV6网

    [回复]

    kangzj 回复:

    @久酷, 不会怎么折腾的,很容易~嘻嘻~

    [回复]

  3. zhukun Says:

    用IPV6的主机有啥好处?

    [回复]

    kangzj 回复:

    @zhukun, 教育网可以免费访问。

    [回复]

  4. 蓝冰 Says:

    以后再折腾·!

    [回复]

    kangzj 回复:

    @蓝冰, 嗯哼~

    [回复]

  5. iCodex Says:

    监听[::]:80就可以了.

    [回复]

    kangzj 回复:

    @iCodex, 这可不好,一个一个监听比较好,还可以用IP访问~

    [回复]

  6. zwwooooo Says:

    没vps,围观

    [回复]

    kangzj 回复:

    @zwwooooo, 搞一个嘛~

    [回复]

    zwwooooo 回复:

    @kangzj, 钱的问题

    [回复]

    kangzj 回复:

    @zwwooooo, 一个月几十块钱,呵呵

    [回复]

  7. Eversiming Says:

    IPv4只有10%的可用了?

    :!:

    [回复]

    kangzj 回复:

    @Eversiming, 是啊,IPv6肯定会来的,早晚的问题

    [回复]

  8. Firm Says:

    呼呼,IPv6 和实名制可能会一起推出

    [回复]

    kangzj 回复:

    @Firm, 喀,不要吓我。。。

    [回复]

  9. hzlzh Says:

    ipv6 要等 忽如一夜春风来 的那一天,提前做好准备是最好啦

    [回复]

    kangzj 回复:

    @hzlzh, 主要是为教育网同学着想的,哈哈

    [回复]

  10. houkai Says:

    牛呀,好呀!此文很有用呀!解决了教育网不能访问国外网站的问题!现在vista以上都默认支持ipv6了,在win7下就可以直接在教育网访问我们的博客了 :wink:
    Pinging kangzj.net [2001:470:1f04:873::2] with 32 bytes of data:

    Reply from 2001:470:1f04:873::2: time=236ms
    Reply from 2001:470:1f04:873::2: time=231ms
    Reply from 2001:470:1f04:873::2: time=229ms
    Reply from 2001:470:1f04:873::2: time=235ms

    Ping statistics for 2001:470:1f04:873::2:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
    Approximate round trip times in milli-seconds:
    Minimum = 229ms, Maximum = 236ms, Average = 232ms

    [回复]

    kangzj 回复:

    @houkai, 嘻嘻,不客气

    [回复]

  11. Black-Xstar Says:

    Tunnel Broker我搞了好多次,每一次成功。
    你在burst vps搞的?

    [回复]

    kangzj 回复:

    @Black-Xstar, Diahosting的,Xen的,OpenVZ估计不大行

    [回复]

  12. sleepy Says:

    暂时收藏了再说,还用不到

    [回复]

    kangzj 回复:

    @sleepy, :lol:

    [回复]

  13. 阳光不锈 Says:

    等有了VPS再说吧。

    [回复]

    kangzj 回复:

    @阳光不锈, :mrgreen:

    [回复]

  14. 童宝宝 Says:

    学习了。。。。

    [回复]

    kangzj 回复:

    @童宝宝, 哈哈,常来

    [回复]

  15. XL Says:

    8-O 教育网都开始用ipv6了~

    [回复]

    kangzj 回复:

    @XL, 是啊,好多年了

    [回复]

  16. 万戈 Says:

    你搞的都比较高深,围观一下就好

    [回复]

    kangzj 回复:

    @万戈, 你搞的才高深,我也不懂,呵呵

    [回复]

  17. 我买糕的。 Says:

    纯IPV6访问图片和框架有问题 – -。
    所以还是一个反向代理来的好一些吧 – -

    [回复]

    kangzj 回复:

    @我买糕的。, 神马意思?不是纯IPv6,是双栈

    [回复]

  18. 吖Bee Says:

    VPS…我还没有这个大前提 :-?

    [回复]

    kangzj 回复:

    @吖Bee, 不贵 的哇,我其实也用不到~就是喜欢玩

    [回复]

  19. Hobo Says:

    我当初在学校的时候,学校是IPv6千兆接入,当时在IPv6的BT站上下载东西,全市10M以上一秒

    [回复]

    kangzj 回复:

    @Hobo, IPv6的BT相当过瘾,10M以上

    [回复]

  20. 美国VPS推荐 Says:

    前两天注册了一个Tunnel Broker还没弄~ :mrgreen:

    [回复]

    kangzj 回复:

    @美国VPS推荐, 挺好玩的,哈哈

    [回复]

  21. 叶松 Says:

    不错…

    [回复]

    kangzj 回复:

    @叶松, 谢谢

    [回复]

  22. 精辟网 Says:

    补补课。学习下。。

    [回复]

    kangzj 回复:

    @精辟网, 嘻嘻,欢迎常来

    [回复]

  23. tristan Says:

    师大的来顶顶

    今天IPV6是出问题了吗?六维都上不了啊。

    上面留言的同学竟然遇到认识的

    [回复]

    kangzj 回复:

    @tristan, 12同学嘛,呵呵;我的博客现在IPv6就可以上的,嘻嘻

    [回复]

  24. Zenoven自由人 Says:

    :-o 强大啊。。。IPV6不知道啥时候能普及。。。

    [回复]

    kangzj 回复:

    @Zenoven自由人, 十年之内吧,个人感觉,哈哈

    [回复]

  25. TaoGOGO Says:

    没有公网ip啊~呵呵

    [回复]

    kangzj 回复:

    @TaoGOGO, 等到IPv6时代,哼哼,给你2的几次方个

    [回复]

  26. Dianso Says:

    ipv6还很遥远

    [回复]

    kangzj 回复:

    @Dianso, 是还有段距离

    [回复]

  27. TaoGOGO Says:

    ipv6时代,每个人都有独立ip的话,idc都饿死了~每个人都容易受攻击,木马连做端口映射或中转服务器的活都不用干了~~ :-P

    [回复]

    kangzj 回复:

    @TaoGOGO, 那肉鸡更是一大批一大批的,哈哈

    [回复]

  28. 阅城 Says:

    不错呢,学习了~

    [回复]

    kangzj 回复:

    @阅城, 多谢关注

    [回复]

  29. 山东seo Says:

    有点麻烦~~~暂时还没有服务器
    真不知道到时候网络会是什么样子~

    [回复]

    kangzj 回复:

    @山东seo, 嗯,是啊,未知数

    [回复]

  30. 勇者审判 Says:

    想学习一下。

    [回复]

    kangzj 回复:

    @勇者审判, 嗯嗯

    [回复]

  31. 少杰 Says:

    你的博客没启用邮件通知插件吗?

    [回复]

    kangzj 回复:

    @少杰, 启用了啊

    [回复]

  32. 少杰 Says:

    没收到你的邮件通知啊。
    还有表情换一下吗。

    [回复]

  33. 少杰 Says:

    我和你用同样的主题。呵呵呵

    [回复]

  34. 少杰 Says:

    对了,你的时区是怎么搞定的啊。我的搞不定。呵呵呵呵很菜吧!

    [回复]

    kangzj 回复:

    @少杰, 直接在后台选项里可以设置

    [回复]

  35. 闫鹏 Says:

    整个ipv6在中国用有啥好处呢

    [回复]

    kangzj 回复:

    @闫鹏, 我是教育网,用着很爽

    [回复]

  36. 章鱼 Says:

    围观一下 等IP6普及了再说

    [回复]

    kangzj 回复:

    @章鱼, 嗯嗯

    [回复]

  37. 华晨 Says:

    ipv6好神奇,一点不明白和ipv4有什么区别。 :cry:

    [回复]

    kangzj 回复:

    @华晨, 可以这样理解,没有大区别,就是地址更多而已

    [回复]

  38. 久酷 Says:

    春节快乐哈…………久酷来拜年,哈哈

    [回复]

    kangzj 回复:

    @久酷, 过年好!

    [回复]

  39. TaoGOGO Says:

    kangzj新年快乐,O(∩_∩)O~

    [回复]

    kangzj 回复:

    @TaoGOGO, 过年好

    [回复]

  40. 阳光不锈 Says:

    呃,你的更新太慢了啊,过年没时间么?

    [回复]

    kangzj 回复:

    @阳光不锈, 回家没法上网

    [回复]

    阳光不锈 回复:

    @kangzj, 那你怎么回的留言啊?WAP?

    [回复]

    kangzj 回复:

    @阳光不锈, I’m Back!! :twisted:

    [回复]

    阳光不锈 回复:

    @kangzj, 《终结者6》就交给你了。

    [回复]

  41. 淘宝网首页 Says:

    纯技术帖,看不明白 :wink:

    [回复]

    kangzj 回复:

    @淘宝网首页, 如果想用,按着做就O了

    [回复]

  42. bolo Says:

    没钱玩VPS

    [回复]

    kangzj 回复:

    @bolo, 3.11我又有试用VPS发放哦:http://www.fatku.com

    [回复]

    bolo 回复:

    @kangzj, 能内定一个学习一下不?

    [回复]

  43. Zeddicus Says:

    试了下,nginx无法bind不知道啥问题

    [回复]

    kangzj 回复:

    @Zeddicus, 呃,不知道。。。提示说啥,就说无法bind?

    [回复]

  44. Zeddicus Says:

    提示说already in use,不过后来使用[::]:80解决了~貌似不能对特定IP的~

    [回复]

  45. 小c Says:

    用ipv6是不是不怕被墙了? :mrgreen:

    [回复]

  46. 大同 Says:

    国外的虚拟主机可以不?

    [回复]

  47. 6700 Says:

    # modprobe ipv6
    FATAL: Could not load /lib/modules/2.6.18-164.11.1.el5.028stab068.5/modules.dep: No such file or directory
    # ip tunnel add he-ipv6 mode sit remote 72.*.104.* local *.172.*.87 ttl 255
    ioctl: No such device
    # ip link set he-ipv6 up
    SIOCGIFFLAGS: No such device
    # ip addr add 2001:470:*:*::* dev he-ipv6
    Cannot find device “he-ipv6″
    # ip route add ::/0 dev he-ipv6
    Cannot find device “he-ipv6″
    # ip -f inet6 addr
    1: lo: mtu 16436
    inet6 ::1/128 scope host
    valid_lft forever preferred_lft forever

    麻烦问下这个问题到底是出在哪里…… OpenVZ的机子……

    [回复]

    Showfom 回复:

    @6700 上面的方法只适合Xen的 OpenVZ的方法在这里 https://ccp.li/?p=60

    [回复]

  48. Rayyn Says:

    杯具的BurstNet IPv6接入了。。但就是不能監聽[::]:80

    [回复]

  49. Jones Says:

    listen 216.45.55.20:80;
    listen [2001:470:1f04:873::2]:80;
    这样写nginx都启动不了,显示如下错误:
    [emerg]: bind() to [2001:470:c:7a1::2]:80 failed (98: Address already in use)
    不写下面那句就可以,但是虽然地址显示是ipv6,但是不连ipv4网络,还是访问不了!不知道怎么回事

    [回复]

  50. deardongdong Says:

    现在貌似不能用ipv6访问了?

    [回复]

    kangzj 回复:

    嗯,搬家多次了,呵呵

    [回复]

  51. mikj Says:

    ./configure –user=www –group=www –prefix=/usr/local/htp_stub_status_module –with-http_ssl_module –with-ipv6
    升级的时候出现错误
    ./configure: error: invalid option “–user=www”

    [回复]

    kangzj 回复:

    需要新建一个用户www

    [回复]

    kangzj 回复:

    还有,那个 – 应该换成英文的

    [回复]

  52. mikj Says:

    test -d ‘/usr/local/nginx/html’ || cp -r html ‘/usr/local/nginx’
    test -d ‘/usr/local/nginx/logs’ || mkdir -p ‘/usr/local/nginx/logs’
    make[1]: Leaving directory `/root/nginx-0.8.32′

    [回复]

  53. mikj Says:

    修改/usr/local/nginx/conf/nginx.conf.里面的listen 80 启动失败
    /usr/local/nginx/sbin/nginx
    [emerg]: bind() to [2001:470:1f04:109e::3]:80 failed (99: Cannot assign requested address)

    [回复]

    kangzj 回复:

    把所有的listen 80都改成listen IP:80 (IP就是Ipv4和IPv6地址,可以写多行的)

    [回复]

  54. mikj Says:

    nginx.conf文件里的都换了啊 还是这样 博主的 QQ多少 我的 270473446 请教

    [回复]

  55. 小付 Says:

    我去试试

    [回复]

  56. wanjie Says:

    哈哈,vps太好玩了,俺也有了原生 ipv6站点,以后慢慢玩 :wink:

    [回复]

  57. 未寒 Says:

    我的虚拟主机就不折腾了。。虽然俺电脑用的是IPV6

    [回复]

  58. 大眼夹 Says:

    似乎服务器重启以后就失效了,需要重新配置?

    [回复]

  59. LuDa Says:

    很麻烦。还需要重新编译 nginx 。还是先不玩儿了

    [回复]

  60. MengEgg Says:

    过年了再折腾VPS :(

    [回复]

  61. PS Says:

    博主你好!我用的是nginx,端口监听设置写成
    listen [::]:80;
    或者甚至只监听IPv6的80端口:
    listen [2404:6800:8005::62]:80;
    都会返回[emerg]: bind() to 0.0.0.0:80 failed (98: Address already in use)的错误信息!
    但是用(借用博主的IP来举例)
    listen 216.45.55.20:443;
    listen [2001:470:1f04:873::2]:443;
    却又能非常正常的同时监听IPv4和IPv6的443端口。能帮帮我吗?

    [回复]

  62. 水水 Says:

    越来越想接触下vps啦

    [回复]

  63. Magento小工 Says:

    刚在 burst买了vps, 正在折腾ipV6…

    [回复]

  64. baros博客 Says:

    似乎,Ipv4是快要用完了吗?

    [回复]

Leave a Reply