Предисловие: Я ищу явные инструкции в том же формате, что и выше. То есть что-то вроде run: «… запустить команду X на машине A, затем команду Y на машине B…»
У меня есть рабочий прокси от моего ноутбука (машина A) до машины B:
[A]$ ssh -ND 8888 B
Я могу настроить Firefox для использования SOCKS прокси на локальном порту A 8888
, и просмотр на A работает. Все идет нормально.
Но у меня также есть прокси-носки между машинами B и C:
[B]$ ssh -ND 8157 C
Так что я могу просматривать B, как если бы я был на C, устанавливая прокси-серверы Firefox B на 8157
.
Есть ли способ связать два прокси, чтобы я мог использовать Firefox локально (на A) при подключении к C?
То есть каким-то образом пересылать все запросы Firefox на носки от A до C. A и C не могут видеть друг друга напрямую, но у меня везде есть полный root-доступ по SSH. Все машины Debian.
Обратите внимание, что я не хочу пересылать один порт, например, порт 80, но мне нужен полностью связанный SOCK прокси .
-L 8888:B:8157
на [A]?ssh -L 8888:B:8157
терпит неудачу, требует параметра имени хоста. Можете ли вы дать более полный, сквозной ответ? Если это сработает, я приму.Ответы:
Просто подтвердил, что это работает с некоторыми виртуальными машинами:
От А , вы открываете порт вперед туннель от 8888 до 8157 локально на B
-L8888:localhost:8157
. После того, как вы установили соединение с B, удаленная командаssh -t -D 8157 user@C
выполняется, которая обеспечивает ваш SOCKS прокси через C . Из того, что я прочитал, кажется, что -t требуется, хотя мне еще предстоит выяснить, почему.Заметим, что это одна команда на первом хосте , который вызывает SSH в два раза, от A-> B и от B-> C . Вы также можете разбить это на отдельные команды, как описано ниже.
Бонус: для объединения трех прокси ...
Т.е.
A->B->C->D->Internet
Обратите внимание, что для каждого прыжка вам нужен дополнительный соответствующий сервер пересылки
-L
на предыдущих хостах в цепочке.Ссылки:
источник
Отличный ответ glallen с использованием SSH сделает работу. Тем не менее, правильный способ сделать это - использовать
proxychains
программу. ProxyChains - это мощный инструмент, который позволяет вам легко использовать несколько прокси-серверов одновременно. Например, он используется хакерами, чтобы скрыть свою идентификацию при выполнении интернет-атак - объединяя в цепочку множество прокси по всему миру, судебным следователям становится практически невозможно отследить весь трафик до них. Нельзя сказать, что вы злонамеренный хакер - он будет работать для многих разных вариантов использования. ;)ProxyChains устанавливается по умолчанию в некоторых дистрибутивах Linux (например, Kali Linux). Например, в Ubuntu / Debian вы можете легко установить его, выполнив:
sudo apt-get install proxychains
Proxychains ищет файл конфигурации по адресу
/etc/proxychains.conf
. После его установки сделайте резервную копию существующего файла конфигурации Proxychains (если он существует) и создайте новый:mv /etc/proxychains.conf /etc/proxychains-backup.conf
nano /etc/proxychains.conf
Теперь вставьте в этот пример конфигурацию, которую я написал для вас:
В этом примере
192.168.1.1
это IP-адрес первого прокси-сервера SOCKS,8888
порт, который прослушивает первый прокси-сервер SOCKS,192.168.1.2
IP-адрес второго прокси-сервера SOCKS,8157
порт, который прослушивает второй прокси-сервер SOCKS, и так далее.Теперь используйте прокси-цепочки,
proxychains firefox
запустив Firefox из командной строки. (Сначала убедитесь, что Firefox закрыт.) Теперь, когда Firefox устанавливает исходящее соединение, программа proxychains инкапсулирует трафик так, что он будет передаваться через все серверы, указанные в этом файле конфигурации. Чтобы было ясно, в ваших настройках Firefox не следует указывать ЛЮБЫЕ прокси-серверы - прокси-цепочки позаботятся обо всем за кадром.Обратите внимание, что в целях устранения неполадок, вы, вероятно, должны попытаться заставить его работать, используя 1 прокси за один раз, прежде чем пытаться все 3.;)
Ссылки:
proxychains-ng
(ветвь исходных прокси-цепей, которая фактически сохраняется на 2015 год): https://github.com/rofl0r/proxychains-ngисточник