Las listas de proxies son compilaciones de direcciones IP y números de puerto de servidores proxy disponibles públicamente, que se encuentran principalmente en sitios web o foros especializados, y aunque pueden verificarse para una conectividad básica, su uso generalmente se desaconseja para cualquier aplicación seria debido a los importantes riesgos de seguridad, fiabilidad y rendimiento.
Las listas de proxies agregan información sobre servidores proxy abiertos, que son servicios de red que permiten a los usuarios realizar conexiones de red indirectas a otros servicios de red. Estas listas suelen incluir la dirección IP del proxy, el número de puerto, el protocolo (HTTP, HTTPS, SOCKS4, SOCKS5) y, a veces, la ubicación o el nivel de anonimato.
Dónde Encontrar Listas de Proxies
Las listas de proxies se encuentran principalmente en varios lugares, a menudo con grados variables de precisión y frescura.
Sitios Web Dedicados a Listas de Proxies
Numerosos sitios web se especializan en compilar y publicar listas de proxies gratuitas. Estos sitios a menudo escanean internet en busca de proxies abiertos y actualizan sus listas regularmente. Algunos ejemplos incluyen:
* FreeProxyLists.net
* SPYS.one
* Proxy-List.org
* HideMy.name (ofrece una lista gratuita junto con servicios de pago)
Estos sitios suelen categorizar los proxies por país, protocolo, velocidad y nivel de anonimato. Sin embargo, los datos presentados, especialmente en cuanto a velocidad y anonimato, deben verificarse de forma independiente.
Repositorios de GitHub
Los desarrolladores e investigadores de seguridad a menudo mantienen repositorios de GitHub que curan listas de proxies. Estas listas pueden actualizarse mediante scripts automatizados o contribuciones de la comunidad. Buscar en GitHub términos como "free proxy list", "public proxies" o "SOCKS5 list" puede arrojar resultados. Estos repositorios a veces incluyen scripts para verificar los proxies dentro de la lista.
Foros y Comunidades en Línea
Ciertos foros en línea, particularmente aquellos enfocados en web scraping, ciberseguridad o anonimato, ocasionalmente comparten listas de proxies. Estas listas pueden ser más específicas o especializadas, pero también conllevan los mismos desafíos de verificación que otras fuentes.
Cómo se Compilan las Listas de Proxies
La compilación de listas de proxies suele implicar métodos automatizados de escaneo y detección en lugar de una curación manual.
Escaneo Automatizado
El método más común implica escanear grandes rangos de direcciones IP en busca de puertos abiertos comúnmente utilizados por servidores proxy (por ejemplo, 80, 8080, 3128, 1080). Una vez que se detecta un puerto abierto, se realiza una captura de banner o un intento de conexión para determinar si el servicio que se ejecuta en ese puerto funciona como un proxy y qué protocolo admite.
Web Scraping
Algunos servicios extraen datos de otros sitios web de listas de proxies o directorios disponibles públicamente para agregar listas.
Envíos de Usuarios
Con menos frecuencia, los usuarios pueden enviar proxies abiertos conocidos. Este método es menos escalable y más propenso a entradas obsoletas o maliciosas.
Cómo Verificar Proxies de una Lista
Verificar los proxies de una lista es crucial debido a su inherente falta de fiabilidad. La verificación implica comprobar la conectividad, el rendimiento, el anonimato y el soporte de protocolo.
Prueba de Conectividad
La verificación principal es confirmar si el proxy está en línea y es accesible.
# Test HTTP proxy connectivity to a known service
curl -x http://PROXY_IP:PROXY_PORT http://www.google.com --max-time 5
Una respuesta exitosa (por ejemplo, contenido HTML de Google) indica conectividad básica. Un error de tiempo de espera o conexión rechazada significa que el proxy probablemente está fuera de línea o bloqueando la conexión.
Prueba de Anonimato
Determinar si el proxy revela tu dirección IP real o añade encabezados de identificación.
# Test anonymity for an HTTP proxy
curl -x http://PROXY_IP:PROXY_PORT http://ipinfo.io/ip --max-time 5
Si la salida es PROXY_IP, el proxy es probablemente anónimo a nivel de IP. Si es tu IP real, el proxy es transparente o falló. Si es una IP diferente, es un tipo diferente de proxy. Las comprobaciones más avanzadas implican buscar los encabezados X-Forwarded-For o Via.
# Check for identifying headers
curl -x http://PROXY_IP:PROXY_PORT http://headers.cloxy.net --max-time 5
Analiza la salida en busca de encabezados que puedan exponer tu identidad.
Prueba de Velocidad y Latencia
Mide el tiempo que tarda en conectarse y recuperar datos a través del proxy.
# Measure transfer time through an HTTP proxy
curl -x http://PROXY_IP:PROXY_PORT http://example.com -w "Total time: %{time_total}s\n" -o /dev/null --max-time 10
Valores de time_total más bajos indican un mejor rendimiento. Se recomiendan pruebas repetidas ya que el rendimiento puede fluctuar.
Soporte de Protocolo
Confirma que el proxy soporta el protocolo deseado (HTTP, HTTPS, SOCKS4, SOCKS5).
# Test SOCKS5 proxy connectivity
# Note: curl requires socks5h for hostname resolution through proxy
curl -x socks5h://PROXY_IP:PROXY_PORT http://ipinfo.io/ip --max-time 5
Si un proxy anunciado como SOCKS5 falla con socks5h, podría soportar solo SOCKS4 o estar mal configurado.
Verificación de Ubicación
Verifica la ubicación geográfica del servidor proxy. Servicios como ipinfo.io proporcionan datos de geolocalización.
# Get proxy IP details
curl http://PROXY_IP/json
Compara el país/ciudad reportado con la ubicación anunciada en la lista de proxies. Las discrepancias son comunes.
Verificación Automatizada usando Python
Para listas grandes, son necesarios scripts automatizados.
import requests
import time
def verify_proxy(proxy_address, protocol='http'):
proxies = {
'http': f'{protocol}://{proxy_address}',
'https': f'{protocol}://{proxy_address}'
}
try:
start_time = time.time()
response = requests.get('http://ipinfo.io/json', proxies=proxies, timeout=5)
response.raise_for_status() # Raise an exception for HTTP errors
end_time = time.time()
data = response.json()
print(f"Proxy {proxy_address} is operational.")
print(f" Speed: {end_time - start_time:.2f} seconds")
print(f" Reported IP: {data.get('ip')}")
print(f" Location: {data.get('city')}, {data.get('country')}")
return True
except requests.exceptions.RequestException as e:
print(f"Proxy {proxy_address} failed: {e}")
return False
# Example usage
# verify_proxy("1.2.3.4:8080", "http")
# verify_proxy("5.6.7.8:1080", "socks5")
¿Deberías Usar Listas de Proxies?
La decisión de usar proxies de listas públicas depende en gran medida de la aplicación prevista, con un fuerte énfasis en los riesgos asociados.
Casos de Uso Limitados
- Tareas Efímeras y No Críticas: Para solicitudes simples y únicas donde la seguridad y fiabilidad de los datos no son una preocupación, y la eliminación inmediata del proxy es aceptable.
- Aprendizaje y Pruebas: Para entender cómo funcionan los proxies o para probar configuraciones de red básicas en un entorno no productivo.
- Eludir Restricciones Geográficas Básicas: Para acceder a contenido con geobloqueo trivial, asumiendo que el proxy está en la región correcta y operativo.
Riesgos y Desventajas Significativos
- Vulnerabilidades de Seguridad:
- Intercepción de Datos (MITM): Muchos proxies gratuitos son operados por actores maliciosos que pueden interceptar, registrar o modificar el tráfico, especialmente las conexiones HTTP no cifradas. Las credenciales, cookies y otros datos sensibles están en riesgo.
- Inyección de Malware: Los proxies pueden inyect