Jof*_*sey 6 networking sudo proxy curl
$ echo $http_proxy
http://my.proxy.com
$ curl -v http://files.com/a.txt
* About to connect() to proxy my.proxy.com
# Correct downloading
$ sudo echo $http_proxy
http://my.proxy.com
$sudo curl -v http://files.com/a.txt
# Hanging.
Run Code Online (Sandbox Code Playgroud)
最后一个命令不使用代理。为什么?
$su
$curl -v http://files.com/a.txt
Run Code Online (Sandbox Code Playgroud)
也工作正常。
这不会像你认为的那样做:
sudo echo $http_proxy
Run Code Online (Sandbox Code Playgroud)
有了它,在被调用之前被$http_proxyshell 扩展,所以它选择了你自己的环境。 sudo
一个普通的su(没有-,-l或--login)也保持(大部分)环境完好无损,因此代理设置被继承。
sudo默认情况下不保护环境。你可以尝试:
sudo -E curl ...
Run Code Online (Sandbox Code Playgroud)
(为了保护整个环境,如果你被允许这样做),或者
sudo http_proxy=$http_proxy curl ...
Run Code Online (Sandbox Code Playgroud)
只传递http_proxy(更安全)。
| 归档时间: |
|
| 查看次数: |
7129 次 |
| 最近记录: |