說(shuō)明好不是照著我的話做就能解決問(wèn)題,而是去找到自己不通過(guò)的原因所在。
列舉被打回來(lái)的情況和大致的原因、其他情況介紹
1. 用的是IP
因?yàn)槟阌昧薸pv4地址,代碼就強(qiáng)制走了V4協(xié)議,純6環(huán)境是無(wú)法訪問(wèn)的,除了接口的請(qǐng)求要換成域名,那些以圖片或者媒體為主的app,也要注意把資源的url換成域名。
2. 代碼不支持V6
代碼不支持的問(wèn)題,就盡更新庫(kù)之類的,如果是用的系統(tǒng)的請(qǐng)求,恭喜你,蘋(píng)果在底層都已經(jīng)處理好了。但是有些不是代碼不支持而是有些判斷出錯(cuò)的,比如AFNET的網(wǎng)絡(luò)監(jiān)測(cè)里面有段代碼就出了問(wèn)題,我不用AFNET所以無(wú)法粘貼出來(lái),用的人自己留神下。還有其他sdk庫(kù),我不列舉,你們自己用到哪個(gè),自己去官網(wǎng)找更新,提醒下gcdsocket也有更新,自己去gitbub下載下。
3. 本地搭建nat64測(cè)試
1) 這個(gè)環(huán)境搭建的要測(cè)試通過(guò),這是最基本的要求。搭建流程百度很容易找到。
2) 建議大家用wireshark抓包看看,確定下客戶端會(huì)不會(huì)是用了ipv4進(jìn)行了訪問(wèn)。不知道可不可行。
4. 蘋(píng)果那邊訪問(wèn)不了
這個(gè)種情況一定要確定上面的步驟完成了,然后到蘋(píng)果那邊還是不行的話,這可能是你的域名提供商、你的服務(wù)器訪問(wèn)不穩(wěn)定造成的,你可以像你的域名、服務(wù)器運(yùn)營(yíng)商申訴:Our app works on DNS64/NAT64 environment . please help check again.?
當(dāng)然是基本沒(méi)用,這世界上的人都一樣,你別人能過(guò),為什么你不能過(guò),肯定不是我的問(wèn)題,沒(méi)人會(huì)幫你的。
------------------------------------------------------------------
大部分人,基本上解決了以上,都不會(huì)出現(xiàn)問(wèn)題,如果你真的因?yàn)镮PV6審核通過(guò)不了,找運(yùn)營(yíng)商也會(huì)跟你統(tǒng)一回復(fù):“不關(guān)我的事”,這時(shí)候你們肯定都沒(méi)轍了,我寫(xiě)以下的,只是給那些沒(méi)有過(guò)的人看,你們沒(méi)處理過(guò)以下情況的人過(guò)了,就當(dāng)看不見(jiàn)就可以了,特別是那些運(yùn)營(yíng)商的人更要當(dāng)看不見(jiàn)。我清楚的記得好幾個(gè)別打回N次,然后通過(guò)下面這個(gè)方法終于審核通過(guò)了
5. DNS AAAA記錄
我不是理論派,簡(jiǎn)單看了下NAT64/DNS64原理,在這個(gè)這個(gè)技術(shù)下,查詢域名信息中的A記錄(IPv4地址)合成到AAAA記錄(IPv6地址)中,返回合成的AAAA記錄用戶給IPv6客戶端用戶訪問(wèn),而審核不過(guò),也可能是因?yàn)檫@個(gè)V6地址在蘋(píng)果那邊訪問(wèn)不了。
我們想辦法讓這個(gè)AAAA記錄能夠穩(wěn)定訪問(wèn),這里我們需要一些DNS服務(wù)商的幫助,幫我們直接生成一個(gè)ipv6的訪問(wèn)地址,手動(dòng)添加到AAAA記錄中。其實(shí)原理就是,本來(lái)是通過(guò)蘋(píng)果的NAT64/DNS64生成的地址,現(xiàn)在換成了用DNS服務(wù)商的NAT64/DNS64生成,也讓蘋(píng)果訪問(wèn)的時(shí)候看起來(lái)像一個(gè)真的V6地址一樣。
1) DNSPOD,這是一個(gè)被打回來(lái)的網(wǎng)友,然后使用這個(gè)服務(wù)后審核通過(guò)了,解決鏈接,如果看不懂的,可以自己網(wǎng)上找一下教程。
2) GODADDY 也是上面的網(wǎng)友提供的,但是使用它被打回來(lái)的,供參考
3) 6BOX,付費(fèi)的,很貴。
6. 如何測(cè)試服務(wù)器的網(wǎng)絡(luò)已經(jīng)支持IPV6,
只有做了步驟5才可以且需要做這個(gè)操作做校驗(yàn),沒(méi)手動(dòng)添加dns aaaa的是不需要這些操作的,確保這個(gè)地址的訪問(wèn)的穩(wěn)定性。
通過(guò)網(wǎng)站 http://ipv6-test.com/validate.php 檢測(cè)域名的V6訪問(wèn)是否正常,第一個(gè)打勾代表dns正常,第二個(gè)打勾,需要服務(wù)器80端口或者443端口沒(méi)被禁用,只有你操作了步驟5,這個(gè)才能操作才能正常。
或者 http://www.subnetonline.com/pages/ipv6-network-tools/online-ipv6-ping.php,根據(jù)頁(yè)面打印數(shù)據(jù)查看延遲,會(huì)不會(huì)丟包。
7. 服務(wù)端主動(dòng)發(fā)數(shù)據(jù)給客戶端
這種情況,不是指socket回發(fā)數(shù)據(jù)給客戶端,指的是服務(wù)端記錄客戶端的ip地址端口后,主動(dòng)發(fā)數(shù)據(jù)給客戶端,因?yàn)镹AT64/DNS64 是單向的,只能IPV6訪問(wèn)IPV4,所以這個(gè)過(guò)程就會(huì)失敗,其實(shí)這個(gè)過(guò)程服務(wù)端也變成是客戶端的角色了,如果有這種情況,我也不知道怎么辦。除非你有真實(shí)的IPV6地址。
------------------------------------------------------------------
這是大部分小企業(yè)的解決方案,如果你們服務(wù)器網(wǎng)絡(luò)有真實(shí)的IPV6地址的話,就不需要考慮這些了。
------------------------------------------------------------------
很多沒(méi)有加AAAA已經(jīng)過(guò)了的人,他們看到別人加AAAA,就會(huì)莫名給對(duì)方套上煞筆稱號(hào),你不過(guò)就肯定是你代碼問(wèn)題之類的,其實(shí)導(dǎo)致他們會(huì)有這種想法主要的原因是因?yàn)楹芏喾?wù)商用DNS AAAA宰開(kāi)發(fā)者的錢(qián),因?yàn)樗麄冇姓x感,所以他們反感。
我相信不過(guò)的大部分人已經(jīng)做好了1+2,本來(lái)這個(gè)客戶端需要做的就沒(méi)多少,也沒(méi)技術(shù)難點(diǎn),基本上更新庫(kù)就好了,我個(gè)人覺(jué)得,如果真的過(guò)不了,加個(gè)穩(wěn)定的AAAA,至少確保下蘋(píng)果訪問(wèn)時(shí)是穩(wěn)定的,再去找其他問(wèn)題的存在。有好幾個(gè)人是通過(guò)添加穩(wěn)定的AAAA記錄后,才成功通過(guò)審核的,這間接證明,有這么一群人他們的域名在蘋(píng)果那通過(guò)NAT64/DNS64就是訪問(wèn)不了,僅供參考。