centos+nginx輕松搞掂ipv6

遇到的問題:

幫客戶上架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
啟動(dòng)成功

二、IPV6隧道配置

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

創(chuàng)建

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

公網(wǎng)ip

4、選擇一個(gè)隧道服務(wù)器,這里我選擇的是新加坡,香港的隧道服務(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í)行信息
服務(wù)器執(zhí)行結(jié)果

重要!由上圖執(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í),表示已開啟成功。


inet6

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


success

三、域名解析

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


域名解析

2、修改nginx配置


image.png

3、測(cè)試ipv6隧道是否通的

ping6 he.net

執(zhí)行結(jié)果如下圖,恭喜你,ipv6隧道已經(jīng)打通了。


success

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

解析成功

四、測(cè)試填坑

1、ping6 ipv6.baidu.com


ping不通

錯(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)成功了,恭喜你!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容