// DevOps
Proxy de conexiones TCP con HAProxy: Guía para principiantes
Publicado el 22.09.2026
Introducción
Si eres un administrador de sistemas o desarrollador principiante, seguramente te has enfrentado a la tarea de gestionar el tráfico de red.
Una de las herramientas potentes para ello es HAProxy, un balanceador de carga de alto rendimiento para TCP y HTTP.
En este artículo analizaremos:
- qué es el proxy TCP,
- por qué usar HAProxy,
- un ejemplo de configuración para principiantes,
- consejos sobre seguridad y monitorización.
¿Qué es el proxy TCP?
El proxy TCP es el reenvío de conexiones TCP desde el cliente hacia el servidor (o grupo de servidores) a través de un intermediario.
A diferencia de un proxy HTTP, que opera en la capa de aplicación, el proxy TCP funciona en la capa de transporte, lo que lo hace universal para cualquier protocolo TCP: desde bases de datos hasta servicios de correo.
¿Por qué usar HAProxy?
HAProxy es una herramienta ligera y flexible que permite:
- 🔄 distribuir la carga entre varios servidores;
- ✅ comprobar la disponibilidad de los servidores;
- 📊 proporcionar estadísticas y monitorización convenientes;
- 🔒 manejar tráfico SSL (terminación o passthrough).
Ejemplo de configuración de HAProxy para proxy TCP
A continuación una configuración que escucha conexiones en el puerto 4444 y las redirige a un servidor de prueba.
global
log /dev/log local0
log /dev/log local1 notice
chroot /var/lib/haproxy
stats socket /run/haproxy/admin.sock mode 660 level admin
stats timeout 30s
user haproxy
group haproxy
daemon
defaults
log global
mode http
option dontlognull
timeout connect 5000
timeout client 50000
timeout server 50000
frontend tcp-frontend
bind *:4444
mode tcp
default_backend tcp-backend
backend tcp-backend
mode tcp
balance roundrobin
option tcp-check
server server1 192.168.1.100:443 weight 1 checkAnálisis de la configuración
- global — establece parámetros básicos (registro de logs, chroot, usuario, modo daemon).
- defaults — opciones por defecto, incluidos los timeouts. Por defecto
mode http, pero enfrontendybackendlo sobrescribimos atcp. - frontend tcp-frontend — escucha el puerto
4444y reenvía las solicitudes albackend. - backend tcp-backend — balancea las conexiones y define la lista de servidores. Las comprobaciones de disponibilidad se activan con el parámetro
checken la líneaserver: sin él HAProxy no verifica el servidor, incluso si en elbackendestáoption tcp-check. La directivaoption tcp-checksolo define cómo comprobar — por defecto es intentar abrir una conexión TCP.
Configuración de HAProxy paso a paso
Instala HAProxy:
bash# Ubuntu/Debian sudo apt update && sudo apt install haproxy # CentOS/RHEL sudo yum install haproxyGuarda la configuración en
/etc/haproxy/haproxy.cfg.Verifica la sintaxis:
bashhaproxy -c -f /etc/haproxy/haproxy.cfgReinicia el servicio:
bashsudo systemctl restart haproxy sudo systemctl enable haproxyPrueba la conexión:
bashtelnet <haproxy-ip> 4444
Monitorización: la página de estadísticas
Para supervisar el estado de los servidores y las conexiones, añade la sección:
frontend stats
bind 127.0.0.1:8404
mode http
stats enable
stats uri /stats
stats refresh 10s
stats auth admin:замените-на-длинный-парольLa página escucha solo en la dirección local, por lo que no es accesible desde Internet. Puedes abrirla mediante un túnel SSH:
ssh -L 8404:127.0.0.1:8404 user@<haproxy-ip>y luego en el navegador http://127.0.0.1:8404/stats.
No publiques la página de estadísticas en una dirección externa, y la directiva stats admin (gestión de servidores desde la interfaz web) actívala solo junto con autenticación y restricción de acceso: con ella, desde la página se pueden sacar servidores de servicio.
Consejos para principiantes
🔐 Seguridad — mantén la página de estadísticas en
127.0.0.1o detrás de una VPN y usa una contraseña larga.🩺 Estado de los servidores — no olvides
checken cada líneaserver. La comprobación TCP básica se puede ampliar con comprobaciones específicas del protocolo (por ejemplo,option mysql-check,option pgsql-check,option smtpchk).⚡ Escalado — añade más servidores:
cfgserver server2 192.168.1.101:443 weight 1 check server server3 192.168.1.102:443 weight 1 check📝 Registro — revisa
/var/log/haproxy.log(configurarsyslogsi es necesario).
Ejemplos de uso
- Balanceo de bases de datos (MySQL, PostgreSQL).
- Proxy de servicios de correo (SMTP, IMAP).
- Proxy SSL en modo passthrough.
- Punto de entrada unificado para microservicios.
Conclusión
HAProxy hace que el proxy TCP sea sencillo incluso para principiantes.
Basta con configurar frontend y backend, añadir comprobaciones de disponibilidad y monitorización — y tendrás un proxy fiable.
A medida que ganes experiencia puedes pasar a escenarios avanzados: terminación SSL, ACL, comprobaciones específicas de protocolos. Un análisis detallado de HAProxy en modo HTTP, stick-tables y la página de estadísticas está en el artículo «Servidores proxy: Parte 3 — HAProxy».
¡Éxito en la configuración y el balanceo! 🚀
// Contact
¿Necesitas ayuda?
Escríbeme y te ayudaré a resolver el problema
Respondo en un día laborable (03:00-13:00 GMT)
Или оставьте заявку здесь:
// Related