1. 前言
最近做掃碼登錄功能, 就會發現一個問題, 對接第三方時會出現外網訪問不到本地服務的情況; 就像我這里寫個回調方法, 但是微信無法訪問我本機服務啊. 是吧這樣就無法進行本地調試, 直接上線或者直接提測風險很大, 怕是Bug 一堆 o(╥﹏╥)o
2. 內網穿透
2.1 解釋說明
內網穿透原理是映射端口, 能讓外網的電腦找到處於內網的電腦; 簡單說就是局域網的服務外網訪問不到,通過內網穿透技術來實現外網到內網的端口映射, 進行實現外網訪問內網服務.
2.2 工具支持
市場上流行的支持內網穿透的工具包括 Ngrok, Natapp, 小米球, Sunny-Ngrok, echosite, Ssh + autossh, Lanproxy, Spike, Frp 等;
推薦使用Ngrok, 大多工具其實是基於Ngrok 進行二次開發的;
這里介紹下花生殼的內網穿透功能.
3. 花生殼內網穿透
花生殼官網: https://www.oray.com/, 內網穿透只是他支持的其中一個業務, 本身支持功能還是很多的, 想了解的話, 可以看完這篇文章再去了解, 嘻嘻.
3.1 注冊用戶獲取免費域名
首先注冊用戶(我這里從新用戶開始了), 注冊后微信關注公眾號, 獲取免費的花生殼域名, 可用.
3.2 本機安裝花生殼 beta 版
官網下載花生殼 beta 最新版, 安裝后打開登錄, 賬號密碼同上面注冊的賬號密碼.
3.3 開通內網穿透服務
登錄后可以看到主頁面的三個功能.
我的域名, 目前就一個, 關注公眾號獲取的免費花生殼域名, 也可以購買, 如果你需要的話; 內網穿透就是支持外網訪問內網的功能, 自診斷, 檢查域名可用情況, 檢查內網穿透服務可用情況;
選擇內網穿透, 雙擊打開, 可以檢查一下我的域名, 正常情況如圖3-6 所示;
3.4 內網穿透配置
開通內網穿透服務后進入內網穿透可查看內網穿透列表, 目前還是沒有的.
4. 內網穿透測試
本地創建一個SpringBoot 項目, 配置端口為8080; 運行項目, 通過本地訪問localhost:8080 或192.168.80.56:8080, 都能直接訪問方法 getProjectName() 獲取到scancodelogin ;
開啟上面配置的內網穿透服務, 本機花生殼 beta 登錄狀態; 訪問域名即可映射到192.168.80.56:8080, 同樣能請求本機服務; 如圖4-2 所示
項目測試接口:
@RestController
public class ScanCodeLoginController {
@GetMapping(value = "/")
public String getProjectName() {
return "scancodelogin";
}
}
Power By niaonao