阿里云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官网申请一个账号,链接如下

Tunnel官网

2、选择 Create Regular Tunnel 创建一个到自己公网 IP 的通道。

阿里云ecs开启ipv6支持(详细教程)_第1张图片

3、到此可能会遇到在输入自己地址之后,提示ping不通的情况,按如下教程处理
  1. 登录阿里云控制台->找到安全组规则->添加安全组规则

  2. 按照下图操作,

    阿里云ecs开启ipv6支持(详细教程)_第2张图片

    到此可以本地和服务器都ping一下,问题得以解决。

4、回到第二步,地址填好之后,找到Example Configurations

阿里云ecs开启ipv6支持(详细教程)_第3张图片

红线圈出来的就是你所得到的地址

5、回到命令行,ping一下你得到的地址

阿里云ecs开启ipv6支持(详细教程)_第4张图片

6、查看一下IPv6模块开启状态
ifconfig
7、添加域名解析AAAA,记录值就是之前的tunnel申请得到的ip

阿里云ecs开启ipv6支持(详细教程)_第5张图片

8、测试域名,http://ipv6-test.com/validate.php

阿里云ecs开启ipv6支持(详细教程)_第6张图片

到此解析完成,只是没有ipv6的服务,可以采用nginx部署服务

Nginx安装与配置

1、安装weget、vim和gcc
yum install wget
yum install vim-enhanced
yum install make cmake gcc gcc-c++
2、配置
  1. 下载地址

  2. 将第一步下载的文件上传到服务器

3、解压并执行文件
cd /usr/local
tar xvzf nginx-1.4.4.tar.gz
  1. 跳转到解压过后的目录,执行命令配置新的参数,加入 ipv6模块。

    cd nginx-1.9.9
    
    ./configure --prefix=/usr/local/software/nginx/ --with-ipv6
    
  2. 编译源码

    make
    
  3. 安装

    make install
    
  4. 查看–with-ipv6是否已经存在

    cd /root/tmp/nginx-1.4.4/objs
    /usr/local/software/nginx/sbin/nginx -V
    

    cd

  5. 启动nginx

    cd /usr/local/software/nginx/sbin/
    ./nginx
    
  6. 查看nginx是否运行

       ps aux | grep nginx
    

  7. 此处我是修改了端口号的,如果你的80端口没有被占用就不用走这一步

    1. 找到nginx.conf配置文件,在你的安装目录下

      cd /usr/local/software/nginx/conf/nginx.conf
      
    2. 修改默认端口,此处的ipv6地址,是你前面得到IPv6地址

    3. 重启修改配置

      ./nginx -s reload
      
    4. 查看Nginx配置文件是否成功

      ./nginx -t
      

    5. 到此你需要注意一个问题,因为我前面是修改了端口号的,所以你需要在你的防火墙添加你修改的端口号,不然是无法访问的

      1. 添加你修改的端口号,以我修改的1001为例

        firewall-cmd --zone=public --add-port=1001/tcp --permanent
        
      2. 重启防火墙

        firewall-cmd --reload
        
      3. 查看现在已有的端口号

        firewall-cmd --list-ports
        

    6. 你可以用你的域名加端口号访问了,会出现下面界面

      阿里云ecs开启ipv6支持(详细教程)_第7张图片

    7. 可以登录http://ipv6-test.com/validate.php地址进行测试,但是可能会出现下面的情况

      阿里云ecs开启ipv6支持(详细教程)_第8张图片

      出现这个问题是He不够稳定,为了解决这个问题,我翻了很多帖子,下面给出解决办法,

      1. ​ 自己编写一个定时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
        
    8. 到此就大功告成了,

      阿里云ecs开启ipv6支持(详细教程)_第9张图片

    制作不易,转载麻烦备注原创链接!!!

参考链接:

大佬链接1

CSDN2

CSDN3

你可能感兴趣的:(nginx,ecs)