Организация работы Opera и других приложений через Socks |
[исправить] |
Если на локальной машине кроме socks имеется выход в интернет или доступ к
DNS-резолверу, проблем не возникает, но если выход машины производится только
через socks при запуске программ подобных браузеру opera всплывает неприятная
проблема с резолвингом имен. Проблема в том, что утилиты подобные tsocks не
позволяют перенаправлять DNS запросы через Socks и организовать работу
резолвера поверх этого протокола.
Выход найден в использовании privoxy (http://www.privoxy.org/), некеширующего
HTTP-прокси, умеющего организовывать проброс трафика через Socks и самое важное
- умеющего резолвить DNS-имена на socks-сервере.
Ставим privoxy:
sudo apt-get install privoxy
Предположим на локальной машине имеется доступ к socks-серверу 127.0.0.1:1080
В моем случае socks использовался для организации выхода в Интернет через
телефон на платформе Android, делается это так:
На телефоне включаем в настройках режим "USB Debugging" (Settings /
Applications / Development) и запускаем программу Tetherbot (http://graha.ms/androidproxy/Tetherbot.apk).
На локальный компьютер копируем программу adb из состава Android SDK и выполняем:
./adb forward tcp:1080 tcp:1080
теперь в Firefox можно прописать socks-сервер 127.0.0.1:1080 и поставить в
about:config network.proxy.socks_remote_dns=true, все будет прекрасно работать.
Но нам нужно заставить работать opera и другие программы, поэтому настраиваем privoxy.
В /etc/privoxy/config проверяем наличие директивы (по умолчанию выбран порт 8118)
listen-address 127.0.0.1:8080
и добавляем строку:
forward-socks4a / 127.0.0.1:1080 .
или
forward-socks5 / 127.0.0.1:1080 .
(внимание, режим forward-socks4 проброс DNS не поддерживает)
Запускаем privoxy:
sudo /etc/init.d/privoxy start
Далее в opera устанавливаем в настройках обычного HTTP-прокси хост 127.0.0.1 и
порт 8080. Все прекрасно работает, более того в качестве бонуса privoxy по
умолчанию вырезает рекламу.
Для консольных приложений удобно использовать пакет proxychains
(http://proxychains.sourceforge.net/) в состав которого входит утилита
proxyresolv для резолвинга имен через socks.
|
|
|
|
Раздел: Корень / Администратору / Сетевые сервисы / Socks proxy |