cwd*_*cwd 28 networking mac proxy http debug
我正在使用 Charles Web Debugging Proxy 软件来调试 HTTP 请求。它适用于我的桌面浏览器、Chrome 和 Firefox,甚至可以看到其他程序发出的 HTTP 请求。
当我运行 Charles 并检查网络配置时,我想我明白它是如何工作的——它只是为所有 HTTP 和 HTTPS 请求设置一个代理,然后在端口 8888 上侦听这些请求:
但是我想不通的产品,我没有看到,我开始在终端,如任何请求wget
,curl
或在elinks
浏览器中。
我知道我可以使用 127.0.0.1:8888 指定带有 curl 和 wget 的代理,但是我不明白网络接口是否在配置中设置了代理,为什么我需要手动为它们指定代理.
此外,我似乎也无法让 BlueCrab(网站复制器)出现在 Charles 中——而且我没有看到它的代理设置——尽管我相信它使用的是 XWindow 包装器或其他东西(所以它不是真正的原生可可/碳应用程序):
如何让系统上的所有 HTTP 请求都通过 Charles 运行?
澄清
我的问题是关于为什么当网络接口被设置为使用一个更比问的正确语法卷曲和wget将不使用代理系统的基础curl
,wget
等等。
Reb*_*lle 20
wget 代理(您可能必须创建 rc 文件) 源
`$ vim ~/.wgetrc`
Run Code Online (Sandbox Code Playgroud)
添加以下行:
http_proxy=http://127.0.0.1:8888
Run Code Online (Sandbox Code Playgroud)
在代理 源后面卷曲
$ vim ~/.curlrc
Run Code Online (Sandbox Code Playgroud)
添加以下行:
proxy = 127.0.0.1:8888
Run Code Online (Sandbox Code Playgroud)
代理 源后面的 elinks
查找您的elinks.conf
文件:
sudo find / -name elinks.conf
Run Code Online (Sandbox Code Playgroud)
添加以下行:
protocol.http.proxy.host "127.0.0.1:8888"
Run Code Online (Sandbox Code Playgroud)
不确定 BlueCrab
Kev*_*eid 11
究其原因,为什么你不只是获得代理所有HTTP请求,是因为在操作系统层面上,作为一个“HTTP请求”没有这样的事; 只有 TCP 连接。联系HTTP代理意味着稍微改变HTTP请求以及联系代理服务器而不是URL中指定的主机,因此必须在实现发送HTTP请求的代码中完成。
curl 和 wget 有自己的 HTTP 代码,它们使用自己的配置文件——它们没有被编程为在 Mac OS X 保存它们的地方寻找代理设置,也没有使用 Mac OS X 提供的使用这些代理的 HTTP 库设置。
VPN会创建一个新的网络设备,你可以在ifconfig
命令中看到它,然后将所有系统网络路由到该设备,你可以看到route useroute
命令。
但 HTTP 代理(在本例中为 Charles)不同,它只是打开一个端口,要使用它,您必须指定应用程序设置以将该端口用于 HTTP 内容。正如 Kevin Reid 的回答,curl
等wget
不读取 OS X 的系统范围设置。
如果您的代理是 SOCKS(Charles支持HTTP 和 SOCKS),您可以使用ProxyChains或tsocks,因为应用程序不支持代理设置。
例如:
$ proxychains git clone https://github.com/rofl0r/proxychains-ng
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
33483 次 |
最近记录: |