我使用 Burp Suite 作为代理监听 127.0.0.1:8080,并且还将 HTTP 代理设置为 127.0.0.1:8080。
现在 Burp Suite 可以拦截我 Mac 上的所有浏览器(例如 Firefox、Safari、Chrome)和应用程序(例如字典):
但无法拦截wget
和curl
的请求。
例如:
curl www.apple.com
curl和wget不是使用HTTP协议请求吗?
编辑-01
为什么我将 macOS 偏好设置 HTTP 代理设置为
127.0.0.1:8080
,所有浏览器和应用程序都会默认使用此代理?我没有在每个浏览器中设置。为什么 curl 和 wget 默认不使用代理?即使我设置了 --proxy 仍然不起作用。
wget www.cloud123.com --proxy 127.0.0.1:8080
答案1
如果你查看wget
和curl
curl
你会注意到--proxy
,但wget
事实并非如此。两者都使用环境变量,甚至名称相同:
Wget 支持 HTTP 和 FTP 检索的代理。Wget 识别的指定代理位置的标准方法是使用以下环境变量:
http_proxy
https_proxy
如果设置,
http_proxy
和https_proxy
变量应该分别包含 HTTP 和 HTTPS 连接的代理的 URL。
使用环境变量设置代理与使用
-x
,--proxy
选项具有相同的效果。
http_proxy [protocol://]<host>[:port]
设置用于 HTTP 的代理服务器。
HTTPS_PROXY [protocol://]<host>[:port]
设置用于 HTTPS 的代理服务器。
这意味着,除了罗普诺普示例 1 - 代理 curl 和 wget,
export http_proxy=localhost:8080 export https_proxy=localhost:8080 curl example.com wget -O /dev/null example.com ## or ## http_proxy=localhost:8080 https_proxy=localhost:8080 curl example.com http_proxy=localhost:8080 https_proxy=localhost:8080 wget -O /dev/null example.com
你也可以使用
curl --proxy localhost:8080 example.com
但相同的语法不适用于 Wget。
答案2
对于 curl 和 wget,您可以使用http_proxy
和https_proxy
环境变量。请参阅代理和拦截 CLI 工具也许你设置了一个但没有设置另一个?
请分享您如何设置浏览器使用的代理。
答案3
您的浏览器和应用程序会自动使用您设置的系统代理设置。
curl
并且wget
不会自动使用您的系统设置;您需要通过查找这些设置的文档来手动设置它们。