阿里云ecs开启ipv6支持(详细教程)
ipv6模块
1、修改/etc/modprobe.d/disable_ipv6.conf文件
vim /etc/modprobe.d/disable_ipv6.conf
修改前
alias net-pf-10 off
options ipv6 disable=1
修改后
alias net-pf-10 off
options ipv6 disable=0
2、修改/etc/sysconfig/network
vim /etc/sysconfig/network
修改前
NETWORKING=yes
HOSTNAME=coolnull
NETWORKING_IPV6=no
PEERNTP=no
GATEWAY=*.*.*.*
修改后
NETWORKING=yes
HOSTNAME=coolnull
NETWORKING_IPV6=yes
PEERNTP=no
GATEWAY=*.*.*.*
3、修改/etc/sysctl.conf
vim /etc/sysctl.conf
修改前
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
修改后
net.ipv6.conf.all.disable_ipv6 = 0
net.ipv6.conf.default.disable_ipv6 = 0
net.ipv6.conf.lo.disable_ipv6 = 0
4、创建系统在启动时自动加载 IPv6 模块的脚本
创建脚本
vim /etc/sysconfig/modules/ipv6.modules
脚本内容
!/bin/sh
if [ ! -c /proc/net/if_inet6 ] ; then
exec /sbin/insmod /lib/modules/uname -r/kernel/net/ipv6/ipv6.ko
fi
5、重启服务器,检查内核是否已经支持ipv6
sysctl -a | grep ipv6 | grep disable
运行以上命令,查看有无回显,若有回显说明内核已经支持ipv6
若没有回显,重启服务器,使内核生效
6、开启内核参数支持ipv6
sysctl -w net.ipv6.conf.all.disable_ipv6=0
再次运行sysctl -a | grep ipv6 | grep disable
若参数全部为0,则说明ipv6已经全部支持
7、至此ipv6的服务器端支持已经完成,重启服务器测试是否支持ipv6,重启后
lsmod | grep ipv6
有输出就代表开启成功
ifconfig | grep -i inet6
申请ipv6地址
1、进入tunnel官网申请一个账号,链接如下
2、选择 Create Regular Tunnel 创建一个到自己公网 IP 的通道。
3、到此可能会遇到在输入自己地址之后,提示ping不通的情况,按如下教程处理
-
登录阿里云控制台->找到安全组规则->添加安全组规则
-
按照下图操作,
到此可以本地和服务器都ping一下,问题得以解决。
4、回到第二步,地址填好之后,找到Example Configurations
红线圈出来的就是你所得到的地址
5、回到命令行,ping一下你得到的地址
6、查看一下IPv6模块开启状态
ifconfig
7、添加域名解析AAAA,记录值就是之前的tunnel申请得到的ip
8、测试域名,http://ipv6-test.com/validate.php
到此解析完成,只是没有ipv6的服务,可以采用nginx部署服务
Nginx安装与配置
1、安装weget、vim和gcc
yum install wget
yum install vim-enhanced
yum install make cmake gcc gcc-c++
2、配置
-
将第一步下载的文件上传到服务器
3、解压并执行文件
cd /usr/local
tar xvzf nginx-1.4.4.tar.gz
-
跳转到解压过后的目录,执行命令配置新的参数,加入 ipv6模块。
cd nginx-1.9.9
./configure --prefix=/usr/local/software/nginx/ --with-ipv6
-
编译源码
make
-
安装
make install
-
查看–with-ipv6是否已经存在
cd /root/tmp/nginx-1.4.4/objs /usr/local/software/nginx/sbin/nginx -V
cd
-
启动nginx
cd /usr/local/software/nginx/sbin/ ./nginx
-
查看nginx是否运行
ps aux | grep nginx
-
此处我是修改了端口号的,如果你的80端口没有被占用就不用走这一步
-
找到nginx.conf配置文件,在你的安装目录下
cd /usr/local/software/nginx/conf/nginx.conf
-
修改默认端口,此处的ipv6地址,是你前面得到IPv6地址
-
重启修改配置
./nginx -s reload
-
查看Nginx配置文件是否成功
./nginx -t
-
到此你需要注意一个问题,因为我前面是修改了端口号的,所以你需要在你的防火墙添加你修改的端口号,不然是无法访问的
-
添加你修改的端口号,以我修改的1001为例
firewall-cmd --zone=public --add-port=1001/tcp --permanent
-
重启防火墙
firewall-cmd --reload
-
查看现在已有的端口号
firewall-cmd --list-ports
-
-
你可以用你的域名加端口号访问了,会出现下面界面
-
可以登录http://ipv6-test.com/validate.php地址进行测试,但是可能会出现下面的情况
出现这个问题是He不够稳定,为了解决这个问题,我翻了很多帖子,下面给出解决办法,
-
自己编写一个定时Ping的脚本,去ping一个IPv6地址
cd /usr/local/software/nginx
在s上面此路径中创建一个脚本文件
touch test.sh
编写脚本文件
vim test.sh
每隔5秒去ping一下这个地址
#!/bin/bash while : ;do ping6 ipv6.baidu.com -c1 >/dev/null 2>&1 echo "yes ping" sleep 5 done
执行文件
./test.sh
-
-
到此就大功告成了,
制作不易,转载麻烦备注原创链接!!!
-
参考链接:
推荐阅读