APP在美国的IPv6-Only网络环境下测试不通过。

网上各种方法都试了,什么NSURLConnection, Reachability,试完还是拼人品,快要跪了

小伙伴们开始质疑这种测试方法了。

趟着中枪的还有阿里云,偌大的阿里居然表示不支持IPv6,不支持也就算了,为啥阿里也还要删除相关IPv6的贴子,见到老马,我得好好跟他聊聊。

而且苹果美国测试中心表示通过NAT64/DNS64技术也无法访问中国的阿里云主机,这是几个意思?

言归正传,作为此次国内大规模APP被拒的原因,小编从技术角度来帮小伙伴们分析下,文末再免费为小伙伴们提供解决方法。

原因一:现有IPv4环境,国内、国外不一定互通,小编不敢往下说了,直接看数据好了。

IPv4/IPv6扫盲:不同的网络协议,中国99%都在用IPv4协议,IPv6是下一代互联网协议,最直接的区别就是地址格式上

国内主机ping国内网站的结果,时间最短,说明网络质量越好C:\>ping api.6box.cn -n 2

正在 Ping api.6box.cn [120.27.116.59] 具有 32 字节的数据:

来自 120.27.116.59 的回复: 字节=32 时间=13ms TTL=52

来自 120.27.116.59 的回复: 字节=32 时间=13ms TTL=52

120.27.116.59 的 Ping 统计信息:

数据包: 已发送 = 2,已接收 = 2,丢失 = 0 (0% 丢失),

往返行程的估计时间(以毫秒为单位):最短 = 13ms,最长 = 13ms,平均 = 13ms

美国AWS主机ping国内阿里云ECS,时间在300ms以上,丢包14%,当时我们的APP提交审核时,苹果同样表示IPv4网络连接不上。

ubuntu@ip-172-31-21-126:~$ ping 120.27.116.59

PING 120.27.116.59 (120.27.116.59) 56(84) bytes of data.

64 bytes from 120.27.116.59: icmp_seq=1 ttl=43 time=306 ms

64 bytes from 120.27.116.59: icmp_seq=2 ttl=43 time=307 ms

--- 120.27.116.59 ping statistics

---7 packets transmitted, 6 received,

14% packet loss, time 6007msrtt min/avg/max/mdev = 300.849/304.761/307.151/2.532 ms

美国AWS主机ping国内114的公共DNS,等了N久,表示网络不通

ubuntu@ip-172-31-21-126:~$ ping 114.114.114.114

PING 114.114.114.114 (114.114.114.114) 56(84) bytes of data.

审核不通过的大部分原因并非在代码层面,而是网络层面

审核不通过的大部分原因并非在代码层面,而是网络层面

审核不通过的大部分原因并非在代码层面,而是网络层面

原因二:NAT64本地测试和美国中心的IPv6 Only + NAT64/DNS64网络环境并不一样

NAT64扫盲:解决IPv4服务器不能被IPv6用户访问,看下图所示,目前中国99%的网站均不支持IPv6,但可以通过NAT64技术实现网络的转换,网站(APP)后台服务器不需要做配置,但网站域名所在的托管商,如万网,新网,易名中国等需要添加IPv6条目。

前方有坑,请注意

坑一、NAT64设备所在网络环境,决定你的网站能否无障碍被访问,苹果APP审核用的NAT64在美国,至于能顺利访问中国哪些网站服务器,就需要拼RP值了,相信很多小伙伴们已经明白了为啥本地NAT64模拟测试通过,在美国测试就不通过了吧。

坑二、没有真实IPv6测试环境,阿里云居然说中国没有IPv6运营商,无法支持IPv6,两端都有坑,再拒我一次,朕就准备投靠安卓了,伤不起啊。

小伙伴们,有困难不要怕,小编来拯救你们了!

