微信公眾號開發之端口映射(內網穿透)


微信公眾號開發調試非常不便,又不至於在服務器搭建開發環境。如果微信公眾號的操作返回信息能發送到本機,那么就可以正常開發,設置斷點調試。

這就用到內外網的端口映射。

一、開始前先要有個微信公眾號,沒有也沒關系。去申請一個測試號,連接如下。

測試號入口

測試號申請好之后會得到APPID,appsecret等信息。接口配置中的  URL是今天的主角。這個地址一般是一個公網地址,需要把這個地址映射到內網的本機地址。

二、目前常用的端口映射工具有:

花生殼,NETAPPNgrok 等。

經測試

1、花生殼需要注冊付費,窮,又嫌麻煩。放棄。

 

官網:https://www.oray.com/

 

2、NETAPP需要注冊實名制,調試個程序還要實名?麻煩又怕信息泄露,沒用。

3、Ngrok 不用注冊,域名隨機

 

官網下載:https://ngrok.com/download

 

 

4、Ngrok(國內)需要注冊,但是隨便填寫信息。免費,域名固定。

 

官網:https://www.ngrok.cc/

 

Ngrok測試通過,也很方便,但是域名都被微信屏蔽,一個大寫的尷尬。Ngrok也不是今天的主角,注冊過程略過,自行搜索。

 

三、自建內外網映射。

 

GitHub搜索了一下,開源端口映射工具

 

https://github.com/yangan666/SuperNAT

 

https://github.com/SpringHgui/FastTunnel

 

https://github.com/hemaju/Wireboy.Socket.P2PSocket 

SuperNAT  需要安裝mariadb或mysql感覺配置復雜,沒有去嘗試。

 

FastTunnel 沒有成功,估計需要配置一下域名解析。

Wireboy.Socket.P2PSocket 這個莫名其妙的閃退,應該是我姿勢不對或者軟件不穩定。

最后選擇了 NSmartProxy,配置和使用簡單。

地址:

 

 

https://github.com/tmoonlight/NSmartProxy

 

NSmartProxy配置比較簡單。首先你需要一台具備獨立IP的服務器,微信開發80端口不能被其他程序占用。有時候IIS默認使用了80端口。

 

(1)下載服務版本(windows版本),在外網服務器解壓:

 

https://github.com/tmoonlight/NSmartProxy/releases/download/v1.2_final4/nspserver_scd_win_v1.2_final4.zip

服務器端配置方法,修改 appsettings.json 文件。提供三個端口就完了,這三個端口干啥用的,不管。

{

  "ReversePort": 10012, //反向連接端口

  "ConfigPort": 10014, //配置服務端口

  "WebAPIPort": 10013, //API服務端口,WEB訪問用的,客戶端測試也是這個端口。

  "ReversePort_Out": 0, //對外端口,如果服務端存在端口轉換需要配置此項,為0或者不配默認用內網端口

  "ConfigPort_Out": 0 //對外端口,如果服務端存在端口轉換需要配置此項,為0或者不配默認用內網端口

}

 

配好端口,外網服務器運行 NSmartProxy.ServerHost.exe ,出來一個黑黑的窗口。服務器OK。

2、客戶端下載winform版本,可視化配置。

 

https://github.com/tmoonlight/NSmartProxy/releases/download/v1.2_final4/nspclient_winform_v1.2_final4.zip

配好參數就開始吧。

這個軟件實現的功能就是把公網服務器的http://ip:80端口映射到本機的127.0.0.1:3710

注意:

127.0.0.1:3710 就是VS啟動之后的WEB地址,端口隨機的,照着改成自己的。

此例子中的端口 10012100131001480等都需要在雲服務器控制台開放訪問。如果是阿里雲服務器有個安全組配置。不開放訪問是無法正確鏈接的。

 

配置好,訪問http://公網IP  數據就會轉發到本機 127.0.0.1,VS設置斷點就可以中斷了。

 

《完》

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM