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. C#环境下的数值计算库:MathNet

    下面用一个简单的例子来说明MathNet的使用方法: 1. 进入MathNet官网找到数值计算库Math.NET Iridium(Numerics)并下载: 2. 将下载的文件解压缩,在目录下的Bin ...

  2. JSTL 数字日期标签库

    <frm:formatNumber/>标签 该标签依据特定的区域将数字改变为不同的格式来显示. 被格式化的数据<frm:formatNumber> <fmt:format ...

  3. MVC中一般为什么用IQueryable而不是用IList

    IList(IList<T>)会立即在内存里创建持久数据,这就没有实现“延期执行(deferred execution)”,如果被加载的实体有关联实体(associations),此关联实 ...

  4. Android开发具体解释之ListView具体解释一

    列表ListView介绍和实例  1.ListView  -- ListActivity -- ListAdapter  2.ArrayAdapter结合ListView进行显示  3.SimpleA ...

  5. HDU2054JAVA

    (包括2016级新生)除了校赛,还有什么途径可以申请加入ACM校队? A == B ? Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: ...

  6. iOS UIKit:TabBar Controller

    1 结构剖析 IOS中的标签导航其实是一个UITabBarController对象,其也是一个Container View Controller.UITabBarController对象创建和管理了一 ...

  7. python learning_curve函数

    这个函数需要引用sklearn包 import sklearn from sklearn.learning_curve import learning_curve 这个函数的调用格式是: learni ...

  8. C#当中的多线程_线程池

    3.1 简介 线程池主要用在需要大量短暂的开销大的资源的情形.我们预先分配一些资源在线程池当中,当我们需要使用的时候,直接从池中取出,代替了重新创建,不用时候就送回到池当中. .NET当中的线程池是受 ...

  9. mvc在页面上显示PDF

    今天看到需求要在页面上显示pdf,自己整了半天,啥效果都没有,偶尔有效果还各种不兼容,很无语的说.捣鼓了半天,没办法了,去谷歌了下,介绍了各种插件,各种方法,但是都挺繁琐的,本人不是一个很喜欢使用插件 ...

  10. oracle sql语句

    一.ORACLE的启动和关闭1.在单机环境下要想启动或关闭ORACLE系统必须首先切换到ORACLE用户,如下su - oracle a.启动ORACLE系统oracle>svrmgrlSVRM ...