微信公眾號開發調試非常不便,又不至于在服務器搭建開發環境。如果微信公眾號的操作返回信息能發送到本機,那么就可以正常開發,設置斷點調試。
這就用到內外網的端口映射。
一、開始前先要有個微信公眾號,沒有也沒關系。去申請一個測試號,連接如下。
測試號申請好之后會得到APPID,appsecret等信息。接口配置中的 URL是今天的主角。這個地址一般是一個公網地址,需要把這個地址映射到內網的本機地址。

二、目前常用的端口映射工具有:
花生殼,NETAPP,Ngrok 等。
經測試
1、花生殼需要注冊付費,窮,又嫌麻煩。放棄。
官網:https://www.oray.com/
2、NETAPP需要注冊實名制,調試個程序還要實名?麻煩又怕信息泄露,沒用。
3、Ngrok 不用注冊,域名隨機
官網下載:https://ngrok.com/download
4、Ngrok(國內)需要注冊,但是隨便填寫信息。免費,域名固定。
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版本,可視化配置。

配好參數就開始吧。
這個軟件實現的功能就是把公網服務器的http://ip:80端口映射到本機的127.0.0.1:3710
注意:
127.0.0.1:3710 就是VS啟動之后的WEB地址,端口隨機的,照著改成自己的。
此例子中的端口 10012,10013,10014,80等都需要在云服務器控制臺開放訪問。如果是阿里云服務器有個安全組配置。不開放訪問是無法正確鏈接的。
配置好,訪問http://公網IP 數據就會轉發到本機 127.0.0.1,VS設置斷點就可以中斷了。
《完》
浙公網安備 33010602011771號