Neden sudo curl, proxy ayarlarını yoksayar?


5
$ 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.

Son komut vekil kullanmaz. Niye ya?

$su
$curl -v http://files.com/a.txt

Ayrıca doğru çalışıyor.

Yanıtlar:


6

Bu, düşündüğünüzü yapmaz:

sudo echo $http_proxy

Bununla, çağrılmadan önce$http_proxy kabuk tarafından genişletilir , böylece kendi ortamınızı alır. sudo

Düz su(olmadan -, -lya da --login) aynı zamanda çevre bozulmamış (çoğunun) tutar, böylece proxy ayarlarını devralınmıştır.

sudoçevreyi varsayılan olarak korumaz. Ya da deneyebilirsiniz:

sudo -E curl ...

( eğer yapmanıza izin verilirse , tüm ortamı korumak için ) veya

sudo http_proxy=$http_proxy curl ...

sadece http_proxybirlikte geçmek (daha güvenli).


1

Ana bilgisayarı şu şekilde belirtin:

  • bir komut satırı argümanı (-x)
  • komut satırında (var = moo komutu)
  • veya ortamınıza dışa aktarın

    $ curl http://icanhazip.com/ -x http://87-98-136-60.ovh.net:80  
    87.98.136.60

    $ curl http://icanhazip.com/ 
    84.202.82.63

    $ http_proxy=http://87-98-136-60.ovh.net:80 curl  http://icanhazip.com/ 
    87.98.136.60

    $ http_proxy=http://87-98-136-60.ovh.net:80;  curl  http://icanhazip.com/ 
    84.202.82.63

    $ export http_proxy=http://87-98-136-60.ovh.net:80;  curl  http://icanhazip.com/ 
    87.98.136.60

    $ http_proxy=http://87-98-136-60.ovh.net:80;  sudo curl  http://icanhazip.com/ 
    84.202.82.63

    $ export http_proxy=http://87-98-136-60.ovh.net:80;  sudo -E curl  http://icanhazip.com/ 

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.