一. 如何實作外網通路本機
1. 運作本機服務,如:NodeJS跑起來
2. 上一步我們隻實作了自己通路,但如何讓外網能通路到你機子。有兩種情況
(1)你上網沒有用路由,營運商單獨分給你一個外網IP位址,那你直接可以用你的IP讓外網的同學來通路你的網站,我這裡啟動NodeJs用的是3000端口,是以形式為:XX.XX.XX.XX:3000。那我們怎麼知道自己的IP位址,隻要在百度搜尋“IP查詢”,第一個就是。
(2)用了路由器,一個路由器帶了好幾台電腦,這就需要你去路由管理頁面去設定一下,端口映射,讓别人通路你們的IP位址時,映射到你的電腦,在浏覽器中輸入192.168.1.1(以你的路由為準),進入路由管理頁面,找到端口映射,把(路由的端口)映射到你(本機的ip+端口),這樣外網通路(路由的外網ip+端口)就能找到你的本機位址
二. 為什麼設定了端口映射但是通路不了
1. 你能搜尋到這裡,沒猜錯的話,你已經百度過這些問題了,或許已經找遍了滿地的教程。你想實作路由器端口映射,可是總是無法正常連上。可無論如何按部就班地照做,還是無法成功。甚至曾經一度可以,而最近怎麼也不行了
因為——你沒有了公網IP。
2. 為什麼沒有了?
無論是電信、聯通、還是移動或鐵通,從ADSL更新之後,就已經開始支援了共享公網IP的方式,通過一系列的網絡架構,使得無需為每一個單獨的使用者配置設定一個IP位址,一是因為IP位址是非常稀缺的,二是為了更高的安全性。并且,對絕大多數寬帶使用者的絕大多數軟體而言,公網IP并不是必須的,于是寬帶有了這樣的調整。
這樣的網絡架構,可以簡單了解為在你的路由器外,又接了一層路由器,然後外面才是原來的公網環境。這樣,按正常了解,需要成功設定端口映射,需要在兩層路由器上都要設定,但是,外面那層路由,在電信機房,不開放給使用者設定的。
不過,某些省份或某些城市,因為一些遺留問題,還沒有實作這樣的兩層路由的架構,是以還可能存在公網IP,但是,這樣的情況不多,目前有測試過的地區(2016年),安徽、福建的電信,一部分是可以的。其他地區,如四川、重慶、北京、浙江、江蘇等等大多數省市,都已經沒有了。
對于聯通、移動、鐵通等等網絡,他們從基礎架構上,就沒有對使用者開放公網IP服務。倒是老的ADSL,2M-4M帶寬以下的那種,用電話線的,可能是支援的。
3. 如何驗證這個情況呢?
進入路由管理界面找到路由的ip位址和百度ip位址比對是否一樣,如果路由器裡顯示的位址,與百度裡顯示的不一樣,那麼就印證了這個情況。
4. 如何徹底解決?
徹底解決,得從原理說起,路由器讓多個内部機器能共享IP,是采用了一個叫做NAT的技術,這也使得通常情況下,裡面可以往外連,而外面不能往裡連。
如果要外面能連進來,則需要單獨設定,如同你在家用路由上做的設定一樣,外面那個電信的大路由,也要做一層設定。但這是電信機房的管理範圍,使用者沒有這個權限。
電信也有提供公網IP的服務,不過價格就不是一般水準了,一般10M的光纖,帶公網IP,每月價格在1千到2千左右,這個業務,叫做:“專線”,如果确實願意花這個費用解決問題,可以直接咨詢電信開通。
對于普通情況下,想免費或廉價地解決,通常使用這個方法,技術上叫做:“隧道轉發”
5. 何為隧道轉發
原理是通過一台公網的伺服器提供IP位址,讓本地用戶端預先與它取得連接配接,通過指定一定的轉發規則,将外部請求轉發到本地用戶端,本地用戶端再将請求發往原本需要映射的位址上,而外部連接配接位址,則使用此伺服器提供的IP位址與端口即可。這樣的方式,需要在機房額外托管一台伺服器,并承擔相應的伺服器費用。
路由俠就是這樣一款軟體,由我們來提供伺服器,使用者隻需要下載下傳用戶端,即可完成隧道轉發。在一定帶寬與流量的範圍内,是完全免費的。對大流量使用者也提供了額外的付費業務。
原文位址:http://bbs.luyouxia.com/thread-339-1-1.html