我们在调试移动端页面,尤其是调试微信页面的时候,会遇到这样的情况,手机连着公司的wifi,开发环境(台式机)插着公司的网线,我们要用手机来访问开发环境下的页面。这个时候,如果网线和wifi是在同一个网段,那么直接在手机访问电脑的ip就可以访问到我们搭在本地的web服务。但是,很多时候,公司的网络并不是这么架设的,wifi和网线不在一个网段,那么,通过上述方法就无法访问到了。

有时候调试必须在手机上进行,在chrome下的模拟无法满足。这时候怎么办呢?之前我采取的是这样的办法,电脑上插一个360wifi(插USB孔的那种),然后共享出热点,手机连接到这个热点上网,就可以访问到开发环境了。如果需要查看http请求,在电脑上打开fiddler,设置一个代理,然后在手机上设置wifi的代理为fiddler,(端口默认是8888)。这样来自手机的请求就会被fiddler捕获到,你就能使用fiddler的强大功能来调试代码了。
 
上面这个办法挺方便的,但是需要一个小小的硬件,360wifi。你可以买一个,非常便宜,百度也有相同的产品。那如果我们手边没有这个硬件可怎么办呢?接下来该主角出场了,那就是ngrok。
 
ngrok是个什么玩意呢?其实它就是一个反向代理,我们机器上运行起这个服务后,它可以把本地的一个端口代理到公网。代理到公网是什么概念?公网啊,那就是大家都可以访问到了,没有任何网络限制。当然,我们的测试机,连接到任何网络下的手机也是可以的了。
 
然而不幸的时,ngrok架设在美国,已经被我们伟大的祖国给墙掉了。但是!一位良心网友在国内架设了一台服务器,我们可以任意使用,鼓掌!
 
废话说了这么多,我们来看看ngrok到底怎么使用呢?其实是相当简单的。
 
