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:
- Comprobar la IP externa:
proxychains4 curl ifconfig.me
Devolverá la IP del último salto de la cadena.
- 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 llamadaconnect()normal.
- SSH a través de la cadena:
proxychains4 ssh user@remote-server.com
- Descargar a través de Tor:
Inicia
torlocalmente.En el config
/etc/proxychains4.confañade:socks5 127.0.0.1 9050 proxy_dnsEjecuta:
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_dnssi desea anonimato real. - Pruebe la configuración: primero
proxychains4 curl ifconfig.me, luegoproxychains4 dig +short example.com @8.8.8.8y 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)
| Tarea | ProxyChains | VPN | SOCKS (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/ICMP | ❌ | ✅ | Depende de la implementación |
| Latencia (delay) | Puede ser alta con cadenas | Normalmente estable | Baja/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.