国内iphone ios app store审核ipv6被拒解决方案(IPv6隧道方式)

Objective-Cliuliangsong 发表了文章 • 0 个评论 • 28 次浏览 • 10 小时前 • 来自相关话题

  由于苹果的应用审核策略升级,自2016年6月1日起,提交新版本的APP需要支持IPV6-Only的网络才能通过审核。而目前国内99%的网络不支持IPV6,甚至国内最大的云平台阿里云,由于无可用IPV6网络,干脆禁用了云服务器的IPV6模块,可见苹果给国内开发者扔下一个大大的难题。
  下面以CentOS 7.2为例,通过ipv6通道的方式,解决ios ipv6审核拒解的难题。
  一、开启服务器的IPV6模块(阿里云):  由于阿里云禁用了云服务器ECS的IPV6模块,所有我们需要先开启它:
1、修改/etc/sysctl.conf中ipv6的配置,将下面三行值设置为0,如下所示:net.ipv6.conf.all.disable_ipv6 = 0
net.ipv6.conf.default.disable_ipv6 = 0
net.ipv6.conf.lo.disable_ipv6 = 0  
2、注释掉/etc/modprobe.d/disable_ipv6.conf文件中的内容,或者直接删除此文件。#alias net-pf-10 off
#options ipv6 disable=0  
3、修改/etc/sysconfig/network中的配置项NETWORKING_IPV6值为YES:NETWORKING_IPV6=yes  
4、重启服务器,查看IPV6模块是否开启成功:init 6ifconfig |grep inet6  二、创建IPV6隧道:  这里使用免费又好用的网站https://www.tunnelbroker.net/来创建IPV6隧道,创建前需免费注册账号,创建完账号后,开始执行下面操作:
1、创建隧道:点击“Create Regular Tunnel”,进入”Create New Tunnel“页面;输入你的web服务器的公网IP地址,并选择合适的隧道服务器地址,选择之前最好先对服务器ip进行ping测试,选择丢包率和延迟较小的服务器来创建,这直接决定你将来通过审核的成功率,我这里选择的是香港(Hong Kong, HK);点击”Create Tunnel“完成创建。
  
2、创建完成后,点击"Example Configurations"选项卡,在下拉菜单中选择”Linux-net-tools“,然后复制代码,在web服务器中执行:


执行完成后,输出ifconfig命令,即可查看到创建隧道后,本地服务器的ipv6地址:



 
3、至此,web服务器已经通过隧道的方式接入到IPV6网络了,可以使用ping6命令进行测试: ping6 ipv6.baidu.com
ping6 ipv6.google.com  三、开启Web服务的IPV6支持:1、apache修改配置文件,将Listen行修改为如下(vim /etc/httpd/conf/httpd.conf):Listen [::]:80  
2、nginx修改配置文件,将Listen行修改为如下:listen [::]:80;  四、添加域名的IPV6记录( aaaa记录):  在域名注册商网站,登录到域名管理后台,添加一条aaaa记录,记录名与ipv4名相同,记录值为上面web服务器的IPV6地址"2001:470:35:7ea::2"。如域名商不支持aaaa记录,可以将NS服务修改为DNSPOD的NS服务器,到dnspod上去进行添加。
  五、在线测试网站的IPV6支持:  打开网站http://ipv6-test.com/validate.php,输入域名进行测试,如前面两项校验通过,即可将app提交审核啦,欢迎留言交流。 查看全部
  由于苹果的应用审核策略升级,自2016年6月1日起,提交新版本的APP需要支持IPV6-Only的网络才能通过审核。而目前国内99%的网络不支持IPV6,甚至国内最大的云平台阿里云,由于无可用IPV6网络,干脆禁用了云服务器的IPV6模块,可见苹果给国内开发者扔下一个大大的难题。
  下面以CentOS 7.2为例,通过ipv6通道的方式,解决ios ipv6审核拒解的难题。
  

一、开启服务器的IPV6模块(阿里云):

  由于阿里云禁用了云服务器ECS的IPV6模块,所有我们需要先开启它:
1、修改/etc/sysctl.conf中ipv6的配置,将下面三行值设置为0,如下所示:
net.ipv6.conf.all.disable_ipv6 = 0
net.ipv6.conf.default.disable_ipv6 = 0
net.ipv6.conf.lo.disable_ipv6 = 0
  
2、注释掉/etc/modprobe.d/disable_ipv6.conf文件中的内容,或者直接删除此文件。
#alias net-pf-10 off
#options ipv6 disable=0
  
3、修改/etc/sysconfig/network中的配置项NETWORKING_IPV6值为YES:
NETWORKING_IPV6=yes
  
4、重启服务器,查看IPV6模块是否开启成功:
init 6
ifconfig |grep inet6
  

二、创建IPV6隧道:

  这里使用免费又好用的网站https://www.tunnelbroker.net/来创建IPV6隧道,创建前需免费注册账号,创建完账号后,开始执行下面操作:
1、创建隧道:
  1. 点击“Create Regular Tunnel”,进入”Create New Tunnel“页面;
  2. 输入你的web服务器的公网IP地址,并选择合适的隧道服务器地址,选择之前最好先对服务器ip进行ping测试,选择丢包率和延迟较小的服务器来创建,这直接决定你将来通过审核的成功率,我这里选择的是香港(Hong Kong, HK);
  3. 点击”Create Tunnel“完成创建。

  
2、创建完成后,点击"Example Configurations"选项卡,在下拉菜单中选择”Linux-net-tools“,然后复制代码,在web服务器中执行:
详解通过ipv6隧道的方式解决ios_ipv6审核被拒.png
执行完成后,输出ifconfig命令,即可查看到创建隧道后,本地服务器的ipv6地址:
详解通过ipv6隧道的方式解决ios_ipv6审核被拒_02.png

 
3、至此,web服务器已经通过隧道的方式接入到IPV6网络了,可以使用ping6命令进行测试: 
ping6 ipv6.baidu.com
ping6 ipv6.google.com
  

三、开启Web服务的IPV6支持:

1、apache修改配置文件,将Listen行修改为如下(vim /etc/httpd/conf/httpd.conf):
Listen [::]:80
  
2、nginx修改配置文件,将Listen行修改为如下:
listen       [::]:80;
  

四、添加域名的IPV6记录( aaaa记录):

  在域名注册商网站,登录到域名管理后台,添加一条aaaa记录,记录名与ipv4名相同,记录值为上面web服务器的IPV6地址"2001:470:35:7ea::2"。如域名商不支持aaaa记录,可以将NS服务修改为DNSPOD的NS服务器,到dnspod上去进行添加。
  

五、在线测试网站的IPV6支持:

  打开网站http://ipv6-test.com/validate.php,输入域名进行测试,如前面两项校验通过,即可将app提交审核啦,欢迎留言交流。