Почему sudo 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.

последняя команда не использует прокси. Почему?

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

также работает правильно.

17
задан Jofsey
16.12.2022 9:40 Количество просмотров материала 2368
Распечатать страницу

2 ответа

это не то, что вы думаете, что он делает:

sudo echo $http_proxy

С $http_proxy расширяется оболочкой до sudo получает вызов, поэтому он подбирает вашу собственную среду.

простой su (без -,-l или --login) также сохраняет (большую часть) среды нетронутыми, поэтому параметры прокси наследуются.

sudo не сохраняет среду по умолчанию. Вы можете попробовать любой:

sudo -E curl ...

(в сохранить всю окружающую среду, if вы можете это сделать), или

sudo http_proxy=$http_proxy curl ...

только http_proxy вместе (безопаснее).

6
отвечен Mat 2022-12-17 17:28

задаются в виде:

  • аргумент командной строки (- x)
  • в командной строке (var=moo command)
  • или экспортировать в вашу среду

    $ 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/ 

1
отвечен Ярослав Рахматуллин 2022-12-17 19:45

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх