今天我配置了我公司的 PC 来设置代理,它可以工作,因为我可以wget
通过代理访问网页。
我所做的是设置http_proxy
,https_proxy
并且ftp_proxy
在~/.bashrc
和中~/.wgetrc
。
但是,当我尝试时curl www.google.fr
,它被阻止并超时。
curl --proxy $http_proxy www.google.fr
按预期工作。
是否可以curl
自动使用代理?
今天我配置了我公司的 PC 来设置代理,它可以工作,因为我可以wget
通过代理访问网页。
我所做的是设置http_proxy
,https_proxy
并且ftp_proxy
在~/.bashrc
和中~/.wgetrc
。
但是,当我尝试时curl www.google.fr
,它被阻止并超时。
curl --proxy $http_proxy www.google.fr
按预期工作。
是否可以curl
自动使用代理?
也许让 curl 使用代理的最简单方法是将详细信息添加到
~/.curlrc
文件中。语法如下:这也可以设置为环境变量,但恕我直言,使用
~/.curlrc
是最直接和最不容易出错的方法。一些代理需要设置特定的身份验证标头,因此也要注意这些。就我而言,它
--proxy-ntlm
在下面的示例中:curl -x webproxy.net:8080 -U 用户名:密码http://google.com --proxy-ntlm
但是还有其他选择:
--proxy-digest
和--proxy-negotiate
最后,cURL 有一个超级友好的文档页面,所以一定要检查一下。
客户端
curl
(自然)使用libcurl
引擎盖下的库。在代理的上下文中,libcurl api 文档除其他外指出:
因此,如果您相应地设置环境变量,
libcurl
并且因此curl
会选择它。任何明确设置的代理(例如,在 cmdline 参数中.curlrc
或通过--proxy
cmdline 参数)都会覆盖环境变量设置。