Sunny-Ngrok:如何在沒有公網ip或者二級運營商實現外網訪問內外機器,實現本地開發調試。

不少狀況下,咱們須要對客戶延時作好的demo、服務器放在家裏或者公司沒有公網,怎麼實現外網訪問?php

20190706001252232.png
這是我本地的一個演示地址,我要在外網訪問須要怎麼操做呢?shell

經過路由器的端口轉發實現

一、進入路由器選擇端口轉發

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2E1NzQwNDU2,size_16,color_FFFFFF,t_70

二、添加轉發信息

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2E1NzQwNDU2,size_16,color_FFFFFF,t_70
添加端口轉發信息,外部端口使用 10000 內部端口是 80,也就是說外網經過 ip:10000 訪問的時候實際上訪問到的是 192.168.1.175:80 這個ip的80端口服務器

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2E1NzQwNDU2,size_16,color_FFFFFF,t_70
在路由器裏面能夠看到個人外網ip,或者在 http://www.ip138.com 也能夠看到
2019070600172516.png
只要讓在外網的人經過 http://123.121.142.122:10000/ 就能夠訪問到我 192.168.1.175:80 這個端口裏面的php文件了微信

若是想要進行 ssh端口 或者 3389 遠程訪問也是同樣的方式操做。微信開發

經過路由器的dmz方式實現

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2E1NzQwNDU2,size_16,color_FFFFFF,t_70
這裏填寫了我一個樹莓派的地址,而後我經過在騰訊雲服務器使用ssh配合個人外網ip登錄樹莓派。只須要在騰訊雲的服務器上輸入如下命令就能夠登錄我家裏的樹莓派。ssh

ssh pi@123.121.142.122

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2E1NzQwNDU2,size_16,color_FFFFFF,t_70
經過上圖已經能夠看到我經過騰訊雲的服務器使用ssh登錄到了個人樹莓派裏面。這種是在一級運營商拉的網線有公網ip的狀況下能夠經過路由器實現的外網訪問內網服務。異步

注意:在作http服務的時候80端口是不能外網訪問的,因此能夠經過其餘端口訪問,例如我就用了10000端口在外網訪問,可是在開發微信的時候這點仍是不方便,微信只接受80或者443

這些功能在你接入一級運營商的時候是能夠用的,可是遇到二級運營商或者小區寬帶的時候,這就頗有心無力了。由於你從這些運營商獲得的ip是一個內ip,你本身路由器至關於一個二級路由器,因此在二級路由器端口轉發可是在一級路由器並無,也就是說相似住宅樓同樣,你把你加的房門打開了,可是一樓大廳的大門沒有打開,外面的人仍是進不來。網站

那咱們還有沒有什麼別的辦法能讓外網不須要加端口直接訪問到80呢?答案是確定有的。最簡單的辦法是經過 Sunny-Ngrok 實現,僅須要在平臺註冊帳號密碼設置好映射的信息,只要一條命令就能實現外網訪問內網了。spa

一、打開 註冊界面 註冊一個帳號

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2E1NzQwNDU2,size_16,color_FFFFFF,t_70

二、開通隧道

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2E1NzQwNDU2,size_16,color_FFFFFF,t_70
因爲網站提供了Ngrok和Frp兩種服務,所以用戶須要本身選擇想要開通的類型。操作系統

注意:詳細閱讀網站彈出來的提示,由於很重要
注意:詳細閱讀網站彈出來的提示,由於很重要
注意:詳細閱讀網站彈出來的提示,由於很重要

三、填寫隧道信息

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2E1NzQwNDU2,size_16,color_FFFFFF,t_70

根據本身實際狀況填寫

隧道開通以後不能更換協議和服務器
隧道開通以後不能更換協議和服務器
隧道開通以後不能更換協議和服務器

四、下載客戶端

返回首頁下載客戶端
watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2E1NzQwNDU2,size_16,color_FFFFFF,t_70
遇到問題的時候能夠觀看使用教程哦,裏面提供了比較詳細的教程。選擇本身開通的服務類型和操做系統版本下載。

網站有兩種客戶端,記得要匹配本身的開通服務類型
網站有兩種客戶端,記得要匹配本身的開通服務類型
網站有兩種客戶端,記得要匹配本身的開通服務類型

對於開發者建議開通Ngrok、由於在作微信開發或者支付異步回調的時候能夠經過127.0.0.1:4040 實現請求查看和重發,對於開發人員來講比上傳代碼到服務器和寫日誌查看日誌更省心省力省時間。

五、啓動隧道

必定要觀看官網教程,注意不通的服務類型有不通的啓動方式區分,Windows進入cmd命令啓動不是雙擊;Linux經過終端啓動。

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2E1NzQwNDU2,size_16,color_FFFFFF,t_70

這個是我在平臺上的配置

20190706003810870.png
這個是我在mac的啓動方式

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2E1NzQwNDU2,size_16,color_FFFFFF,t_70
啓動成功的界面是這樣的,我經過上面顯示出來的地址就能夠訪問到個人路由器了,由於個人路由器ip是192.168.1.1 我這裏隧道映射的ip也是 192.168.1.1

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2E1NzQwNDU2,size_16,color_FFFFFF,t_70

這樣就能夠看到已經實現了外網訪問內網的機器了。

若是是開發者經過 http://127.0.0.1:4040 能夠獲得更豐富的功能。

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2E1NzQwNDU2,size_16,color_FFFFFF,t_70

能夠看到右邊有一個再次請求和下面在內網返回的信息都已經返回回來了,在作異步支付的時候就能夠在本地開發了,而且能夠看到代碼是哪裏報錯了。

相關文章
相關標籤/搜索