Назад | Перейти на главную страницу

curl разрешает все URL-адреса без SSL на 127.0.0.1 и порт 8080

Я выполняю curl, и независимо от того, на какой URL я его указываю, он всегда пытается подключиться к 127.0.0.1 и порту 8080:

$ curl -v http://asdfsafzsdfsdf/
*   Trying 127.0.0.1...
* connect to 127.0.0.1 port 8080 failed: Connection refused
* Failed to connect to localhost port 8080: Connection refused
* Closing connection 0
curl: (7) Failed to connect to localhost port 8080: Connection refused

В приведенном выше примере я использую несуществующий домен asdfsafzsdfsdf, но то же самое происходит с существующими доменами, такими как google.com.

Но если я укажу на URL-адрес SSL, например https://google.com, он разрешает и выполняет запрос ОК. Кроме того, если я укажу на https: // asfasdfasdfdasfd, он пытается разрешить его и терпит неудачу (без странного разрешения 127.0.0.1:8080):

$ curl -v https://asdfsadfsafsdf
* Rebuilt URL to: https://asdfsadfsafsdf/
* Could not resolve host: asdfsadfsafsdf
* Closing connection 0
curl: (6) Could not resolve host: asdfsadfsafsdf

Это наводит меня на мысль, что, возможно, "какая-то" форма вмешательства не может произойти при создании SSL-соединений (возможно, они не могут быть кэшированы тем, что вызывает это, или что-то еще).

Если я запускаю «host asdfsadfsadf» или «dig asdfasfsafa», он терпит неудачу, как и следовало ожидать. Но wget ведет себя так же, как curl (я знаю, что они разрешают DNS по-разному, так что, возможно, это ключ к разгадке).

Я исследую это уже несколько часов. У меня нет записей в / etc / hosts, у меня нет DNS-кеша, я проверил /etc/nsswitch.conf и у меня просто есть разрешение "files, dns", у меня нет специального конфигурации iptables и т. д.

Что еще более важно, если отбросить часть проблемы с DNS ... почему порт 8080?

Это очень странно, почему это могло происходить? Любые идеи?

Я использую Ubuntu 16.04.

Спасибо!

Похоже, у вас есть прокси-сервер, определенный в вашей среде, например в http_proxy переменная окружения.

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

В качестве альтернативы вы можете попросить curl игнорировать переменную среды прокси, передав -x "".

curl -x "" https://www.google.com/