美文网首页Ethical HackersiOS开发程序员
论持久战之服务器IPv6-in-IPv4隧道搭建

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

作者: 怪咖_OOP | 来源:发表于2016-09-27 11:16 被阅读2214次

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

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

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

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

    解决方案:

    ①申请国外免费vps Tunnel Broker

    注册:

    创建一个隧道,具体怎么创建这里不做详细介绍了

    进入查看隧道信息

    拿到这些信息后,就可以配置自己的服务器了,以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查看当前网卡信息:

    编辑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 test - web site reachability或者Is your site IPv6 ready?检测是否成功

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

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

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

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

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

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

    QQ:208275451

    相关文章

      网友评论

        本文标题:论持久战之服务器IPv6-in-IPv4隧道搭建

        本文链接:https://www.haomeiwen.com/subject/ivtwettx.html