11

Некоторые приложения поддерживают прокси (http proxy или socks proxy), а некоторые нет.

Для браузеров я могу указать прокси-сервер в диалоге настроек / опций, а другие приложения могут настроить прокси-серверы в файлах конфигурации.

Для общего назначения, я могу вызвать команду, используя определенный прокси? Вроде следующего:

$ proxy-exec --type sock5 --server 1.2.3.4:8000 -- wget/ftp ...

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

PS

В win32 это может быть реализовано путем захвата dll сокетов, может быть, я не знаком с программированием в Linux, но думаю, что это возможно в Linux. хоть.

3 ответа3

17

Большинство команд Linux, имеющих доступ к Интернету, ищут информацию о прокси в переменных среды HTTP_PROXY , FTP_PROXY и SOCKS_SERVER . Итак, чтобы сделать что-то вроде вашего примера, просто запустите:

export SOCKS_SERVER=1.2.3.4:8000
wget http://superuser.com/q/262956/66003

Синтаксис для HTTP_PROXY и FTP_PROXY немного отличается:

export HTTP_PROXY=http://1.2.3.4:3128/
export FTP_PROXY=ftp://1.2.3.4:25/

Среда рабочего стола GNOME по умолчанию, включенная в настройки прокси-сервера Ubuntu, имеет кнопку Apply System-Wide , которая автоматически установит эти переменные среды для вас. В противном случае вы можете добавить строки export в файл ~/.bashrc чтобы они вступали в силу при каждом входе в систему.

К сожалению, wget вообще не поддерживает SOCKS. Вы можете использовать curl, который входит в Ubuntu, для достижения многих целей, которые делает wget . К сожалению, он не проверяет SOCKS_SERVER , но проверяет HTTP_PROXY (как это делает wget). Чтобы использовать curl для загрузки этой страницы с сервера SOCKS5 (выполнение DNS-разрешения на этом сервере) и сохранить ее как superuser.html , выполните следующее:

curl --socks5-hostname 1.2.3.4:8000 http://superuser.com/q/262956/66003 > superuser.html

Если вы хотите, чтобы curl всегда использовал этот прокси-сервер SOCKS, вы можете создать псевдоним оболочки. Просто добавьте следующую строку в ваш ~/.bashrc:

alias curl='curl --socks5-hostname 1.2.3.4:8000'

Вам нужно будет перезапустить свой терминал или запустить эту строку, как если бы это была команда, чтобы изменения вступили в силу.

9

Попробуйте прокси-цепочки.

Может быть установлен с помощью apt-get . Затем вам нужно будет создать файл конфигурации в любом из

1) ./proxychains.conf
2) $(HOME)/.proxychains/proxychains.conf
3) /etc/proxychains.conf **

и вы сможете вызывать другие команды, такие как proxychains wget google.com - соединения будут проходить через прокси. Вы можете указать несколько прокси, используемых одновременно или в случайном порядке.

Например:

➜  ssh -ND 4000 sockshost &
[1] 3446
➜  wget whoer.net -q -O- | grep remote_addr
89.71.*.*
➜  cat proxychains.conf 
[ProxyList]
socks5 127.0.0.1 4000
➜  proxychains wget whoer.net -q -O- | grep remote_addr
|D-chain|-<>-127.0.0.1:4000-<><>-95.211.121.18:80-<><>-OK
78.98.*.*

Я удалил некоторые HTML-теги и IP-адреса, но, как вы можете видеть, прокси был использован, и IP-адрес действительно изменился.

1

wget не поддерживает носки, curl работает так, как сказал Патч :

curl --socks5-hostname 1.2.3.4:8000 https://superuser.com/q/262956/66003

Если вам нужен wget, вы можете установить tsocks .

Установите sudo aptitude install tsocks и настройте:

$ sudo vim /etc/tsocks.conf
server = 1.2.3.4
server_type = 5
server_port = 8000

Использование:

tsocks wget https://superuser.com/q/262956/66003

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .