【问题标题】:How to run Charles Proxy over Tor?如何在 Tor 上运行 Charles Proxy?
【发布时间】:2019-02-07 01:11:23
【问题描述】:
以下情况:
- 如果我将浏览器 http/https 代理设置为 Charles 配置的端口 (127.0.0.1:8888),则使用 Charles 代理拦截 Web 流量可以正常工作
- 如果我将浏览器的 socks 代理设置为 Tor 配置的代理 (127.0.0.1:9150),则通过 Tor 匿名浏览也可以正常工作
现在我想以一种方式链接两个代理,这样我就可以在通过 Tor 网络匿名的同时拦截我的浏览器与 Charles 的网络流量。所以我将我的浏览器 http/https 代理设置为 Charles,在 Charles 中我将“外部代理”设置为 Tor。
但不知何故,这不起作用。我有一些误解吗?感谢您的帮助!
【问题讨论】:
标签:
proxy
tor
charles-proxy
【解决方案1】:
TL;DR:
- 打开命令行 (
C:\Windows\System32\cmd.exe) 并在控制台窗口中键入以下命令:
"C:\TorBrowserBundle\Browser\TorBrowser\Tor\tor.exe" --HTTPTunnelPort 8118。根据 Tor Browser Bundle 所在的位置调整路径。
- 在查尔斯转到菜单
Proxy→External Proxy Settings
- 选中顶部的
Use external proxy servers复选框
- 清除左侧的
Web Proxy (HTTP) 和SOCKS Proxy 复选框
- 选择左侧的
Secure Web Proxy (HTTPS)
- 在右侧
Secure Web Proxy Server 下输入127.0.0.1 和8118
- 在底部选择
Always bypass external proxies for localhost复选框
- 点击
OK保存更改
- 尝试在配置为使用 Charles 的网络浏览器中打开 https://google.com/(最好在隐身窗口中打开,以确保您的 Google 帐户设置不会干扰通过地理位置检测 Google 语言)。您应该会看到一些随机语言的本地化 Google 页面。
说明
Tor 提供开箱即用的 SOCKS 代理。默认情况下,Tor 使用端口 9050。您提到了端口 9150。这是 Tor Browser Bundle 使用的默认端口。所以我假设你使用 Tor Browser Bundle。但是在 Charles 的 External Proxy Settings 中指定 SOCKS Proxy 设置将不允许您通过 https:// 链接打开网站。如果您查看Charles documentation,您可能会注意到只有非 HTTPS 流量通过 SOCKS 代理发送。引用(强调我的):
如果您有 SOCKS 代理,Charles 会将其用于所有非 HTTP(S) 流量,例如端口转发。
所以为了通过 Tor 链接 Charles,你必须使用非 SOCKS 代理。
顺便说一句,当将 Tor 指定为 SOCKS 代理并禁用 Secure Web Proxy (HTTPS) 时,我无法通过 Charles 打开 http:// 链接。不知道为什么。