1

Итак, я знаю об основных прокси-серверах и о том, как они прозрачно перенаправляют соединение в пункт назначения. Я просто не мог понять, как работают цепочки прокси.

Например, у меня есть эта цепочка: proxy1 -> proxy2 -> proxy3 -> proxy4 -> destination .

Как и в обычных одиночных прокси, наш запрос отправляется на прокси, который затем перенаправляет его в пункт назначения и отправляет ответ обратно. Но в цепочке прокси, как proxy1 знает, что он должен переслать запрос на proxy2 и т.д., А не перенаправлять его непосредственно в пункт назначения?

Это из-за каких-то заголовков в запросах, которые мы отправляем в прокси-цепочку, которая соответствующим образом сообщает прокси-серверам, чтобы они отправляли запросы следующему прокси?

1 ответ1

1

Я думаю, что это о методе "CONNECT" HTTP.

В этом механизме клиент просит прокси-сервер HTTP переслать TCP-соединение в желаемое место назначения. Затем сервер переходит к установлению соединения от имени клиента. Как только соединение установлено сервером, прокси-сервер продолжает прокси-поток TCP-потока к клиенту и от него. Обратите внимание, что только первоначальный запрос на соединение является HTTP - после этого сервер просто проксирует установленное TCP-соединение.

Последнее предложение является ключевым. Вы просите proxy1 прокси-соединение с proxy2 . Затем все, что следует, переходит к proxy2 через proxy1 который больше не интерпретирует, поэтому вы просите прокси к proxy3 и этот запрос перехватывается и интерпретируется proxy2 . Следующий запрос CONNECT (для прокси-сервера на proxy4) пройдет через proxy1 и proxy2 , он будет интерпретирован proxy3 - и так далее. Каждый прокси в цепочке интерпретирует ровно один запрос CONNECT.

После того, как все прокси были правильно настроены с цепочкой начальных пакетов, все, что использует двустороннее TCP-соединение, может быть пропущено через туннель CONNECT.

Остерегайтесь этого

Не все прокси-серверы HTTP поддерживают эту функцию, и даже те, которые поддерживают, могут ограничивать поведение.

Последнее замечание: во время экспериментов у вас могут возникнуть проблемы с цепочкой прокси-серверов, если программа, которую вы запускаете, использует GET вместо CONNECT. GET не позволяет цепочки, это покрыто здесь. Ваша путаница с цепочкой прокси может быть вызвана тем, что вы более знакомы (т.е. вы думаете с точки зрения) механизма GET.

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