最近在项目中做支付模块,用到了支付宝的接口,但是苦于开发测试时(windows环境)内网无法被访问,支付宝无法回调。在网上查了很多资料发现了一个很简单的内网穿透方法,所以记录一下:
ngrok是一个反向代理,通过在公共的端点和本地运行的Web服务器之间建立一个安全的通道。ngrok可捕获和分析所有通道上的流量,便于后期分析与响应。
源码:https://github.com/inconshreveable/ngrok
ngrok1.x开源,ngrok2.x不开源
ngrok使用go语言开发,源代码分为客户端与服务器端。
国内免费服务器:http://ngrok.ciqiuwl.cn/,更多免费服务器请大家挖掘,资源共享:)
如果有服务器,仅客户端的使用是不复杂的,以上面的免费服务器为示例完成内网穿透
现在假定我的本地已成功部署了一个网站,访问地址为127.0.0.1,想内网穿透后被公网上的用户访问,一般步骤如下:
步骤1、下载windows版本的客户端(http://ngrok.ciqiuwl.cn/),解压。一般在为你提供代理服务器的网站上找你要下载的客户端
步骤2、在命令(cmd)行下进入到ngrok客户端目录下
步骤3、执行 ngrok -config=ngrok.cfg -subdomain xxx 80 //(xxx 是你自定义的域名前缀),建议批处理
这一步如果你认为太麻烦,可以直接运行目录下的start.bat批处理文件就不用进DOS环境了。运行start.bat直接跳过2,3步
步骤4、如果开启成功 你就可以使用 xxx.ngrok.xiaomiqiu.cn 来访问你本机的 127.0.0.1:80 的服务了,当然你必须确定的是你本机的Web是可以正常访问的。
注意:
如果你自己有顶级域名,想通过自己的域名来访问本机的项目,那么先将自己的顶级域名解析到120.25.161.137(域名需要已备案哦,80端口必须备案),然后执行 ngrok -config=ngrok.cfg -hostname xxx.xxx.xxx 80 //(xxx.xxx.xxx是你自定义的顶级域名)
上面的资料来自这篇博客,讲的非常详细:https://blog.csdn.net/zhangguo5/article/details/77848658?utm_source=5ibc.net&utm_medium=referral