Centos 7配置tunnelbroker隧道支持IPv6访问
随着Ipv4地址的枯竭,越来越多的地区开始普及IPv6网络,但是国内目前也只有教育网对IPv6支持较好。国内较大的云服务提供商阿里云、腾讯云、百度云都还不支持IPv6网络,目前了解仅有景安网络支持IPv6访问。
如果你的服务器或者站点有IPv6的访问需求,可以通过使用Hurricane Electric(HE)提供的Free IPv6 Tunnel Broker,是你的服务器或者站点支持IPv6访问,本文以阿里云Centos 7为例进行配置HE隧道使服务器支持IPv6访问介绍:
一、注册并创建IPv6隧道
1、访问https://www.tunnelbroker.net/,并注册账号 (需要邮箱验证);
2、点击Create Regular Tunnel,创建IPv6隧道;
3、在IPv4 Endpoint (Your side)处填上阿里云ECS的IPv4 地址(需能ping通);
4、在Available Tunnel Servers中选择隧道服务器,一旦选择再想更改有少许操作(如果你面向海外用户,可以选择更接近目标用户的地区或ping服务器地址,一般选择延时最小的稳定性比较好的)
5、点击Create Tunnel后,通道就创建完成了
二、配置ECS支持IPv6
1、通过SSH登陆ECS Centos 7,并编辑/etc/sysctl.conf文件:
vi /etc/sysctl.conf
将其中三条禁用IPv6的设置做如下更改。
net.ipv6.conf.all.disable_ipv6 = 0
net.ipv6.conf.default.disable_ipv6 = 0
net.ipv6.conf.lo.disable_ipv6 = 0
2、运行sysctl -p命令,启用IPv6
sysctl -p
3、登陆Tunnel Broker,找到上一步创建好的IPv6隧道,进入Example Configurations选项卡,选择Linux-route2的配置方法,复制生成的示例配置。(如果是“专有网络”,需要将HE配置隧道地址命令中的IPv4地址修改为ECS实例的内网地址,如下图所示,如果你阿里云Centos 7使用的是“专用网络”,请将第二行中的121.42.186.135修改为你服务器的内网地址)
4、通过SSH登陆ECS Centos 7,执行上面复制的Linux-route2示例配置。
modprobe ipv6
ip tunnel add he-ipv6 mode sit remote 66.220.7.82 local 121.42.186.134 ttl 255
ip link set he-ipv6 up
ip addr add 2001:470:1f18:583::2/64 dev he-ipv6
ip route add ::/0 dev he-ipv6
ip -f inet6 addr
5、添加IPv6 DNS解析服务器,在/etc/resolv.conf最后添加nameserver 2001:4860:4860::8888,nameserver 2001:4860:4860::8844谷歌的ipv6 dns服务器
# vi /etc/resolv.conf
nameserver x.x.x.x
nameserver x.x.x.x
nameserver 2001:4860:4860::8888
nameserver 2001:4860:4860::8844
6、通过ifconfig查看服务器Ipv6地址
# ifconfig he-ipv6
he-ipv6: flags=209<up,pointopoint,running,noarp> mtu 1480</up,pointopoint,running,noarp>
inet6 2001:470:1f18:583::2 prefixlen 64 scopeid 0x0
inet6 fe80::792a:b982 prefixlen 128 scopeid 0x20
sit txqueuelen 0 (IPv6-in-IPv4)
RX packets 66 bytes 24184 (23.6 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 63 bytes 15769 (15.3 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
三、配置网站支持IPv6
1、配置Nginx站点使其监听 IPv6 端口
server {
listen 80; // 监听 IPv4 的 80 端口
listen [::]:80; // 监听 IPv6 的 80 端口
}
server {
listen 443 ssl http2; // 监听 IPv4 的 443 端口
listen [::]:443 ssl http2; // 监听 IPv6 的 443 端口
}
2、为网站域名添加AAAA解析,值填 HE 里的Client IPv6 Address,,去掉最后的/64 即可。如2001:470:1f18:583::2。
查看站点是否支持IPv6访问,测试网址:测试地址:http://ipv6-test.com/validate.php ,如下图所示即表示站点已支持IPv6访问。
最后一步就是自动挂载你的IPV6
然后我们将命令写入开机自启
vim /etc/init.d/network
在"touch /var/lock/subsys/network"之前添加好上面网页中所给的挂载命令
你的IPv6地址则为Client IPv6 Address,如果你只是想普通使用,那么你去掉后面的/64就可以正常使用啦,如2001:470:18:1278::2
如果你想要在Nginx等服务商启用IPv6支持,你可能需要参阅程序的相关文档进行操作