如何通过Charles Web调试代理运行所有HTTP请求-包括命令行请求?


24

我正在使用Charles Web调试代理软件来调试HTTP请求。它非常适合我的桌面浏览器,Chrome和Firefox,甚至可以看到其他程序发出的HTTP请求。

当我运行Charles并检查网络配置时,我想我了解它的工作原理-它只是为所有HTTP和HTTPS请求设置代理,然后在端口8888上侦听这些请求:

在此处输入图片说明

但是我想不通的产品,我没有看到,我开始在终端,如任何请求wgetcurl或在elinks浏览器中。

我知道我可以使用127.0.0.1:8888通过curl和wget指定代理,但是我不明白是否在配置中使用代理设置了网络接口,为什么我需要手动为其指定代理。

另外,我似乎也无法使BlueCrab(网站复印机)出现在Charles中-而且我也没有看到它的代理设置-尽管我相信它使用的是XWindow包装器或其他某种东西(所以它不是真正的本机)可可/碳应用程序):

在此处输入图片说明

如何在系统上获取所有HTTP请求以通过Charles运行?

澄清度

我的问题是关于为什么当网络接口被设置为使用一个更比问的正确语法卷曲和wget将不使用代理系统的基础curlwget等等。

Answers:


4

VPN将创建一个新的网络设备,您可以在ifconfig命令中看到它,然后将所有系统网络路由到该设备,您可以看到route use route命令。

但是HTTP代理(在本例中为Charles)是不同的,它只是打开一个端口,要使用它,您必须指定应用程序设置以将该端口用于HTTP东西。和凯文·里德的回答,curlwget等不读OS X的系统级设置。


如果您的代理是SOCKS(查尔斯同时支持 HTTP和SOCKS),则可以对不支持代理设置的应用程序使用ProxyChainstsocks

例如:

$ proxychains git clone https://github.com/rofl0r/proxychains-ng

那么如何进行“类似VPN”的Web调试呢?是否有执行此操作的应用程序?
和平者

@Pacerier尝试Wireshark,这是一个Internet /网络监视,分析工具,您可以在其中查看系统中几乎所有的网络流量,包括但不限于UDP,TCP(包括HTTP)。但是,对于Web调试而言,它太复杂了,但是输入单行过滤器命令,因此只能显示HTTP流量。
Mengdi Gao

@Pacerier还考虑了mitmproxy,在透明代理模式下运行时,您得到了类似VPN的Web调试。缺点是它是一个命令行工具,配置有些复杂。
高孟迪

18

wget背后的代理(您可能必须创建rc文件)

`$ vim ~/.wgetrc`

添加以下行:

http_proxy=http://127.0.0.1:8888

卷曲在代理 后面

$ vim ~/.curlrc

添加以下行:

proxy = 127.0.0.1:8888

在代理 后面链接

elinks.conf使用以下文件查找文件:

sudo find / -name elinks.conf

添加以下行:

protocol.http.proxy.host "127.0.0.1:8888"

不确定BlueCrab


1
>我知道我可以使用127.0.0.1:8888通过curl和wget指定代理,但是我不理解是否在配置中使用代理设置了网络接口,为什么我需要手动指定代理这些东西。
cwd 2012年

您的问题标题和所要查找的内容不匹配。我也会尝试找到该信息。
丽贝卡·德森维尔

1
我认为它确实匹配-我正在寻找一种通过Charles Debugging Proxy运行所有请求的方法,而不必在每个程序的基础上设置规则。不用担心这个问题过时,没人能回答。我会回来接受您的回答。并感谢您分享这些实用程序的配置语法。
cwd 2012年

阅读您的修改后,我现在看到我误解了您的原始请求。
丽贝卡·德森维尔

11

究其原因,为什么你不只是获得代理所有HTTP请求,是因为在操作系统层面上,作为一个“HTTP请求”没有这样的事; 只有TCP连接。联系HTTP代理意味着要稍微更改HTTP请求以及联系代理服务器而不是URL中指定的主机,因此必须在实现发送HTTP请求的代码中完成。

curl和wget拥有自己的HTTP代码,该代码使用自己的配置文件-尚未对其进行编程以查找Mac OS X保留它们的代理设置,也未使用Mac OS X随附的使用这些代理的HTTP库设置。


6

如果您不想触摸配置文件,可以使用curl:

curl http://example.com --proxy 127.0.0.1:8888

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.