阿里云针对苹果官方ipv6审核的综合解决方案

前言

因业务需求 公司APP需要在ios系统上运行需要改系统ipv6

2016年6月1号之后苹果应用上传AppStore审核要求全面支持ipv6,虽然只是一个简单的审核要求,但却给中国区的开发者带来了不小的麻烦,因为众所周知的原因,国内的IPV6支持的比较差,所以包括ipv6环境测试在内的ipv6适配要求,着实是需要有一套解决方案。这里都是废话,下面就自己的解决方案开始做方案介绍。

代码层支持

按照苹果官方要求做iOS代码适配ipv6,这里涉及到了跟网络相关的第三方库的时候,按照我自己的经验,做如下解释:

1.Afnetworking ~3.1.0。(3.0.x版本正常都是支持ipv6的)

2.SDWebImage ~3.8.1。

基本的代码层根据苹果官方的要求做配置就好。对于socket支持,由于最近上线的项目里没有用到socket,需要做socket层支持的自己去苹果官方查适配ipv6要求。

服务器支持

1.给域名添加一条AAAA解析(当您希望访问者通过 IPv6地址 访问您的域名时,可以使用AAAA记录,即用来指定网站域名对应的IPv6地址记录),如果是www的域名,则AAAA解析名为www,值为当前域名的ipv6DNS地址。详情:阿里万网IPV6AAAA解析。

2.更改服务器ipv6配置,这里想说明一下,这次的苹果强制要求ipv6兼容,阿里云无辜背了黑锅,其实能不能审核通过或者说ipv6环境下阿里云能不能访问跟阿里云支不支持ipv6没有一毛钱关系。用阿里云而ipv6审核没有通过的原因是服务器环境没有配置ipv6,或者根本就是有的服务器为了节省性能将ipv6直接给禁掉了。所以查看服务器中ipv6的配置,看是否允许ipv6。

此处以阿里云为例进行说明:

注意!

首先,到 https://www.tunnelbroker.net/ 注册一个账户,然后登陆,戳   Create Regular Tunnel 。IPv4 Endpoint (Your side) 这里填你 ECS 的内网 IP 地址, Available Tunnel Servers 这里选一个,一般来说 HK 离大陆近延迟低,不过最近 HE.net 的香港似乎都是绕了一圈美国回来的,所以延迟反而很高,这个看自己情况选就好。然后戳 Create Tunnel ,就完成了。

wKiom1mOmuqDPWIoAACG7iV9eRM057.png-wh_50650) this.width=650;" src="https://images.winkp.com/imgs/winkp/_winkp/2023/08/3957310948372477123.png" title="2017-08-12_134703.png" class="aligncenter">

wKioL1mOmwHzSxKjAABR73Pw0qY453.png-wh_50650) this.width=650;" src="https://images.winkp.com/imgs/winkp/_winkp/2023/08/3138440463708536690.png" title="2017-08-12_135659.png" style="font-size:16px;" class="aligncenter">

wKioL1mOmw-DZlfrAAA1J2GuPME007.png-wh_50650) this.width=650;" src="https://images.winkp.com/imgs/winkp/_winkp/2023/08/4368424613656507689.png" title="2017-08-12_135732.png" class="aligncenter">

之后点击Create Regular Tunnel 添加自己的内网ip如:65.11.12.13

如图所示:

1.添加内网地址选项服务:

wKiom1mOnRmBtFiBAACpcLhZxPo668.png-wh_50650) this.width=650;" src="https://images.winkp.com/imgs/winkp/_winkp/2023/08/6358075565029045273.png" title="2017-08-12_141455.png" class="aligncenter">

2.点击创建即可:

wKioL1mOnSjRYBLHAABTRdjHWs8177.png-wh_50650) this.width=650;" src="https://images.winkp.com/imgs/winkp/_winkp/2023/08/2288353144198386009.png" title="2017-08-12_141608.png" class="aligncenter">

登录阿里云服务器终端,进入/etc/modprobe.d/ipv6off.conf(不同的服务器这里命名可能会有差别,可以先到这个目录看一下跟ipv6相关的配置文件,然后再vim打开)

  1. # vim /etc/modprobe.d/ipv6off.conf 或者 

  2. wKioL1mOciiRiCWPAAAD-OR2e2g234.png650) this.width=650;" src="https://images.winkp.com/imgs/winkp/_winkp/2023/08/3865795580894627611.png" title="2017-08-12_104557.png" class="aligncenter">

aliasnet-pf-10off  将本行注掉

optionsipv6 disable=1 改为 optionsipv6 disable=0

wKiom1mOckiBxoQdAAAEO400Uvs400.png650) this.width=650;" src="https://images.winkp.com/imgs/winkp/_winkp/2023/08/2224247609337533032.png" title="2017-08-12_104507.png" class="aligncenter">

2.# vi /etc/sysconfig/network

NETWORKING_IPV6=no 改为 NETWORKING_IPV6=yes

wKiom1mOcl2Rxx9qAAALIVBw_mk718.png650) this.width=650;" src="https://images.winkp.com/imgs/winkp/_winkp/2023/08/3185874292761246109.png" title="2017-08-12_104729.png" class="aligncenter">

3.# vi /etc/sysconfig/network-scripts/ifcfg-eth0

IPV6INIT=no 改为 IPV6INIT=yes

IPV6_AUTOCONF=no 改为 IPV6_AUTOCONF=yes

wKiom1mOdJ2iShCbAAAK-9iWXYw319.png650) this.width=650;" src="https://images.winkp.com/imgs/winkp/_winkp/2023/08/622194930405787468.png" title="2017-08-12_112336.png" class="aligncenter">

4以上已经开启ipv6,所以要进行一下安全设置,设置开机自启动ipv6防火墙

# chkconfig ip6tables on

至此,ipv6的服务器端支持已经完成,重启服务器测试ipv6是否已经支持,重启后:

# lsmod | grep ipv6   如果有输出则已经支持ipv6

输入ifconfig查看ipv6的信息

wKiom1mOcwqgwBIyAAAEI_l2_Ds994.png650) this.width=650;" src="https://images.winkp.com/imgs/winkp/_winkp/2023/08/9135496360716694971.png" title="2017-08-12_111710.png" class="aligncenter">

# ifconfig | grep -i inet6

wKioL1mOcz_SvJ1uAAAJyjSCb6Q440.png650) this.width=650;" src="https://images.winkp.com/imgs/winkp/_winkp/2023/08/8298266414000612951.png" title="2017-08-12_111802.png" class="aligncenter">

详情参考:

阿里云:通用 CentOS 服务器安全配置指南

腾讯云: 在centos服务器上启用ipv6地址

腾讯:centos操作系统云主机开启ipv6方法

本文出自 “李世龙” 博客,谢绝转载!

相关文章