Цепочка прокси: как это работает?

Цепочка прокси: как это работает?

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

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

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

Может быть, это связано с какими-то заголовками в запросах, которые мы отправляем в proxy-chain, которые соответствующим образом сообщают прокси-серверам о необходимости пересылать запросы следующему прокси-серверу?

решение1

Я думаю, это оHTTP-метод «CONNECT».

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

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

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

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

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

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

Связанный контент