直头炮废男 發表於 2020-12-9 15:29:00

微信公众号开发之端口映射(内网穿透)

<p>微信公众号开发调试非常不便,又不至于在服务器搭建开发环境。如果微信公众号的操作返回信息能发送到本机,那么就可以正常开发,设置断点调试。</p>
<p><strong>这就用到内外网的端口映射。</strong></p>
<p>一、开始前先要有个微信公众号,没有也没关系。去申请一个测试号,连接如下。</p>
<p>测试号入口</p>
<p>测试号申请好之后会得到APPID,appsecret等信息。接口配置中的&nbsp; URL是今天的主角。这个地址一般是一个公网地址,需要把这个地址映射到内网的本机地址。</p>
<p><img src="https://img2020.cnblogs.com/blog/12032/202012/12032-20201209145039018-324216578.png" alt="" width="740" height="330" loading="lazy"></p>
<p><span style="font-family: 宋体">二、目前常用的端口映射工具有:</span></p>
<p><span style="font-family: 宋体">花生壳,</span>NETAPP<span style="font-family: 宋体">,</span><span style="font-family: Calibri">Ngrok </span><span style="font-family: 宋体">等。</span></p>
<p><strong><span style="font-family: 宋体">经测试</span></strong></p>
<p><span style="font-family: 宋体">1、花生壳需要注册付费,穷,又嫌麻烦。放弃。</span></p>
<p>&nbsp;</p>
<p><span style="font-family: 微软雅黑">官网</span>:https://www.oray.com/</p>
<p>&nbsp;</p>
<p><span style="font-family: Calibri">2、NETAPP需要注册实名制,</span><span style="font-family: Calibri">调试个程序还要实名?麻烦又怕信息泄露,没用。</span></p>
<p><strong><span style="font-family: 宋体">3、</span><span style="font-family: Calibri">Ngrok 不用注册,域名随机</span></strong></p>
<p>&nbsp;</p>
<p>官网下载:<span style="text-decoration: underline">https://ngrok.com/download</span></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><strong><span style="font-family: 宋体">4、</span><span style="font-family: Calibri">Ngrok</span><span style="font-family: 宋体">(国内)需要注册,但是随便填写信息。免费,域名固定。</span></strong></p>
<p>&nbsp;</p>
<p>官网:https://www.ngrok.cc/</p>
<p>&nbsp;</p>
<p><span style="font-family: 宋体">Ngrok测试通过,也很方便,但是域名都被微信屏蔽,一个大写的<span style="font-size: 18px"><strong>尴尬</strong></span>。Ngrok也不是今天的主角,注册过程略过,自行搜索。</span></p>
<p><span style="font-family: 宋体"><img src="https://img2020.cnblogs.com/blog/12032/202012/12032-20201209150003398-1780937182.png" alt="" loading="lazy"></span></p>
<p>&nbsp;</p>
<p><strong><span style="font-family: 宋体">三、自建内外网映射。</span></strong></p>
<p>&nbsp;</p>
<p>GitHub搜索了一下,<span style="font-family: 宋体">开源端口映射工具</span></p>
<p>&nbsp;</p>
<p><span style="text-decoration: underline">https://github.com/yangan666/SuperNAT</span></p>
<p>&nbsp;</p>
<p><span style="text-decoration: underline">https://github.com/SpringHgui/FastTunnel</span></p>
<p>&nbsp;</p>
<p><span style="text-decoration: underline">https://github.com/hemaju/Wireboy.Socket.P2PSocket</span>&nbsp;</p>
<p>SuperNAT&nbsp;&nbsp;<span style="font-family: 宋体">需要</span><span style="font-family: &quot;Segoe UI&quot;">安装</span>mariadb或mysql<span style="font-family: 宋体">,</span><span style="font-family: 宋体">感觉配置复杂,没有去尝试。</span></p>
<p>&nbsp;</p>
<p><span style="text-decoration: underline">FastTunnel&nbsp;</span><span style="font-family: 宋体; text-decoration-line: underline">没有成功,估计需要配置一下域名解析。</span></p>
<p><span style="font-family: 宋体; text-decoration-line: underline">Wireboy.Socket.P2PSocket&nbsp;这个莫名其妙的闪退,应该是我姿势不对或者软件不稳定。</span></p>
<p><span style="font-family: 宋体; text-decoration-line: underline">最后选择了 <strong>NSmartProxy</strong>,配置和使用简单。</span></p>
<p><span style="font-family: 宋体; text-decoration-line: underline">地址:</span></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><strong><span style="text-decoration: underline">https://github.com/tmoonlight/NSmartProxy</span></strong></p>
<p>&nbsp;</p>
<p>NSmartProxy<span style="font-family: 宋体">配置比较简单。</span><span style="font-family: &quot;Segoe UI&quot;">首先你需要一台具备独立</span>IP的服务器,微信开发80端口不能被其他程序占用。有时候IIS默认使用了80端口。</p>
<p>&nbsp;</p>
<p><span style="font-family: 宋体">(1)下载服务版本(</span>windows<span style="font-family: 宋体">版本),在外网服务器解压:</span></p>
<p>&nbsp;</p>
<p>https://github.com/tmoonlight/NSmartProxy/releases/download/v1.2_final4/nspserver_scd_win_v1.2_final4.zip</p>
<p><span style="font-family: 宋体">服务器端配置方法,修改</span> appsettings.json <span style="font-family: 宋体">文件。提供三个端口就完了,这三个端口干啥用的,不管。</span></p>
<div class="cnblogs_Highlighter">
<pre class="brush:javascript;gutter:true;">{

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

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

"WebAPIPort": 10013, //API服务端口,WEB访问用的,客户端测试也是这个端口。

"ReversePort_Out": 0, //对外端口,如果服务端存在端口转换需要配置此项,为0或者不配默认用内网端口

"ConfigPort_Out": 0 //对外端口,如果服务端存在端口转换需要配置此项,为0或者不配默认用内网端口

}
</pre>
</div>
<p>&nbsp;</p>
<p>配好端口,外网服务器运行&nbsp;NSmartProxy.ServerHost.exe ,出来一个黑黑的窗口。服务器OK。</p>
<p>2、<span style="font-family: 宋体">客户端下载</span>winform<span style="font-family: 宋体">版本,可视化配置。</span></p>
<p>&nbsp;</p>
<p><span style="text-decoration: underline">https://github.com/tmoonlight/NSmartProxy/releases/download/v1.2_final4/nspclient_winform_v1.2_final4.zip</span></p>
<p><img src="https://img2020.cnblogs.com/blog/12032/202012/12032-20201209150745603-1911181772.png" alt="" loading="lazy"></p>
<p>配好参数就<strong>开始</strong>吧。</p>
<p>这个软件实现的功能就是把公网服务器的http://ip:80端口映射到本机的127.0.0.1:3710</p>
<p>注意:</p>
<p>127.0.0.1:3710 就是VS启动之后的WEB地址,端口随机的,照着改成自己的。</p>
<p>此例子中的端口 10012<span style="font-family: 宋体">,</span><span style="font-family: Calibri">10013</span><span style="font-family: 宋体">,</span><span style="font-family: Calibri">10014</span><span style="font-family: 宋体">,</span><span style="font-family: Calibri">80</span><span style="font-family: 宋体">等都需要在云服务器控制台开放访问。如果是阿里云服务器有个安全组配置。不开放访问是无法正确链接的。</span></p>
<p>&nbsp;</p>
<p><span style="font-family: 宋体">配置好,访问http://公网IP&nbsp; 数据就会转发到本机 127.0.0.1,VS设置断点就可以中断了。</span></p>
<p>&nbsp;</p>
<p><span style="font-family: 宋体">《完》</span></p>
<p>&nbsp;</p>
<p> </p>
<p>&nbsp;</p><br><br>
来源:https://www.cnblogs.com/onecool/p/14108865.html
頁: [1]
查看完整版本: 微信公众号开发之端口映射(内网穿透)