"curl" игнорирует переменную окружения прокси при использовании IP-адреса?

614
larsks

Я использую curlдля доступа к некоторым веб-службам через прокси (экземпляр polipoработает на порт 8123, прикованный к SOCKS5прокси-серверу ssh ). Если я предоставляю информацию прокси, используя http_proxyпеременную окружения, она отлично работает для запросов, использующих имена хостов:

$ http_proxy=http://localhost:8123 curl http://overcloud-public-vip:5000/v2.0 {"version": {"status": "stable", "updated": "2014-04-17T00:00:00Z", ... 

Имя overcloud-public-vipне может быть разрешено локально, но оно может быть разрешено удаленным прокси на 192.168.30.6. Если я попытаюсь использовать IP-адрес целевого хоста вместо имени хоста, произойдет сбой:

$ http_proxy=http://localhost:8123 curl http://192.168.30.6:5000/v2.0/ 

С другой стороны, тот же URL-адрес прекрасно работает, если я использую параметр -x командной строки вместо переменной окружения:

$ curl -x http://localhost:8123 http://192.168.30.6:5000/v2.0/ {"version": {"status": "stable", "updated": "2014-04-17T00:00:00Z", ... 

Почему при указании прокси-сервера с использованием параметра командной строки различается поведение по сравнению с указанием прокси-сервера в среде? Это ошибка или я что-то упустил?

1
Я не могу докопаться до сути и не могу проверить это, но примеры, которые я нашел, указывают `export http_proxy = ...` в одной строке и `curl ...` в следующей. Это работает так же, как использование `-x`? AFH 8 лет назад 0

0 ответов на вопрос