说明好不是照着我的话做就能解决问题,而是去找到自己不通过的原因所在。
列举被打回来的情况和大致的原因、其他情况介绍
1. 用的是IP
因为你用了ipv4地址,代码就强制走了V4协议,纯6环境是无法访问的,除了接口的请求要换成域名,那些以图片或者媒体为主的app,也要注意把资源的url换成域名。
2. 代码不支持V6
代码不支持的问题,就尽更新库之类的,如果是用的系统的请求,恭喜你,苹果在底层都已经处理好了。但是有些不是代码不支持而是有些判断出错的,比如AFNET的网络监测里面有段代码就出了问题,我不用AFNET所以无法粘贴出来,用的人自己留神下。还有其他sdk库,我不列举,你们自己用到哪个,自己去官网找更新,提醒下gcdsocket也有更新,自己去gitbub下载下。
3. 本地搭建nat64测试
1) 这个环境搭建的要测试通过,这是最基本的要求。搭建流程百度很容易找到。
2) 建议大家用wireshark抓包看看,确定下客户端会不会是用了ipv4进行了访问。不知道可不可行。
4. 苹果那边访问不了
这个种情况一定要确定上面的步骤完成了,然后到苹果那边还是不行的话,这可能是你的域名提供商、你的服务器访问不稳定造成的,你可以像你的域名、服务器运营商申诉:Our app works on DNS64/NAT64 environment . please help check again.
当然是基本没用,这世界上的人都一样,你别人能过,为什么你不能过,肯定不是我的问题,没人会帮你的。
------------------------------------------------------------------
大部分人,基本上解决了以上,都不会出现问题,如果你真的因为IPV6审核通过不了,找运营商也会跟你统一回复:“不关我的事”,这时候你们肯定都没辙了,我写以下的,只是给那些没有过的人看,你们没处理过以下情况的人过了,就当看不见就可以了,特别是那些运营商的人更要当看不见。我清楚的记得好几个别打回N次,然后通过下面这个方法终于审核通过了
5. DNS AAAA记录
我不是理论派,简单看了下NAT64/DNS64原理,在这个这个技术下,查询域名信息中的A记录(IPv4地址)合成到AAAA记录(IPv6地址)中,返回合成的AAAA记录用户给IPv6客户端用户访问,而审核不过,也可能是因为这个V6地址在苹果那边访问不了。
我们想办法让这个AAAA记录能够稳定访问,这里我们需要一些DNS服务商的帮助,帮我们直接生成一个ipv6的访问地址,手动添加到AAAA记录中。其实原理就是,本来是通过苹果的NAT64/DNS64生成的地址,现在换成了用DNS服务商的NAT64/DNS64生成,也让苹果访问的时候看起来像一个真的V6地址一样。
1) DNSPOD,这是一个被打回来的网友,然后使用这个服务后审核通过了,解决链接,如果看不懂的,可以自己网上找一下教程。
2) GODADDY 也是上面的网友提供的,但是使用它被打回来的,供参考
3) 6BOX,付费的,很贵。
6. 如何测试服务器的网络已经支持IPV6,
只有做了步骤5才可以且需要做这个操作做校验,没手动添加dns aaaa的是不需要这些操作的,确保这个地址的访问的稳定性。
通过网站 http://ipv6-test.com/validate.php 检测域名的V6访问是否正常,第一个打勾代表dns正常,第二个打勾,需要服务器80端口或者443端口没被禁用,只有你操作了步骤5,这个才能操作才能正常。
或者 http://www.subnetonline.com/pages/ipv6-network-tools/online-ipv6-ping.php,根据页面打印数据查看延迟,会不会丢包。
7. 服务端主动发数据给客户端
这种情况,不是指socket回发数据给客户端,指的是服务端记录客户端的ip地址端口后,主动发数据给客户端,因为NAT64/DNS64 是单向的,只能IPV6访问IPV4,所以这个过程就会失败,其实这个过程服务端也变成是客户端的角色了,如果有这种情况,我也不知道怎么办。除非你有真实的IPV6地址。
------------------------------------------------------------------
这是大部分小企业的解决方案,如果你们服务器网络有真实的IPV6地址的话,就不需要考虑这些了。
------------------------------------------------------------------
很多没有加AAAA已经过了的人,他们看到别人加AAAA,就会莫名给对方套上煞笔称号,你不过就肯定是你代码问题之类的,其实导致他们会有这种想法主要的原因是因为很多服务商用DNS AAAA宰开发者的钱,因为他们有正义感,所以他们反感。
我相信不过的大部分人已经做好了1+2,本来这个客户端需要做的就没多少,也没技术难点,基本上更新库就好了,我个人觉得,如果真的过不了,加个稳定的AAAA,至少确保下苹果访问时是稳定的,再去找其他问题的存在。有好几个人是通过添加稳定的AAAA记录后,才成功通过审核的,这间接证明,有这么一群人他们的域名在苹果那通过NAT64/DNS64就是访问不了,仅供参考。
网友评论
专门解决苹果审核问题的仓库.有ipv6 和后台定位被拒绝的终极解决方案 git基本上可以解决95% 看了git三遍还有问题 私聊我 喜欢请star 借宝地大哥广告 顺便给个赞