博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用Charles搭建反向代理
阅读量:6993 次
发布时间:2019-06-27

本文共 1496 字,大约阅读时间需要 4 分钟。

前言

在App开发的过程中,抓包是一个很常见的需求,而有些app的请求不会在网络设置代理时被抓到数据包,这里如果需要抓包就需要搭建反向代理

什么是反向代理

和正向代理相应的,正向代理代理客户端,反向代理代理服务端

需要准备的工作

  • 在自己电脑上面搭建一个可用的Charles
  • 需要抓包的远端服务的端口号和Host地址
  • 在自己电脑上面搭建一个本地DNS解析服务

具体步骤 (Mac下的操作,Windows也同理)

  1. 确保手机连接上Charles,自己电脑上面能够看到正常请求出来的数据包()
  2. 打开Charles,勾选proxy -> reverse proxise setting,进入反向代理设置界面。

3. 在反向代理设置界面中勾选Enable Reserve Proxise ,然后点击add,来添加一组反向代理设置

4. 设置反向代理的端口号,IP地址等信息。,并点击OK保存

  • Local Port是指本机的一个空闲端口,这里和远端服务保持一致,本例中使用80;
  • Remote Host是指远端服务的Host,本例中使用remote.host;
  • Remote Port是指远端服务的端口号,在本例中访问远端端口号为80;

这时候可能会发生一些错误:

  • 如图显示端口号已被占用,这时候就需要去检查并且关闭被占用的端口了()

  • 如图显示bind失败,这可能是因为Charles没有管理员权限导致的
  • 这时候需要打开一个有权限的Charles,可以在命令行中执行
    sudo /Applications/Charles.app/Contents/MacOS/Charles
  1. 这个时候,手机app发出的请求,需要请求的是远端的服务器,而这时候Charles已经成为了服务器的代理,那么我们需要把app的请求指向Charles
  2. 首先给自己的手机设置静态的DNS,DNS为本机的IP地址

8. 在自己地址上面启动一个DNS解析服务,把远端的IP地址映射到本机IP地址(
这里的具体步骤在下面
9. 这时候请求的过程,就变成了app中发出http://remote.host:80 请求 -> 自己电脑进行DNS解析,解析成了http://本机IP:80 -> 然后charles的反向代理服务收到了这个请求 -> 去请求远端服务器的http://remote.host:80
10. 如果一切连接就绪,这时候Charles就会监测到反向代理访问,点击allow允许它吧

如何搭建一个本地的DNS服务

搭建一个本地DNS解析服务需要一个脚本就可以执行,我是用的是SimpleDNSServer

  1. 首先去,这里clone下来代码
  2. 然后master文件夹下建立一个hosts文件,写入本机IP到remote.host的映射

3. 再在命令行中执行
sudo /Users/xxxx/Downloads/SimpleDNSServer-master/SimpleDNSServer.py /Users/xxxx/Downloads/SimpleDNSServer-master/hosts
命令行中会输出
SimpleDNSServer :: hosts file -> /Users/xxxx/Downloads/SimpleDNSServer-master/hosts
4. 这时候操作一下App,如果能看到命令行中解析的DNS的log,就代表已经建立好了。

当然,这个网络上面有很多更加详细的教程,比如:()

转载于:https://juejin.im/post/5b69909d5188251aff21874b

你可能感兴趣的文章
hibernate常见问题总结
查看>>
JVM调优工具
查看>>
怎么判断 Python 对象是否包含某个属性?
查看>>
锁的种类
查看>>
高可用架构设计
查看>>
分布式系统与集群的区别
查看>>
iOS开发 常用插件、工具
查看>>
求线段或直线与圆的交点
查看>>
归并排序
查看>>
前端如何遍历Map转换而来的json数据?
查看>>
ElasticSearch 重写IK分词器源码设置mysql热词更新词库
查看>>
解决putty network error software caused connection abort 自动中断
查看>>
64位Ubuntu下如何安装32位程序(也适用于Mint)
查看>>
应用启动画面停留3秒 跳转主页面() 详解
查看>>
Go1.1性能测试报告(和C差距在10%以内)
查看>>
Linux下安装tomcat解压版
查看>>
postgreSQL数据库索引碎片清理
查看>>
45. Jump Game II
查看>>
Java基础整理
查看>>
Linux操作系统基础知识学习
查看>>