法宝一、网站服务器咱不动,小编在中国免费帮各位小伙伴们进行NAT64转换,我们的NAT64设备在中国,当然所有网站都能通了,美国测试中心到我们是走的IPv6。

谁说中国没有IPv6,中国最大的IPv6就是中国教育网,拥有世界上最大的下一代互联网(CERNET2-CNGI)

1、使用小编提供的DNS64服务,解析出自己网站对应的IPv6域名

Windows: Win+R打开运行,输入cmd,打开命令提示符,输入以下命令

Nslookup www.6box.cn dns64.6box.cn

命令中www.6box.cn改成你的网站名称,如果APP里调用了多个子域名,都需要进行转换,如a.6box.cn ,b.6box.cn

将解析出来的IPv6地址记录添加到DNS域名托管商管理系统里,此操作通常在万网等域名网站里操作,不是在网站服务器上操作,建议直接联系网站技术负责人进行解析。此IPv6转换服务是免费给小伙伴们使用的,小伙伴们可以放心添加。

C:\>nslookup www.6box.cn dns64.6box.cn

服务器:  UnKnown

Address:  222.28.155.25

非权威应答:

名称:    www.6box.cn

Addresses:  2001:da8:20d:400::76ba:3ffd

118.186.63.253

2、给自己的网站添加IPv6 DNS记录,这样全球IPv6用户就能正确解析出你的IPv6地址啦

以万网操作为例,进入”我的域名“---”域名解析”----”添加解析”

记录类型AAAA  主机记录 www  记录值2001:da8:20d:400::76ba:3ffd

如果是api.6box.cn,则主机记录是api,其它类似

新网怎么添加IPv6条目?

新网不支持IPv6域名直接添加,给他们发邮件吧。

上面都操作完了,效果怎么样?

我们来测试一样:同样从美国AWS主机测试,这次采用IPv6线路进行测试,157ms,0丢包。比国内某些IPv4的网络还要快,有木有!!!

ubuntu@ip-172-31-21-126:~$ ping6 2001:da8:20d:400::76ba:3ffd

PING 2001:da8:20d:400::76ba:3ffd(2001:da8:20d:400::76ba:3ffd) 56 data bytes

64 bytes from 2001:da8:20d:400::76ba:3ffd: icmp_seq=1 ttl=46 time=157 ms

64 bytes from 2001:da8:20d:400::76ba:3ffd: icmp_seq=2 ttl=46 time=157 ms

--- 2001:da8:20d:400::76ba:3ffd ping statistics ---

5 packets transmitted, 5 received, 0% packet loss, time 4001ms

rtt min/avg/max/mdev = 157.313/157.411/157.539/0.446 ms

我们通过浏览器来测试下,发现网站已经通过IPv6访问了

本地没有IPv6环境怎么办?

法宝二、免费申请6Box IPv6路由器,本地有IPv6真实环境了,测试更easy,苹果要敢再拒,我们就带上6Box去炸美国。

苹果送审了,自己还没有IPv6测试环境,怎么办,快来免费申请吧,小编也不是24小时都在线的,以后的测试还是需要小伙伴们自己来啊

6Box SOHO版专为苹果开发企业提供真实IPv6环境,即插即用,操作简单,无须变更现有网络架构,快速搭建IPv6网络环境,提供高速IPv6国际出口带宽。

主要功能如下:

用户连接数:30-40人/台

分配真实IPv6地址段 /64前缀

提供10Mbps企业级高速IPv6接入带宽

提供高速IPv6国际出口带宽(美国方向)

数量有限,免费测试名额不多,先到先得,可免费测试1个月

《免费公测申请表》下载地址:http://pan.baidu.com/s/1bTjSya

如果想快速体验IPv6,可以下载6Box APP

==========================说法二========

IPv6的简介

IPv4 和 IPv6的区别就是 IP 地址前者是 .(dot)分割,后者是以 :(冒号)分割的(更多详细信息自行搜索)。

