很多人询问本地调试公众号的方法。本文简单说一下公众号本地调试环境的搭建。
公众号对接需要使用备案过的域名以及80(http)或者443(https)端口,所以我们只需要将访问域名的请求转发到本地即可。
如果本地有外网IP,非固定也可以,可以在主路由上添加端口映射,设置一个外网服务端口,例如8077,8078等,注意普通外网ip的80,443,8080等不开放,只有固定ip且经过备案以后才会开通这几个端口。
现在家庭网络大部分没有外网ip,这种情况下,可以借助穿透将请求转发到本地,穿透的大致原理是内网里的穿透客户端连接云服务器的穿透服务端建立一个长连接,当有请求访问到云服务器的时候,云服务器的穿透服务端通过长连接,把请求传递给内网的穿透客户端,然后访问本地的服务,从而实现本地调试。
穿透可以使用的工具很多,比如花生壳,Nat123等,这些工具使用对方搭建好的服务器进行穿透访问。注意一点使用此类商业服务,需要解析自己的域名到服务商提供临时域名,服务商的域名都已经被微信拉黑,无法使用。
也可以自己搭建,下面说一下自己搭建的方法,使用的工具是frp,也有人用ngrok等,原理是一样的,都可以使用。frp是go开发的开源的一个穿透工具,源码地址:https://github.com/fatedier/frp 文末有编译好的可执行程序下载。
使用穿透需要有自己的服务器,没有服务器的可以趁着促销低价买一台,【点击进入腾讯云促销】,【点击进入阿里云促销】。
这里介绍另一个工具,由老张(细雨纷飞)开发,内核也是frp,只是做gui,方便配置,文末有下载链接。
首先添加一个解析,到你买域名的云服务商的后台,进入域名管理,然后进入解析面板,点击添加解析,解析一个调试用的二级域名到你的服务器ip,例如:

然后在安全组和防火墙里开放3个端口给穿透服务,例如22222,22223,22224

然后复制ZSGatewayMiniServ.exe到服务端并启动

按顺序填写,注意6,如果,服务器上没有运行其他服务,可以直接使用80,如果有正在运行的其他web服务,就需要另外的端口,然后使用反向代理转发到改端口,运行后9处显示success,即表示服务端运行成功。
下面运行客户端
本地运行ZSGatewayMiniClient.exe
填写服务器的ip或者域名,然后使用上图1处的端口,点击Get Configure

然后就会获取到服务器配置,并进入主界面,然后在端口处右键点击modify local port

然后改成本地的Unigui服务的端口比如 8505

修改好以后,点击左下角Start Nat Client,然后右侧日志处显示success即表示启动成功。
友情提示,用管理员启动。
我的服务器有其他web服务,80端口已经被iis使用,所以无法分配80给frp服务端,给frp分配的端口是81,然后iis新建站点,绑定域名,然后设置反向代理转发到81.


如果没有其他web服务,可以直接给服务端绑定80端口。
然后就完成了整个穿透工具的部署,看一下效果

已经可以使用刚才创建的二级域名,访问本地的web服务了。
提示,本地调试需要在公众号后台添加ip白名单。
相关工具下载:frp可执行文件下载,带GUI的工具下载
Comments | NOTHING