Encadenamiento de proxy: ¿cómo funciona exactamente?

Encadenamiento de proxy: ¿cómo funciona exactamente?

Entonces conozco los proxies básicos y cómo reenvían de forma transparente la conexión al destino. Simplemente no podía entender cómo funciona el encadenamiento de proxies.

Por ejemplo tengo esta cadena: proxy1 -> proxy2 -> proxy3 -> proxy4 -> destination.

Como en los proxies únicos normales, nuestra solicitud se envía al proxy, que luego la reenvía al destino y devuelve la respuesta. Pero en el encadenamiento de proxy, ¿cómo sabe proxy1que tiene que reenviar la solicitud a proxy2, etc., en lugar de reenviarla directamente al destino?

¿Se debe a algún tipo de encabezado en las solicitudes que enviamos a la cadena de proxy, que indica apropiadamente a los proxy que reenvíen las solicitudes al siguiente proxy?

Respuesta1

creo que se trata deel método HTTP "CONECTAR".

En este mecanismo, el cliente solicita a un servidor proxy HTTP que reenvíe la conexión TCP al destino deseado. Luego, el servidor procede a realizar la conexión en nombre del cliente. Una vez que el servidor ha establecido la conexión, el servidor proxy continúa enviando el flujo TCP hacia y desde el cliente. Tenga en cuenta que solo la solicitud de conexión inicial es HTTP; después de eso, el servidor simplemente representa la conexión TCP establecida.

La última frase es la clave.Solicita proxy1proxy de la conexión a proxy2. Luego, todo lo que sigue pasa a proxy2través proxy1de lo cual ya no se interpreta, por lo que solicita el proxy proxy3y esta solicitud es capturada e interpretada por proxy2. La siguiente solicitud CONNECT (para representar a proxy4) pasará proxy1y proxy2será interpretada por proxy3– y así sucesivamente. Cada proxy en la cadena interpretaexactamente unoSolicitud CONNECT, luego se vuelve transparente.

Después de que todos los servidores proxy estén configurados correctamente según la secuencia de paquetes iniciales, cualquier cosa que utilice una conexión TCP bidireccional puede pasar a través del túnel CONNECT.

Cuidado con eso

No todos los servidores proxy HTTP admiten esta función, e incluso aquellos que la admiten pueden limitar el comportamiento.

Nota final: mientras experimenta, puede tener problemas para encadenar servidores proxy si el programa que ejecuta utiliza GET en lugar de CONNECT. GET no permite el encadenamiento, esto está cubiertoaquí. Su confusión sobre el encadenamiento de proxy puede deberse a que está más familiarizado con (es decir, piensa en términos de) el mecanismo GET.

información relacionada