一、下载相关文件
首先,从这位仁兄架设的网站上(http://www.tunnel.mobi/)下载所需的ngrok软件,windows、Linux、Mac各平台都有哦。我的是windows环境,下载解压后是一个ngrok.exe文件。然后呢,还需要一个配置文件,同样也提供了下载,下载后是一个ngork.cfg文件。
 
二、运行服务
下载后的两个文件,我们随便找一个目录放好就行,例如,我放在D盘,这样就行了:
然后,打开cmd终端,输入如下命令来启动服务:ngrok -config ngrok.cfg -subdomain lvdabao 80
用-config参数来指定配置文件,-subdomain指定访问的子域名称和本地的端口,出现以下界面,说明启动成功了:
注意一点,这个子域名称是可以随意起的,但不能与别人的重名,因为这个名称是你的代理的唯一标识,之后用http://lvdabao.tunnel.mobi/这个地址就可以访问到你本地的80端口了。只要是连在公网的任何一台设备都可以访问到了哦,好了,拿起你的手机吧。
 
三、进入调试界面
把服务启动起来还不够,我们的最终目的是要调试呀,我们得能捕获到http请求才行。要实现这个也相当简单,因为ngrok已经为你准备好了。真是相当贴心啊~
请看上面服务运行起来后的信息,有一项Web Interface  127.0.0.1:4040,我们直接访问它就可以进行调试了,在你本地浏览器输入这个地址,试试看吧。
很炫酷有没有,你可以看到http请求头和返回的内容,你需要的都有了。
而且,还有一个更好用的功能,看到那个Replay按钮了吗,点击它可以手动再发起一次你选中的请求,简直不能更赞,这样我们调试某个数据接口时,也省了老去手机上刷新页面了,尤其是调试微信页面,不必每次都去刷该死的二维码了。
这个利器的基本用法就介绍到这里,能满足我们开头提出的需求了。其实它还有更强大的功能,有兴趣的可以FQ去官网查看文档。最后再次为国内的这位仁兄点赞,大家也可以去他搭建的网站上面查看相关资料:http://www.tunnel.mobi/

用手机访问本地环境的利器ngrok的更多相关文章

  1. 手机访问php环境移动端静态页面

    痛点 在做一个移动端H5页面,手机要调试访问,不方便.就想说能不能手机连接电脑的php项目,进行调试修改. 需要 手机要跟电脑同处在同个局域网中,公司的话一般是局域网,实在没有的话花个20块买个随身W ...

  2. 手机访问本地php项目遇到的问题及解决

    做html5的本地应用要调试后台,学了下php 按照和连j2ee的时候一样,电脑发射wifi,ipconfig..等等  发现tomcat的可以访问,apache的不能访问,搜索好久,没找到解答, j ...

  3. 手机访问电脑wampServer本地环境页面

    1.  电脑需要安装好wamp,我这里用的2.0版本,下载地址   http://pan.baidu.com/s/1jG31hbS   2. 电脑需要有个wifi,我用的360wifi   3. 启动 ...

  4. 手机访问电脑本地localhost网页

    项目需要用手机访问电脑本地网页,从而可以调试项目,对代码的理解的快一点 重点 确保手机和电脑在同一个局域网 可以通过手机开热点电脑连接或者电脑开便携式热点手机连接 确保电脑的防火墙是关闭的 打开apa ...

  5. Android手机浏览器访问本地网络相关问题

    为了测试开发的手机网站,常常需要使手机直接访问本地网络. 在这个过程中碰到几个问题,记下来供以后参考 1. 在本地主机运行apache后,使用localhost和127.0.0.1可以访问页面,但使用 ...

  6. 手机APP应用外网访问本地WEB应用

    手机APP应用外网访问本地WEB应用 本地安装了WEB服务端,手机APP应用只能在局域网内访问本地WEB,怎样使手机APP应用从公网也能访问本地WEB? 本文将介绍具体的实现步骤. 1. 准备工作 1 ...

  7. Holer实现手机APP应用外网访问本地WEB应用

    手机APP应用公网访问内网WEB应用 本地安装了WEB服务端,手机APP应用只能在局域网内访问本地WEB,怎样使手机APP应用从公网也能访问本地WEB? 本文将介绍使用holer实现的具体步骤. 1. ...

  8. 手机连接wifi 访问本地服务器网站

    手机连本地wifi后访问 http://192.168.155.1:8001/loc 版权声明:本文为博主原创文章,未经博主允许不得转载.

  9. vue本地项目设置通过手机访问

    最近再用vue写一个移动端的应用,想通过手机访问看看页面效果,于是有了下文. 1.shif+右键打开命令行工具,输入ipconfig,回车,得到电脑的ip 2.找到工作目录下的config文件夹中的i ...

随机推荐

  1. 使用odoo价格表[pricelist]对价格进行特别处理,如 .99

    问题1, 销售价格 自动设置为 9.99 问题2, 将销售价格从 10.5 设置为 10.00 这些都可以用 priceList 实现,具体实现如下 首先,启用 priceList 在 价格表项目 有 ...

  2. EFM32外设模块—USART V1.00

    http://wenku.baidu.com/link?url=hx-pumUzdpS-AbD1OhEW11Jl6H8wex2DNsv4IcZwrgL-drwuUzZ6E1L64fCnAfdUOObK ...

  3. 将List转换为二维数组(result)

    result的数据结构为List<Map<String,Object>> //将List转换为二维数组String[][] String[][] z = new String[ ...

  4. html5表单验证

    表单验证为终端用户检测无效的数据并标记这些错误,是一种用户体验的优化. 下面展现浏览器自带的验证功能也可在移动端中查看: HTML部分: <!DOCTYPE html> <html ...

  5. Spring overview

    引子 接触Java很多年了,各种framework,却从未系统的去了解过.最近突然想清楚一件事,就是当下的目标——Focus on Java-based RESTful WS & JS.而之于 ...

  6. ubuntu 安装JAVA jdk的两种方法:

    ubuntu 安装jdk 的两种方式: 1:通过ppa(源) 方式安装. 2:通过官网下载安装包安装. 这里推荐第1种,因为可以通过 apt-get upgrade 方式方便获得jdk的升级 使用pp ...

  7. JAVA求圆的面积

    import java.text.DecimalFormat;import java.util.Scanner; public class TheAreaOfCircle { public stati ...

  8. 启动tomcat时遇到的问题

    1.当启动Tomcat时,出现了如下信息: The APR based Apache Tomcat Native library which allows optimal performance in ...

  9. 【Visual Lisp】块专题

    ;;关于块 ;;(0)模型空间→块表记录→块图元:顶层的是模型空间→模型空间下有很多图元和一些块表记录→块表记录又有很多图元(此时块表记录就相当于模型空间),一个块表记录可以有多个insert块→同一 ...

  10. iOS 选择的照片或者拍照的图片上添加日期水印

    1..引入框架 #import "CLLocation+GPSDictionary.h"#import "NSDictionary+CLLocation.h" ...