PS:在使用 IPv6 的热点时候,记得手机开 飞行模式 哦,保证手机只在 Wi-Fi 下上网,以免手机在连接不到网络时候,会默认跳转到使用 蜂窝移动网络(即2G、3G、4G流量) 上网。

本地 Mac 搭建 IPv6 测试环境

想要测试你的 APP 是否在 IPv6 环境下运转是否正常,你所需要的就是一台用非Wi-Fi方式上网的Mac电脑。如果你用的是 Mac 一体机网络用的有线,那么你什么也不用准备,如果你用的 Mac 本,甭管 Air 还是 Pro,只要用无线上网,你就需要一个 RJ-45 转 USB 的转换工具(因为 Mac 本没有直接插有线的接口),去某狗、某猫上淘个吧,不贵也就不到100来大洋。

搭建 IPv6 测试环境说白了就是用 Mac 做一个热点,然后用 iPhone 连接这个 Wi-Fi,听起来很容易,下面跟着我的步伐走吧。

和正常的开启 Mac 热点的方式的区别是这次我们产生的是一个本地的 IPv6 DNS64/NAT64 网络,这项功能是 OS X 10.11 新加的功能(如果你的 Mac 系统版本不是的话必须要升级哦,才能产生 IPv6 的热点呐 )。

和我们以前开启热点方式不一样的地方在于,我们在 “系统偏好设置(System Preferences)” 界面选中 “共享(Sharing)” 的同时,要按住 “Option” 键。见图:

步奏1

之后在 “共享” 界面中,我们会看到和之前不一样的地方,就是红框所标的地方,多了一个叫 “创建 NAT64 网络 ” 的选框,选中它。

步奏2

接下来在 共享 窗口中,依次按图中所示的标号来,如图所示

步奏3

随后请点击 共享以下来源的连接 的下拉列表,选择我们想要共享出去的网络接口。我当前是想要共享的是 USB 10/100/1000 LAN ,(因为的我用的是 有线的 RJ-45 接头转 USB 输出的网络转换工具 )。

PS:如果你的 Mac 是用有线拨号上网的话,请选择 PPOE 选项作为共享源。如果你的 Mac 是用有线上网(不用拨号的)的话,请选择 Thunderbolt 以太网有线网 选项作为共享源。

标号1

标号2,用以下端口共享给电脑 选项此处选择 Wi-Fi

标号3,点击 Wi-Fi选项... 选项,个性化自己的热点的哦

最后一步

大功告成

出现一下变化证明你已经成功产生了一个 IPv6 的热点

Wi-Fi图标变样

看手机的连接共享 Wi-Fi 的变化

普通热点共享

IPv6 热点共享

对比2张图中 DNS 的地址看到区别了吧,一个 . 分割,一个 : 分割。

接下来,用 IPv6 的热点测试几个常用的 APP,如图:

微信

提示无法连接服务器。不过 QQ 是可以的。

提示网络连接不可用。可能环信老版本的Demo也会有这种情况。解决办法就去官网查阅 SDK 文档,此处只是给出检测 IPv6 环境下APP的连通性。

