這篇文章花了好幾天居触,系統(tǒng)地梳理出了映射公網(wǎng)的幾種方式妖混。雖然是針對(duì)微信開發(fā)的外網(wǎng)服務(wù)器來尋找解決方案,但這個(gè)知識(shí)梳
理可能會(huì)在其他地方也受益轮洋。平常我也有用TeamViewer制市,在搜集資料的過程中也知道了其大致工作原理。還有一些免費(fèi)好用的反向代理軟件弊予,可能會(huì)在后
頭派上用場(chǎng)祥楣。
這篇干貨分享在此,轉(zhuǎn)載請(qǐng)注明:http://blog.csdn.net/sadshen/
一汉柒、映射公網(wǎng)的兩種方式介紹
1 動(dòng)態(tài)域名解析+端口映射(公網(wǎng)環(huán)境)
動(dòng)態(tài)域名解析误褪,俗稱DDNS。目前提供這種服務(wù)的廠商還挺多碾褂,我目前知道有幾家:
Oray花生殼
PubYun公云
No-IP
DynDNS
如果你對(duì)一個(gè)公網(wǎng)IP有權(quán)限兽间,那就可以采用這種方式。你的路由器的WAN口就是寬帶正塌,那這種方式就適用嘀略。DDNS的作用就是將WAN口分配到IP與域名綁定在一起,訪問這個(gè)域名乓诽,相當(dāng)于就訪問到了你的WAN口帜羊。于是你只要在路由器上做一個(gè)端口映射即可。
此種方式的局限性可能就是大部分運(yùn)營商都屏蔽了80等常用端口问裕,所以做微信開發(fā)要用到80端口的話這種方式就不大適合逮壁。
2 反向代理(內(nèi)網(wǎng)環(huán)境)
如果你在一家公司上班,公司內(nèi)部可能分了好幾級(jí)的路由粮宛,就比如我窥淆,那第一種方式就走不通。寫零java基礎(chǔ)搞定微信Server_3:搭建微信
Server本地開發(fā)環(huán)境那晚弄到半夜就是這個(gè)原因巍杈。哦忧饭,我當(dāng)然不是在加班。我在家里筷畦,房間用了一個(gè)二級(jí)路由词裤,那晚真真是搞死寶寶了。
下面這兩張圖可以快速了解反向代理鳖宾。
我們是采用本機(jī)與反向代理server組建網(wǎng)絡(luò)(相當(dāng)于一個(gè)虛擬局域網(wǎng))吼砂,訪問反向代理server的數(shù)據(jù)都被轉(zhuǎn)發(fā)到本機(jī)。
從有簡單一點(diǎn)的將內(nèi)網(wǎng)映射到外網(wǎng)的工具嗎鼎文?這個(gè)帖子中收獲良多渔肩。作者沙渺告訴我們:
實(shí)際上ngrok就是一種僅僅針對(duì)http單一用途的代理服務(wù)。ngrok的原理很可能并不是真正的內(nèi)網(wǎng)穿透拇惋,而是真的老老實(shí)實(shí)的充當(dāng)反向代理周偎,承擔(dān)所有實(shí)際發(fā)生的流量抹剩。
這方面的替代服務(wù)有l(wèi)ocaltunnel.me和pagekite等。
內(nèi)網(wǎng)穿透的應(yīng)用中蓉坎,通訊雙方必然首先對(duì)一個(gè)公網(wǎng)服務(wù)器主動(dòng)發(fā)起連接澳眷。。蛉艾。
各種相關(guān)的軟件都是如此钳踊,例如TeamViewer、Oray向日葵乃至QQ遠(yuǎn)程協(xié)助等伺通。就說這個(gè)ngrok箍土,其實(shí)也是需要通訊雙方連接ngrok中心服務(wù)器,甚至中心服務(wù)器的某些高級(jí)功能還提供付費(fèi)計(jì)劃對(duì)吧罐监。
于是乎吴藻,我們映射公網(wǎng)的工具魔慷,除了ngrok之外循签,又多了localtunnel.me和pagekite钞钙。
二击蹲、反向代理的實(shí)現(xiàn)
1 自己創(chuàng)建反向代理服務(wù)
用這種方式圈浇,成本較高椭更,需要三樣?xùn)|西:
服務(wù)器
代理服務(wù)端的監(jiān)聽轉(zhuǎn)發(fā)程序
目的服務(wù)端(同時(shí)也是面向代理服務(wù)器的客戶端)的主機(jī)轉(zhuǎn)發(fā)程序
如果你有服務(wù)器欺栗,那自己寫個(gè)轉(zhuǎn)發(fā)工具應(yīng)該是可以實(shí)現(xiàn)的们陆。比較省力的方式是參考ngrok的源碼屁药。ngrok是應(yīng)該濃墨重彩寫一番粥血,開源,自由酿箭,github上開源了V1.0版本
https://github.com/inconshreveable/ngrok/
一個(gè)在自己VPS搭建ngrok的實(shí)例复亏,https://imququ.com/post/self-hosted-ngrokd.html
很多人和我一樣,現(xiàn)階段就想做一個(gè)微信開發(fā)缭嫡,那自己花大精力去實(shí)現(xiàn)一個(gè)反向代理顯然不值得缔御。這時(shí)候就得從已有的軟件中進(jìn)行選擇。運(yùn)行穩(wěn)定妇蛀,成了最主要考慮的因素耕突。
2 廠商服務(wù)
Ngrok比較出名,提供免費(fèi)服務(wù)评架,但可惜容易被墻眷茁。那解決方式就是墻內(nèi)也搞Ngrok。由于我所知有限纵诞,僅僅把目前知道的幾家列出來上祈。(這里我可能先入為主了,因?yàn)槲野堰@些廠商粗暴地分為了Ngrok和非Ngrok,忽略了其他廠商們所做出的努力雇逞。)
Ngrok
免費(fèi),但會(huì)被墻茁裙。
Tunnel
昨晚測(cè)試塘砸,訪問不了。
localtunnel
可用
pagekite
可用
新花生殼
開通內(nèi)網(wǎng)映射晤锥,映射主機(jī)即可掉蔬。目前免費(fèi)版也要收取8塊錢的費(fèi)用就是了。
NAT123
功能同花生殼矾瘾,但似乎是免費(fèi)的女轿。
我貪圖省事,直接花錢認(rèn)證了花生殼壕翩,后面四種就沒再處理了蛉迹。看到別人用localtunnel和pagekite有成功的放妈,所以我就不搬了北救。