Как заставить Curl игнорировать прокси?

StackOverflow https://stackoverflow.com/questions/800805

  •  03-07-2019
  •  | 
  •  

Вопрос

Как заставить Curl игнорировать прокси?Установка $NO_PROXY, похоже, мне не помогает.

Это было полезно?

Решение

Я предполагаю, что Curl читает адрес прокси-сервера из переменной среды. http_proxy и что переменная должна сохранить свое значение.Затем в оболочке типа bash export http_proxy=''; прежде чем команда (или сценарий оболочки) временно изменит свое значение.

(См. руководство по Curl для всех переменных, которые он просматривает, под ENVIRONMENT заголовок.)

Другие советы

Если ваш curl это как минимум версия 7.19.4, вы можете просто использовать --noproxy флаг.

curl --noproxy "*" http://www.stackoverflow.com

Из руководство.

Я столкнулся с той же проблемой, потому что установил переменные среды http_proxy и https_proxy.Но иногда я подключаюсь к другой сети и мне нужно временно обойти прокси.Самый простой способ сделать это (без изменения переменных среды):

curl --noproxy '*' stackoverflow.com

Из руководства: «Единственный подстановочный знак — это одиночный символ *, который соответствует всем хостам и эффективно отключает прокси».

Символ * заключен в кавычки, чтобы он не был ошибочно расширен оболочкой.

Далеко, но попробуйте установить для прокси значение "" (пустая строка), которое должно переопределить любые настройки прокси в соответствии со страницей руководства.

Сначала я перечислил текущие настройки прокси с помощью

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

и это сработало!

ПС!Не забудьте вернуть http-прокси к исходным настройкам с помощью

export http_proxy=http://wpad.local.machine.location:port number

У меня есть 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"
}

Это работает отлично, установите для строки прокси значение ""

curl -x "" http://www.stackoverflow.com

Вы должны использовать $no_proxy переменная env (строчные буквы).Пожалуйста, проконсультируйтесь https://wiki.archlinux.org/index.php/proxy_settings Например.

Кроме того, давным-давно в Curl была ошибка. http://sourceforge.net/p/curl/bugs/185/ , возможно, вы используете древнюю версию Curl, в которой есть эта ошибка.

Добавьте настройки прокси в .curlrc.

proxy = 1.2.3.4
noproxy = .dev,localhost,127.0.0.1

Это приведет к тому, что все домены разработчиков и запросы локального компьютера будут игнорировать прокси.

Хреновый ответ, но:Не забудьте убедиться, что в файле не установлен прокси-сервер. ~/.curlrc файл (...).

В моем случае (macos, curl 7.54.0), у меня ниже установлен прокси с ~/.bash_profile

$ env |grep -i proxy |cut -d = -f1|sort
FTP_PROXY
HTTPS_PROXY
HTTP_PROXY
NO_PROXY
PROXY
ftp_proxy
http_proxy
https_proxy
no_proxy

По неизвестной причине эта версия curl не могу работать с переменными среды NO_PRXY и no_proxy правильно, затем я удаляю переменные среды прокси одну за другой, пока оба HTTPS_PROXY и https_proxy.

unset HTTPS_PROXY
unset https_proxy

он начинает работать и может подключаться к внутренним URL-адресам

Поэтому я бы рекомендовал отключить все переменные прокси, если они есть в вашей среде в качестве временного решения.

unset http_proxy https_proxy HTTP_PROXY HTTPS_PROXY

Мой завиток не игнорировал прокси-сервер в Ubuntu 12.04, пока я не установил переменную среды «no_proxy» (строчные буквы).Опция --noproxy была недоступна.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top