Как заставить curl игнорировать прокси? Установка $NO_PROXY, похоже, не работает для меня.
Как заставить curl игнорировать прокси?
Ответ 1
Предполагаю, что curl считывает адрес прокси из переменной окружения http_proxy
и что переменная должна сохранять ее значение. Затем в оболочке типа bash, export http_proxy='';
до того, как команда (или в оболочке script) временно изменит ее значение.
(см. руководство по скручиванию для всех переменных, на которые он смотрит, под заголовком ENVIRONMENT
.)
Ответ 2
Если ваш curl
имеет хотя бы версию 7.19.4
, вы можете просто использовать флаг --noproxy
.
curl --noproxy "*" http://www.stackoverflow.com
Из manual.
Ответ 3
Я столкнулся с той же проблемой, потому что задал переменные среды http_proxy и https_proxy. Но иногда я подключаюсь к другой сети и должен временно отключать прокси-сервер. Самый простой способ сделать это (без изменения переменных среды):
curl --noproxy '*' stackoverflow.com
Из руководства: "Единственный подстановочный знак - это единственный * символ, который соответствует всем хостам и эффективно отключает прокси-сервер".
Символ * цитируется так, чтобы оболочка не была ошибочно расширена.
Ответ 4
Длинный снимок, но попробуйте установить прокси на "" (пустая строка), которая должна переопределить любые настройки прокси-сервера в соответствии с man-страницей.
Ответ 5
У меня есть http_proxy
и https_proxy
. Я не хочу отменять и снова устанавливать те среды , но --noproxy '*'
отлично работает для меня.
curl --noproxy '*' -XGET 172.17.0.2:9200
{
"status" : 200,
"name" : "Medusa",
"cluster_name" : "elasticsearch",
"version" : {
"number" : "1.5.0",
"build_hash" : "544816042d40151d3ce4ba4f95399d7860dc2e92",
"build_timestamp" : "2015-03-23T14:30:58Z",
"build_snapshot" : false,
"lucene_version" : "4.10.4"
},
"tagline" : "You Know, for Search"
}
Ответ 6
Сначала я перечислил текущую настройку прокси с помощью
env | sort | less
(должно быть что-то вроде http_proxy=http://wpad.local.machine.location:port number
)
Затем я попытался установить
export http_proxy=";"
который дал это сообщение об ошибке:
curl: (5) Couldn't resolve proxy ';'
Пробовал
export http_proxy="" && curl http://servername:portnumber/destinationpath/ -d 55
и это сработало!
PS! Не забудьте установить для http-proxy исходные настройки с помощью
export http_proxy=http://wpad.local.machine.location:port number
Ответ 7
Добавьте свои настройки прокси-сервера в .curlrc
proxy = 1.2.3.4
noproxy = .dev,localhost,127.0.0.1
Это сделает все домены dev и запрос локального компьютера игнорировать прокси.
Ответ 8
Вы должны использовать переменную $no_proxy
env (нижний регистр). Пожалуйста, обратитесь к https://wiki.archlinux.org/index.php/proxy_settings для примеров.
Кроме того, была ошибка в curl долгое время назад http://sourceforge.net/p/curl/bugs/185/, возможно, вы используете древнюю версию curl, которая включает эту ошибку.
Ответ 9
Мой завиток не игнорировал прокси-сервер на Ubuntu 12.04, пока я не установил переменную среды "no_proxy" (нижний регистр). Параметр --noproxy недоступен.
Ответ 10
Lame answer, но: Не забудьте убедиться, что прокси не установлен в файле ~/.curlrc
(...).