2011年1月26日星期三

[GFW BLOG(功夫网与翻墙)] 迎接6月8日!IPv6 VPS架设教程

作者:PS   来源:https://ps-blog.appspot.com/2011/01/4723.html

零、读前扫盲

一、综述

总所周知,IPv6是目前比较好的翻墙方法之一,那么如何让自己的VPS支持IPv6接入呢?

虽然你的VPS不支持IPv6,但是我们可以通过IPv6 Tunnel来解决,也就是平时说的IPv6 Over IPv4,可以理解成在IPv4上建立的IPv6的小管道。我们使用的是HE(Hurricane Electronics)提供的免费的IPv6 Tunnel Broker,HE拥有世界是最大的IPv6骨干网,在世界各地都有提供IPv6 Tunnel Broker的服务。

下面的教程中,我将使用CentOS系统。

二、检查

首先检查你的VPS是否有原生的IPv6地址:

ifconfig

如果返回信息中有

inet6 addr: 2001:470:c:c9c::2 Scope:Global

之类(红色部分可以不同)的,就说明你的VPS已经有原生的IPv6地址了,这样你就可以跳转到第四步了。

更进一步,在VPS上放一个PHProxy,通过它来访问http://test-ipv6.com/,如果能显示出刚才返回的IPv6地址,那么,恭喜你!甚至连你的服务器软件的配置都已经IPv6 Ready了,你需要做的只是更改DNS配置然后在这篇文章下面留言向后来的读者炫耀了!(这个方法到底行不行呢?……)

g

三、为VPS添加IPv6地址

1. 注册免费的HE IPv6 Tunnel Broker

注册地址:http://tunnelbroker.net/,点击“Register”即可注册,注册流程很简单,就不多讲了。

2. 添加Tunnel

点击左侧“Create Regular Tunnel”:

image

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

image

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

3. VPS上的设置

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

image

可以看到,HE给你分配了/64的IPv6地址,也就是你有2的64次方个地址,这辈子都用不完,哈哈。

如果你的VPS是Xen虚拟化……

在详细信息的下面,有一个设置你VPS的方法,点击“Show Config”就会出来设置方法:

image

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

image

如果你的VPS是OpenVZ虚拟化……

那就麻烦了。

好吧先登入SSH。

mkdir -p /dev/net
mknod /dev/net/tun c 10 200
chmod 600 /dev/net/tun
cat /dev/net/tun

如果返回

cat: /dev/net/tun: File descriptor in bad state(或:文件描述符错误)

那么,你就可以继续了。如果返回的是其他信息,请联系你的VPS提供商开通TUN设备。
命令(橙色部分需要你来修改,紫色部分不要丢到Shell里):

mkdir tb
cd tb
wget http://tb-tun.googlecode.com/files/tb-tun_r14.tar.gz
tar zxf tb-tun_r14.tar.gz
gcc tb_userspace.c -l pthread -o tb_userspace(如果你的VPS和我一样很不巧地没有gcc,请【yum install gcc】)
setsid ./tb_userspace tb [Server IPv4 address] > /dev/null
ifconfig tb up
ifconfig tb inet6 add [Client IPv6 address]
ifconfig tb mtu 1480
route -A inet6 add ::/0 dev tb
ip -6 route add default dev tb

完成以上步骤,ping一下ipv6.google.com

ping6 ipv6.google.com

如果返回

行啦,你的VPS也支持IPv6啦!

注意!由于tb设备不能随系统启动,每次VPS重启之后都要重新执行

cd tb
gcc tb_userspace.c -l pthread -o tb_userspace
setsid ./tb_userspace tb [Server IPv4 address] > /dev/null
ifconfig tb up
ifconfig tb inet6 add [Client IPv6 address]
ifconfig tb mtu 1480
route -A inet6 add ::/0 dev tb
ip -6 route add default dev tb

四、让你的网站IPv6 Ready

以nginx为例:
先看看你的nginx有没有编译ipv6模块:

/usr/local/nginx/sbin/nginx -V

如果返回信息中有–with-ipv6,那么nginx就带有ipv6模块了。

如果没有ipv6模块……(下列命令执行前请备份nginx)

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地址:

把/usr/local/nginx/conf/nginx.conf中

listen 80;

全部替换为

listen IPv4:80;

的形式,否则启动不了。再在你想支持IPv6的虚拟机里加一句

listen [ipv6]:80;

配置好之后,大体如下图所示:

server {
listen       69.197.183.149:80;
listen       [2001:470:c:c9c::2]:80;
server_name ps-blog.appspot.com;
……
}

如果你懒一点,把所有的listen都删掉,留下listen [::]:80;这样可以监听所有连到本机80端口的IPv4和IPv6信息:

server {
listen [::]:80;
server_name ps-blog.appspot.com;
……
}

安装配置完毕。停掉旧nginx,启动新编译的nginx:

killall nginx
/usr/local/nginx/sbin/nginx

如果你是用的是Apache……(这个我没用过耶……)

如果你用的是Apache,那么我强烈建议你不要按照我说的去做,因为我唯一接触过的Apache配置文件就是在以前所用的虚拟主机上的.htaccess……我强烈建议你参考这篇文章

按照传闻,在httpd.conf中加入

Listen [IPv6]:80

五、配置DNS

这个需要你的DNS支持AAAA记录,也就是IPv6记录。现在基本所有的域名注册商的DNS都支持了,如果不支持,你可以使用DNS.la的服务,是免费的,而且支持AAAA记录。

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

六、故障排除

出现故障/错误?在下面留言,我将尽力回答你的问题!

———————————————————————————————————————————

要翻墙? 请用赛风

推特用户请点击这里免翻墙上推特

请点击这里下载翻墙软件

更多翻墙方法请发电邮(最好用Gmail)到:fanqiang70ma@gmail.com

请阅读和关注中国数字时代、翻墙技术博客GFW BLOG(免翻墙)

请使用Google Reader订阅中国数字时代中文版(http://chinadigitaltimes.net/chinese/feed),阅读最有价值的中文信息;以及GFW BLOG(功夫网与翻墙)http://feeds2.feedburner.com/chinagfwblog,获取最新翻墙工具和翻墙技巧信息。




--
Posted By GFW BLOG 功夫网与翻墙 to GFW BLOG(功夫网与翻墙) at 1/26/2011 03:50:00 AM

--
1、我们的订阅地址:http://feeds2.feedburner.com/chinagfwblog。2、发一封标题为GFW的邮件到fanqiang70ma@gmail.com,就可获取翻墙利器赛风新地址。附《数字时代》赠阅版。3、本站热烈欢迎各位朋友投稿或推荐文章,请发邮件至chinagfwblog[at]gmail.com。
停止订阅,请发邮件到
gfw-blog+unsubscribe@googlegroups.com

1 条评论:

  1. chinanetblog管理员您好!我是PS'Blog(https://psblog.name)的管理员!
    https://ps-blog.appspot.com是我在appspot上设置的镜像,所以请把贵站上《迎接6月8日!IPv6 VPS架设教程》这篇文章的链接https://ps-blog.appspot.com/2011/01/4723.html改为https://psblog.name/2011/01/4723.html,谢谢!

    回复删除