遇到的問題:
幫客戶上架App到AppStore被拒,給出的理由如下:
please review the IPv6 and App Review discussion on the Apple Developer Forum。
沒錯(cuò),要求我們必須支持ipv6,這種問題曾未有過,很奇葩,這跟審核人員網(wǎng)絡(luò)連接不上有關(guān)系。

若要滿足應(yīng)用支持IPV6需要滿足以下兩點(diǎn):
1、App本身是否兼容IPv6;
2、應(yīng)用服務(wù)器需支持IPV6。
本文只講解第2點(diǎn),一起從搭建環(huán)境開始吧!
一、安裝Nginx
1、從官網(wǎng)下載nginx,本文使用了最新穩(wěn)定版1.14.0。
https://nginx.org/en/download.html
2、安裝pcre庫
nginx的http模塊使用pcre來解析正則表達(dá)式,所以需要在linux上安裝pcre庫
yum install -y pcre pcre-devel
3、安裝zlib庫
zlib庫提供了很多種壓縮和解壓縮的方式,nginx使用zlib對(duì)http包的內(nèi)容進(jìn)行g(shù)zip,所以需要在linux上安裝zlib庫。
yum install -y zlib zlib-devel
4、安裝openssl
nginx不僅支持http協(xié)議,還支持https(即在ssl協(xié)議上傳輸http),所以需要在linux安裝openssl庫
yum install -y openssl openssl-devel
5、編譯安裝nginx
#上傳剛剛下載好的nginx
rz -y
# 解壓安裝包
tar -zxvf nginx-1.14.0.tar.gz
# 進(jìn)入解壓包
cd nginx-1.14.0
# 按需添加編譯參數(shù)
./configure --prefix=/usr/local/nginx --with-ipv6 ( --with-ipv6必須加,讓nginx開啟IPV6支持配置)
#編譯源碼
make
#安裝
make install
6、啟動(dòng)nginx
cd /usr/local/nginx/sbin/
./nginx

二、IPV6隧道配置
1、注冊(cè)賬號(hào):https://tunnelbroker.net/
2、創(chuàng)建隧道規(guī)則

3、設(shè)置公網(wǎng)ip

4、選擇一個(gè)隧道服務(wù)器,這里我選擇的是新加坡,香港的隧道服務(wù)器已滿。

5、完成創(chuàng)建,查看詳情

這里的Client IPv6 Address 是我們要用的IPv6 地址,之后解析域名(AAAA解析)的時(shí)候用的就是它(域名里不用寫“/64”)
6、配置信息
選擇IP的方式設(shè)置(這里選擇的是Linux-route2),然后將文本框中l(wèi)ocal ip需改成內(nèi)網(wǎng)IP,復(fù)制文本框中的內(nèi)容到服務(wù)器執(zhí)行


重要!由上圖執(zhí)行結(jié)果得知,服務(wù)器不允許IPV6,我們要先對(duì)服務(wù)器進(jìn)行設(shè)置。
三、配置服務(wù)器
1、vim /etc/modprobe.d/disable_ipv6.conf,將下面屬性改成0。
options ipv6 disable=0
2、vim /etc/sysconfig/network,將下面屬性改成yes。
NETWORKING_IPV6=yes
3、重啟網(wǎng)絡(luò)
service network restart
4、設(shè)置Linux內(nèi)核參數(shù),啟用ipv6。 vim /etc/sysctl.conf ,修改以下三個(gè)屬性為0。
net.ipv6.conf.all.disable_ipv6 = 0
net.ipv6.conf.default.disable_ipv6 = 0
net.ipv6.conf.lo.disable_ipv6 = 0
5、讓第四步設(shè)置生效,執(zhí)行以下命令。
sysctl -p
6、驗(yàn)證是否開啟IPV6,當(dāng)你看到inet6時(shí),表示已開啟成功。

7、回頭操作IPV6隧道配置中報(bào)錯(cuò)的地方

三、域名解析
1、本文使用阿里云的ECS及在阿里云注冊(cè)的域名。

2、修改nginx配置

3、測(cè)試ipv6隧道是否通的
ping6 he.net
執(zhí)行結(jié)果如下圖,恭喜你,ipv6隧道已經(jīng)打通了。

4、用 wget -6 http://xxxxxxx 來驗(yàn)證你的解析是否正確以及IPV6是否成功

四、測(cè)試填坑
1、ping6 ipv6.baidu.com

錯(cuò)誤原因:花了整整一天排除問題,發(fā)現(xiàn)并發(fā)服務(wù)器設(shè)置、操作失誤引起的,而是隧道問題……刪除重新隧道即可,這次我換成了“ Tokyo, JP”。
ping通了
2、用工具測(cè)試
http://ipv6-test.com/validate.php
image.png
當(dāng)你看到這些,表示此次ipv6實(shí)驗(yàn)已經(jīng)成功了,恭喜你!

