使用 ngrok 解决测试时外部系统无法访问本地网络问题

问题

日常开发中有一些场景会有这样的诉求,就是外部系统 callback 回调本系统,但是本系统没有提供外部访问的 IP 或者域名;比如微信公众号测试号开发,就需要填写一个 URL,这个 URL 是开发者用来接收微信消息和事件的接口 URL,那如果这个 URL 是本地的,微信服务器肯定是无法访问的。

对于这种情况,如果你本地机器可以提供公网访问的能力,那自然是没有问题的;如果不行,可能就需要考虑买一些云服务器来测试,但是这种测试肯定是没有直接本地测试(包括 debug)来的直接。

还有一种办法就是通过 映射端口 把本地端口映射到外网,这个可以借助一些工具,比如 ngrok.

ngrok

ngrok 的使用非常简单,分分钟上手; 下载安装包 -> 解压 -> 打开终端。。

可以通过此链接进行下载 ngrok 下载官网。这里下载需要账号,支持 github 和 google 三方来授权登录,如果你有这些三方账号,可以直接通过三方账号进行登录即可。

登录之后,你可以在下图中的位置找到你自己的 token

然后通过如下指令配置 token

1
./ngrok authtoken xxxx

最后就是做端口映射,比如你的本地服务端口是 8080

1
./ngrok http 8080

启动之后就会有个域名,如下图

这样你可以可以将 https://4644-183-162-254-123.ngrok-free.app 作为你的外部网络访问的域名入口了。这里需要注意一点 https://9d15-183-162-254-123.ngrok-free.app 不需要再带端口了,因为这个链接映射的就是 http://localhost:8080。

使用 ngrok 解决测试时外部系统无法访问本地网络问题

http://www.glmapper.com/2023/04/26/tools/tool-ngrok/

作者

卫恒

发布于

2023-04-26

更新于

2023-04-26

许可协议

评论