Bandera: Русский Русский Bandera: English English

ProxyChains (y ProxyChains-NG): herramienta para tráfico anónimo y pruebas de red

Publicado el 24.10.2025


En un mundo donde la privacidad de los datos y el acceso a recursos a menudo están restringidos por geobloqueos o políticas corporativas, herramientas como ProxyChains se vuelven asistentes indispensables. ProxyChains —o más precisamente su fork moderno ProxyChains-NG— es una herramienta utilitaria de código abierto para sistemas tipo Unix (Linux, macOS, etc.) que permite redirigir el tráfico de red de cualquier aplicación a través de una cadena de servidores proxy. Es especialmente popular entre desarrolladores, pentesters y entusiastas de la seguridad. En este artículo analizaremos qué puede hacer ProxyChains, por qué es útil para desarrolladores, daremos ejemplos de uso y discutiremos sus limitaciones.


Resumen: qué es ProxyChains-NG y cómo funciona

ProxyChains es un programa que “envuelve” las conexiones TCP de las aplicaciones y las obliga a pasar por una secuencia de servidores proxy (SOCKS4, SOCKS5, HTTP/HTTPS).

Mecanismo de funcionamiento en Linux: ProxyChains-NG usa LD_PRELOAD. Inserta su biblioteca en la aplicación, intercepta llamadas del sistema relacionadas con la red (por ejemplo, connect()) y las redirige a través de los proxies indicados en el archivo de configuración.

Modos de cadena soportados:

  • strict_chain — el tráfico sigue estrictamente la lista; si un proxy falla — la cadena no funciona.
  • dynamic_chain — modo recomendado: si un proxy no está disponible, se omite.
  • random_chain — selecciona un proxy aleatorio de la lista para cada conexión.

Importante: el proxychains original (versiones 3.x) está obsoleto. Hoy se recomienda usar proxychains-ng (en paquetes a menudo el binario se llama proxychains4).


Instalación y configuración básica

En Debian/Ubuntu/Kali:

sudo apt update
sudo apt install proxychains-ng
# el comando de lanzamiento puede llamarse proxychains4

El archivo de configuración suele estar en /etc/proxychains4.conf. Ejemplo de la sección ProxyList:

[ProxyList]
# Tor
socks5 127.0.0.1 9050
# proxy HTTP
http 192.168.1.100 8080

Para enrutar las consultas DNS (para evitar fugas de DNS), en el config busque y descomente:

proxy_dns

Por qué ProxyChains es útil para desarrolladores

ProxyChains no es solo para anonimato. Para un desarrollador es útil en varios escenarios prácticos:

  • Probar el comportamiento de servicios desde diferentes geolocalizaciones. Rápidamente verificas cómo se comporta una API/sitio al recibir peticiones desde IPs de EE. UU., UE, Asia, etc., sin levantar una VPN ni cambiar la configuración de las aplicaciones.
  • Depuración y pentesting. Puedes asegurarte de que la aplicación no “filtra” la IP real y probar el comportamiento bajo distintas condiciones de red.
  • Comodidad para utilidades CLI. En lugar de configurar proxy en cada herramienta, agregas el prefijo proxychains4.
  • Integración con Tor. Posibilidad sencilla de dirigir tráfico por Tor (cumpliendo medidas adicionales contra fugas).

Limitaciones importantes a tener en cuenta:

  • No funciona con binarios compilados estáticamente (por ejemplo, muchos binarios de Go).
  • No intercepta raw-sockets y UDP (por defecto) — por tanto, algunos tipos de tráfico (ICMP/ping, consultas DNS por UDP, VoIP) no se proxifican.
  • Puede aumentar la latencia y reducir el rendimiento de la conexión.

Ejemplos prácticos de uso

Ejecutas cualquier herramienta con el prefijo proxychains4:

  1. Comprobar la IP externa:
proxychains4 curl ifconfig.me

Devolverá la IP del último salto de la cadena.

  1. Escaneo con nmap (solo escaneo TCP Connect):
proxychains4 nmap -sT -p 80,443 example.com