IPv6被拒如何破?-b的更多相关文章

  1. 关于IPv6被拒

    关于IPv6被拒       App在本地IPv6的测试环境下运行一切正常,结果又是被拒,悲剧原因还是IPv6的问题;求解决方法被拒原因We discovered one or more bugs i ...

  2. 关于ipv6被拒的问题

    遇到ipv6被拒,你首先要搭建一个ipv6的环境,进行测试一下,如果在ipv6环境下没有问题,那你就可以再次直接提交,或者重新打包提交.再次提交的时候,你可以录制一段在ipv6环境下运行的一段视频 上 ...

  3. App审核被拒(后台定位被拒,ipv6被拒,广告标示被拒的解决方案)

    ipv6被拒问题描述: 解决方案支持ipv6 1)搭建ipv6 环境,搭建好的ipv6 ,环境会有一个共享wifi, 具体如何搭建ipv6测试环境参考本地如何搭建IPv6环境测试你的APP2)app连 ...

  4. iOS ipv6 被拒

    1.检查你所用到的库,像af 3.0以上什么的(不用改),其他的库自己去搜下是否支持ipv6吧. 2.确保你用的sdk支持ipv6,这个自己去看文档就行. 3.终端  dig +nocmd + nos ...

  5. iOS 上线因iPv6被拒,查询服务器是否支持iPv6,mac设置iPv6网络,手机测试iPv6

    一. iOS----如何检查域名是否支持ipv6 iOS----------如何检查域名是否支持ipv6 1.检查你所用到的库,像af 3.0以上什么的(不用改),其他的库自己去搜下是否支持ipv6吧 ...

  6. ipv6被拒的解决方法

    A,检测服务器是否支持ipv6连接 用mac 搭建IPv6环境测试,只能测试客户端到mac这段网络正常,但是mac到服务器还是IPv4的,所以没有办法测试服务器的IPv6是否正常.可以用手机打开2)步 ...

  7. IOS - 上APPSTORE为何因IPv6被拒?

    http://blog.csdn.net/wanglixin1999/article/details/52182001

  8. 苹果审核之遇到IPV6问题被拒的解决方法

    情景: 等待苹果审核上线时,发现因为IPV6被拒了.这是悲剧,以下是苹果审核给我的理由: We discovered one or more bugs on Wi-Fi connected to an ...

  9. 2017-04-26 ios ipv6那些事(已完美解决)

    2017-04-26 ios ipv6那些事(已完美解决)   工作单位性质属于外包公司,每天都有几十的app要提交上传至应用市场,于2017年3月份接到ios工程师反馈 Guideline 2.1 ...

随机推荐

  1. 理解position 绝对定位和相对定位

    一.position的三种取值 1.取值 Position :   static /  absolute / fixed / relative static:静态   absolute:绝对定位    ...

  2. 图解三种APP的区别

  3. HDU 1242 rescue and 优先级队列的条目

    Problem Description Angel was caught by the MOLIGPY! He was put in prison by Moligpy. The prison is ...

  4. ATL 工程下添加右击菜单

    首先在dllmain.cpp中添加如下声明 HINSTANCE g_hInstance;  g_hInstance = hInstance; 源码如下: CPoint point;  ::GetCur ...

  5. Linux 精准获取进程pid--转

    如果想在脚本里只获取PID,那么可以用如下脚本.目前收集两种方法: 方法一 $ps x|grep xxx  |awk '{print $1}' e.g. ps x|grep java |awk '{p ...

  6. Windows 7系统下局域网文件共享设置方法

    今天给家里增添了一台组装机,小试了一下win7局域网文件共享功能,很爽的说. 记录一下实现方法: 1.关闭防火墙 2.启用共享. 控制面板 – 网络和共享中心 – 更改高级共享设置,将图中的几个选项选 ...

  7. hao123 百度品专 按品类 计算 下单数量 商品数量 下单金额?

    SELECT * FROM t_tag_source WHERE   s_name='hao123'; +--------+----------+---------+--------+-------- ...

  8. android中ListView控件

    今天学习了ListView控件和页面跳转,下面大致介绍下: 第一步:创建显示内容的文件vlist.xml: <?xml version="1.0" encoding=&quo ...

  9. hibernate - Initial SessionFactory creation failed.org.hibernate.HibernateException

    对于数据库字段映射, 被映射的字段除了提供 getter方法之外, 还需要提供setter方法. 这也是java bean的一些规范. 例如, 题目中的异常 Initial SessionFactor ...

  10. java - 异常浅谈

    java提供异常处理机制中,可以分为RuntimeException和checked Exception两种. RuntimeException 是运行时异常,是程序本身无法解决的.例如,对于一个用户 ...