问题描述
在使用Charles进行抓包的时候,需要修改手机中的代理设置,而且当Charles关闭后,需要关闭手机代理后才能正常访问网络。这样频繁设置比较繁琐,可以使用手机的自动代理模式来解决这个问题。
解决办法
1、首先开启Apache服务器:sudo apachectl -k start
,浏览器中打开http://localhost/,如果显示It works说明服务器开启成功。
2、新建一个proxy.pac
的文件,内容大致如下,其中192.168.1.100
为电脑的ip,8888
为Charles的端口。根据自己的情况修改。
function FindProxyForURL(url, host) {
return "PROXY 192.168.1.100:8888; DIRECT";
}
将配置文件放入Apache根目录:/Library/WebServer/Documents
。
3、在手机网络的代理设置中选择自动代理,url填入proxy.pac文件所在地址,例如:http://192.168.1.100/proxy.pac
,断开重连下手机的网络。
这样设置后,当打开Charles时就自动抓包,关闭charles后也不会断网。
优化:
电脑的ip地址有可能频繁变化,这个有两种解决办法:
一种是电脑设置静态ip。
一种是通过定时脚本将电脑的ip解析到自己的域名上,然后将用到ip的地方全部替换为域名。
参考链接:
IPhone手机抓包自动代理配置
How to set up Apache to start automatically on macOS boot