美文网首页
为Charles设置自动代理

为Charles设置自动代理

作者: anddygon | 来源:发表于2017-08-11 22:44 被阅读1335次

    Charles是网络调试利器,但是使用的时候也带来一些麻烦,比如手机忘记设置手动代理了,或者调试完忘记关掉手动代理,打不开网页很是蛋疼,那么今天我们就来搞定它,我们来使用自动代理,一劳永逸的办法。一些基础东西就不说了,直接讲方法。

    首先创建一个pac文件,假设命名为proxy.pac,里面内容可以网上搜索。

    //一个很简单的调试app pac文件
    function FindProxyForURL(url, host) {
                   //这里填写你们公司的host
        if (dnsDomainIs(host, 'xxx.com')) {
                   //这里填你自己的局域网ip,端口号是你在Charles里设置的 默认8888
            return "PROXY 192.168.2.200:8888; DIRECT;";
        } else {
            return "DIRECT";
        }
    }
    

    简单解释下,这个pac文件会被macOS或者iOS(对应你的模拟器和真机)系统在发起网络请求时执行,它会告诉系统如果是xxx.com的请求那么去访问这个192.168.2.200:8888,如果访问不到那在直连。

    现在需要把这个文件设置为自动代理配置 这里用到mac自带web server(还有其他的办法 比如使用macOS的smb,试了1个小时没成功,暂时放弃了🤣, 更简单的就是直接挂到网站上)

    终端执行该命令

    sudo apachectl start 
    

    输入密码,然后打开 http://localhost/如果显示It works就是正常。
    然后打开Finder, Shift+G输入/Library/WebServer/Documents/把你的pac文件扔进去,可能需要鉴定,输入密码就行。

    然后就是配置mac和iphone
    mac配置

    偏好设置->网络->高级->代理->自动代理

    image.png
    iPhone配置

    设置->无线局域网->HTTP代理->自动
    URL填入 http://你的mac局域网ip/proxy.pac

    OK 设置完毕,现在可以享受了,打开模拟器 然后打开charles 发现不用打开macOS proxy也可以抓包了,手机调试app也没问题,而且就算charles关了也能正常上网,是不是很爽。😄

    像我这种公司家不分的人,还固定了局域网ip,这样就不用在家里和公司修改pac文件了,公司ip固定找运维,家里的自己搞下就行。方法网上很多。

    image.png

    相关文章

      网友评论

          本文标题:为Charles设置自动代理

          本文链接:https://www.haomeiwen.com/subject/iparrxtx.html