Importante: nmap -sS (SYN scan) usa raw-sockets y no funcionará. ProxyChains soporta -sT (TCP Connect), ya que utiliza la llamada connect() normal.

  1. SSH a través de la cadena:
proxychains4 ssh user@remote-server.com
  1. Descargar a través de Tor:
  • Inicia tor localmente.

  • En el config /etc/proxychains4.conf añade:

    socks5 127.0.0.1 9050
    proxy_dns
    
  • Ejecuta:

proxychains4 wget https://example.com/file.zip

El tráfico DNS y HTTP irá través de Tor (si proxy_dns está habilitado).


Contras y limitaciones críticas

1. Fugas de DNS — riesgo principal

Por defecto ProxyChains no proxifica consultas DNS, por tanto el sistema puede hacer consultas DNS estándar al proveedor eludiendo el proxy — esto te desanonimiza por completo. Solución: habilitar proxy_dns en /etc/proxychains4.conf — así DNS se enviará por TCP al proxy (SOCKS5).

2. Funciona solo con TCP

ProxyChains está diseñado para TCP. UDP, ICMP y raw-sockets no se proxifican. Para proxificar UDP se necesitan otras herramientas (por ejemplo, soluciones tun/tap o servicios VPN, o túneles UDP específicos).

3. Compatibilidad

No funciona con binarios compilados estáticamente (no aceptan LD_PRELOAD) ni con programas que creen raw-sockets. Muchas utilidades modernas en Go a menudo se compilan estáticamente — téngalo en cuenta al planificar pruebas.

4. Reducción de rendimiento

Cada proxy adicional añade latencia. Para tareas sensibles a la latencia (streaming, juegos, tiempo real) ProxyChains no es adecuado.

5. Seguridad de la cadena de proxies

Los proxies en la cadena pueden registrar o modificar el tráfico. Use nodos de confianza y recuerde que el último nodo (exit node) ve el tráfico no cifrado si no utiliza TLS/HTTPS encima del proxy.


Consejos útiles y mejores prácticas

  • Siempre habilite proxy_dns si desea anonimato real.
  • Pruebe la configuración: primero proxychains4 curl ifconfig.me, luego proxychains4 dig +short example.com @8.8.8.8 y compare resultados.
  • Para aplicaciones que no funcionan con LD_PRELOAD, use proxy del sistema (opciones integradas) o levante un tun/tap local (VPN).
  • No combine proxies no confiables con datos confidenciales — usuario/contraseña por HTTP a través de un proxy no confiable es mala idea.
  • Para pruebas masivas de comportamiento geo-dependiente es mejor tener un pool de proxies confiables en distintas regiones (o usar servicios comerciales).

Comparación rápida: ProxyChains vs VPN vs SOCKS-proxy (tabla)

TareaProxyChainsVPNSOCKS (local/servicio)
Encapsular cualquier tráfico TCP con prefijo✅ (para binarios de linkado dinámico)✅ (todo el tráfico)Parcialmente (hay que configurar apps)
Proxificar DNS por defecto❌ (hay que activar proxy_dns)Depende de la configuración
Flexibilidad: cadenas de proxies❌ (normalmente un solo túnel)❌ (un solo hop)
Soporte UDP/ICMPDepende de la implementación
Latencia (delay)Puede ser alta con cadenasNormalmente estableBaja/Media

Conclusión

ProxyChains-NG es una herramienta potente y ligera para desarrolladores y pentesters: facilita pruebas desde distintas geolocalizaciones, ayuda a comprobar fugas de IP y aporta flexibilidad al trabajar con herramientas CLI. Pero no es universal: tenga en cuenta las fugas DNS, la falta de soporte para UDP/raw-sockets, la incompatibilidad con binarios compilados estáticamente y los riesgos asociados a proxies no confiables.

Si va a usar ProxyChains en trabajos serios, configure proxy_dns, pruebe el comportamiento de sus utilidades y utilice proxies de confianza o Tor junto con cifrado TLS. Para proxificar todo el tráfico (incluyendo UDP) es mejor considerar soluciones VPN o levantar un túnel local.

¿Necesitas ayuda?

Escríbeme y te ayudaré a resolver el problema

Publicaciones relacionadas