Я використовую curl
для доступу до деяких веб-служб через проксі (екземпляр, що polipo
працює на порту 8123, прикутий до ssh- SOCKS5
проксі). Якщо я надаю інформацію про проксі, використовуючи 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", ...
Чому виникає інша поведінка під час вказівки проксі, використовуючи параметр командного рядка порівняно із зазначенням проксі у середовищі? Це помилка, чи я щось пропускаю?
export http_proxy=...
на одному рядку таcurl ...
на наступному. Це працює так само, як використання-x
?