DiaHostingVPS配置ipv6隧道笔记
本文主要参考了kangzj的《你的网站「IPv6 Ready」了吗?》一文,在他提供的步骤上做了一点改进,在diaHosting的VPS上试验成功。
本文假设你已经会常用的SSH操作(新手推荐使用WinSCP)。
步骤:
注册免费的HE IPv6 Tunnel Broker.
注册地址:http://tunnelbroker.net/,点击 Register 即可注册。添加Tunnel
点击左侧 Create Regular Tunnel:
在 IPv4 endpoint 填入你 VPS 的 IP 地址,HE会根据你的浏览器的IP地址帮你选择服务器,但并不一定是最好的,你要根据你的VPS的地理位置,选择服务器的地址,我购买的是Los Angel的VPS,于是我选择了Los Angel, CA, US的服务器,点击「Override」可选择服务器。
再点击「Submit」,即可建立Tunnel。VPS上的设置
回到HE IPv6 Tunnel Broker的首页,点击刚刚建立的Tunnel,会有这个Tunnel的详细信息:
可以看到,HE给你分配了/64的IPv6地址,也就是你有2的64次方个地址,这辈子都用不完,哈哈。在详细信息的下面,有一个设置你VPS的方法,点击「Show Config」就会出来设置方法:1
2
3
4
5
6modprobe ipv6
ip tunnel add he-ipv6 mode sit remote 66.220.18.42 local xxx.xxx.xxx.xxx ttl 255
ip link set he-ipv6 up
ip addr add 2001:470:c:662::2/64 dev he-ipv6
ip route add ::/0 dev he-ipv6
ip -f inet6 addrhe默认添加形如
2001:db8:aaaa:aaaa::2/64
地址 你也可以添加更多的地址,如要添加2001:470:c:662::3/64
只需增加一行命令1
ip addr add 2001:470:c:662::3/64 dev he-ipv6
服务器程序设置
a. Apache (如果你用的diaHosting的默认带Kloxo面板设置,那么服务器是Lighttpd,请在Kloxo面板中找到程序切换,将Lighttpd切换成Apache)
i. 修改配置
默认装机的Apache版本已经支持ipv6,只需要修改httpd.conf文件即可。打开 /etc/httpd/conf/httpd.conf
,查找 Listen 80;
,在后面增加一句Listen [::]:80;
;相应地在文件末尾找到<virtualhost>;
一节,修改为<virtualhost *:80>;
。其余 uncomment 并按照你的站点的配置修改即可。
ii. 测试配置
1 | /usr/local/bin/apachectl -configtest |
iii. 如果没有报错,重启apache即可
1 | service httpd restart |
b. nginx
i. 运行 /usr/local/nginx/sbin/nginx -V
观察一下有没有 --with-ipv6
, 一般是没有的,此时需要重新下载并编译nginx:
1 | wget http://nginx.org/download/nginx-0.8.50.tar.gz |
ii. 修改nginx配置
进入/usr/local/nginx/conf/nginx.conf
,搜索Listen 80;
, 在后面增加一句
1 | Listen [::]:80 default ipv6only=on; |
上面一句是我和kangzj教程最大的不同的地方,用kangzj的方法,在多站点配置中会导致问题。如果你还有SSL server块,同样,搜索 Listen 443;
,在后面增加一句,注意ipv6only=on
中不能加空格
1 | Listen [::]:443 default ipv6only=on; |
这样,SSL也可以运行在ipv6环境下了。
注意,如果你的VPS上设置了多个站点,请务必保证其余站点的Listen配置与之相同,最好不要改成 Listen ip:80;
形式,否则容易冲突,各站点如果不同IP请在DNS处调节。
iii. 停掉目前的nginx,启用新编译的nginx:
1 | killall -g nginx |
参数g在你开启了nginx多进程时是必要的。
- DNS设置
在你的域名DNS处增加AAAA Record即可,目前主流的DNS都已经支持ipv6(如he,DNSPod等)