论持久战之服务器IPv6-in-IPv4隧道搭建

最近公司APP提交审核 频繁被拒,主要问题总结了2点:

1.项目中使用了NSURLconnection底层网络请求API

2.服务器ipv6,现在大部分Linux服务器只支持ipv6协议

误区:大部分开发人员认为服务器只要开启ipv6协议就可以。从16年6月份后苹果强制要求支持ipv6网络,ipv6网络支持需要服务器返回ipv6地址给客户端,这正是国内大部分APP被毙掉的原因,国内支持ipv4网络,苹果审核人员访问服务器不会返回ipv6地址 导致APP连不上服务器。

解决方案:

①申请国外免费vps Tunnel Broker

注册:

论持久战之服务器IPv6-in-IPv4隧道搭建_第1张图片


论持久战之服务器IPv6-in-IPv4隧道搭建_第2张图片
创建一个隧道,具体怎么创建这里不做详细介绍了

进入查看隧道信息


论持久战之服务器IPv6-in-IPv4隧道搭建_第3张图片

拿到这些信息后,就可以配置自己的服务器了,以centos6.5为例做配置演示

服务器开启IPV6

1.编辑文件,/etc/modprobe.d/disable_ipv6.conf,将其中的三行都注释掉

2.编辑文件/etc/sysconfig/network,将其中的 NETWORKING_IPV6=no 改为 NETWORKING_IPV6=yes

网卡配置

进入网络脚本文件夹下:cd /etc/sysconfig/network-scripts/

创建一个虚拟网卡:touch ifcfg-sit1

编辑刚创建的虚拟网卡:

ONBOOT=yes

DEVICE=sit1

BOOTPROTO=none

IPV6INIT=yes #开启ipv6支持

IPV6TUNNELIPV4=添加远程ipv4地址

IPV6TUNNELIPV4LOCAL=添加自己服务器外网ip

IPV6ADDR=添加tunnelbroker提供的客户端ipv6地址

使用ifconfig查看当前网卡信息:


论持久战之服务器IPv6-in-IPv4隧道搭建_第4张图片

编辑ifcfg-eth1,添加如下配置:

IPV6INIT=yes

IPV6_AUTOCONF=yes

IPV6ADDR=远程ipv6服务器地址

还有最后一步,为了每次重启网卡隧道配置信息不丢失,编辑vi /etc/sysconfig/network,添加

IPV6_DEFAULTDEV=sit1 #这里的sit1就是刚刚添加的sit1虚拟网卡

重启网卡:service network restart

测试ipv6隧道是否连接:ping6 ipv6.google.com

能够正常ping通后,接下来配置应用服务器

我们公司的应用服务器是nginx+tomcat,只需要配置外层入口nginx就可以

server{

...

listen [::]:80; #配置ipv6监听

...

}

配置dns AAAA解析


论持久战之服务器IPv6-in-IPv4隧道搭建_第5张图片

使用IPv6 test - web site reachability或者Is your site IPv6 ready?检测是否成功


论持久战之服务器IPv6-in-IPv4隧道搭建_第6张图片


论持久战之服务器IPv6-in-IPv4隧道搭建_第7张图片

查看nginx log日志是否真的有ipv6地址请求进来


如果遇到ipv6 websit连接不稳定的时候,两种解决办法

①让自己服务器一直ping6 ipv6.google.com

②配置nginx dns解析(一般方法1就可以解决) 解析地址为tunnelbroker提供的


论持久战之服务器IPv6-in-IPv4隧道搭建_第8张图片

关于nginx dns详细配置请自行百度。


上属原创文章,转载请注明作者@怪咖

QQ:208275451

你可能感兴趣的:(论持久战之服务器IPv6-in-IPv4隧道搭建)