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

В приведенном выше примере I ' m, используя несуществующий домен 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.

Спасибо!

1
задан 1 February 2019 в 20:32
1 ответ

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

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

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

curl -x "" https://www.google.com/
4
ответ дан 3 December 2019 в 17:32

Теги

Похожие вопросы