Verification

Verificar un proxy gratuito antes de confiarle tráfico real

3 min read Published Updated 470 words

Los proxies gratuitos fallan más a menudo de lo que funcionan. Una lista pública pasa por decenas de miles de candidatos y tu trabajo es encontrar el pequeño subconjunto que está vivo, es lo suficientemente rápido y no es activamente malicioso. Cinco pruebas, cada una económica, ejecutadas en orden.

Prueba 1: Accesibilidad TCP

curl --connect-timeout 5 --proxy http://1.2.3.4:8080 \
     -s -o /dev/null -w "%{http_code}\n" \
     https://api.ipify.org

Un código de salida distinto de cero o una respuesta en blanco significa que el proxy está muerto. Alrededor del 60–80% de cualquier lista gratuita fallará esta prueba en un momento dado. Omítelo inmediatamente y no reintentes.

Prueba 2: Verificación de IP de salida

La misma llamada devuelve la IP pública desde la que salió la solicitud. Si es igual a 1.2.3.4 — la dirección del proxy — el proxy está reenviando el tráfico correctamente. Si es igual a tu IP local, el proxy está roto o es transparente: aceptó la conexión pero en realidad no retransmitió a través de sí mismo. Trátalo como un fallo aunque TCP haya tenido éxito.

Prueba 3: Transparencia de encabezados

curl --proxy http://1.2.3.4:8080 https://httpbin.org/headers

La respuesta devuelve los encabezados que recibió el destino. Busca X-Forwarded-For, Via o Forwarded con tu IP real. Si los encuentras, el proxy está en modo transparente o anónimo en lugar de élite. Para HTTPS a través de CONNECT esto es irrelevante — el destino solo ve el handshake TLS, no los encabezados de aplicación — pero para HTTP en texto plano determina si el proxy es adecuado para el propósito.

Prueba 4: Latencia bajo carga

La medición de una sola vez es ruidosa. Ejecuta diez solicitudes en serie a través del proxy y toma la mediana. Cualquier valor por encima de dos segundos es inutilizable para trabajo interactivo. Por debajo de 500 milisegundos es competitivo sin proxy alguno. Entre esos valores, el proxy es adecuado para scraping por lotes pero no para navegación.

Prueba 5: Integridad de la huella TLS

Conéctate a través del proxy a un endpoint TLS conocido y verifica que la cadena de certificados coincida con la que obtienes sin el proxy. Una discrepancia significa que el proxy está interceptando TLS — ejecutando un hombre en el medio y tu tráfico "cifrado" no está realmente cifrado desde el proxy en adelante. Esto es raro en proxies SOCKS correctamente configurados (no pueden ver TLS) pero aparece en proxies HTTPS corporativos mal configurados y en algún nodo público malicioso ocasional. openssl s_client -proxy 1.2.3.4:8080 -connect example.com:443 imprime la cadena.

Un flujo de trabajo práctico

Obtén la lista, filtra por país y protocolo, distribuye las cinco pruebas en un grupo paralelo de unos 50 trabajadores y conserva los supervivientes. De 100 candidatos en bruto, una ejecución típica produce de 5 a 15 entradas utilizables. La tasa de degradación es de aproximadamente 30 a 60 minutos para HTTP y HTTPS, un poco más larga para SOCKS — programa una actualización a ese ritmo y alimenta el conjunto superviviente en tu configuración de scraper o navegador. Almacena en caché los resultados de las pruebas durante la vida útil de un lote y vuelve a probar en el siguiente.