wget через прокси [РЕШЕНО]
Bodro 24 июля, 2010 - 11:45
Добрый день!
#! /bin/bash <код> export use_proxy="on" export http_proxy="http://${PROXY_IP}:${PROXY_PORT}" export ftp_proxy="http://${PROXY_IP}:${PROXY_PORT}" export RESULT=`wget --output-file=/dev/stdout --output-document=/dev/stdout "https://mysite.com` <далее тоже код>
Почему то такая штука не работает! Смотрю в Wireshark и вижу только запросы на DNS и отправку пакетов на разрезолвеный mysite.com. Адреса прокси вообще нет. Что не так я делаю?
»
- Для комментирования войдите или зарегистрируйтесь
Я, конечно, в скриптах ещё чайник
Я, конечно, в скриптах ещё чайник, но позволю предположить такое:
Ну, я думаю, что от этого смысл сильно не меняется, но можно попробовать. У меня работало. По крайней мере, с конфигами для прокси из каталога пользователя wget дружил.
export
Попробуй так
хм... а чем соответствующие
хм... а чем соответствующие опции в /etc/wgetrc не устраивают? :S
P.S.: Linux - это красная таблетка :-) Windows - синяя...
Всем огромное спасибо за
Всем огромное спасибо за ответы. Сейчас попробую ваши варианты, но тут есть свои подводные камни.
Мне нужно в цикле менять прокси, чтобы каждый запрос шёл с новой прокси. :) Ну вы меня понимаете, да?
Писать в файл ничего не хотелось бы. Всё же это не так быстро работает.
Прописывать переменные в одной строке с wget не обязательно. Они объявлены как export и поэтому видны в дочерних скриптах. Я проверял. Переменная установлена правильно и в строке wget если её вывести, то она выводится так как надо.
Никто даже не обратил внимание на то что я делаю запрос не http, а https. Может быть в этом дело? Хотя разницы то нет ваще никакой, но всё же логика работы wget может быть и такой, что требуются какие-то другие настройки. Что скажите, господа?
И ещё. Правильно ли я понимаю, что запрос должен идти с моего хоста на проксю и в снифере я должен ловить именно этот трафик, а не трафик с моего хоста к mycite.com?
Попробовал записать прокси в
Попробовал записать прокси в файл:
Правильный ли формат?
После этого wget не ругается и работает нормально, но по прежнему запросы идут напрямую, а не через прокси. И в снифере даже не видно ни одного обращения к прокси. В чём дело то???
Проблема решена! #!
Проблема решена!
В общем, оказался целый комплекс проблем. Во-первых, не надо указывать протокол. Нужно указать просто IP-адрес и порт:
http_proxy=93.63.71.211:8080.
Во-вторых, трафик по https пускается через проксю только если установлена переменная https_proxy.
Смысл переменной use_proxy пока не понял. Пробовал комментировать её. По прежнему работает. А может просто что-то недоглядел. В общем, на счёт неё ничего сказать не могу.
Я пробовал в скрипте прописывать как указано выше, пробовал прописывать в "${HOME}/.wgetrc". Всё работает отлично в обоих вариантах! Трафик идёт через прокси. Так что проблема уже решена!
Переменные http_proxy и ftp_proxy, как я понимаю, не нужны.
Всем спасибо за ответы!
Если кому есть что добавить - пишите.
Переменная use_proxy, как я
Переменная use_proxy, как я понимаю, включает или выключает работу через прокси как таковую. Если вы укажете
, то wget проигнорирует все настройки прокси, что вы указали раньше, и пустит трафик напрямик.