Proxy de conexiones TCP con HAProxy: Guía para principiantes
Publicado el 03.10.2025
Introducción
Si eres un administrador de sistemas o desarrollador principiante, probablemente te hayas enfrentado a la tarea de gestionar el tráfico de red.
Una de las herramientas potentes para esto es HAProxy, un equilibrador de carga de alto rendimiento para TCP y HTTP.
En este artículo veremos:
- qué es el proxy TCP,
- por qué usar HAProxy,
- un ejemplo de configuración para principiantes,
- consejos de seguridad y monitorización.
¿Qué es el proxy TCP?
El proxy TCP es el reenvío de conexiones TCP desde el cliente hacia un servidor (o grupo de servidores) a través de un intermediario.
A diferencia del 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 el tráfico SSL (terminación o paso a través).
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
Análisis de la configuración
- global — establece parámetros básicos (registro, chroot, usuario, modo daemon).
- defaults — opciones por defecto, incluidos los timeouts. Por defecto
mode http, pero enfrontendybackendlo sobreescribimos atcp. - frontend tcp-frontend — escucha en el puerto
4444y reenvía las solicitudes albackend. - backend tcp-backend — balancea las conexiones, comprueba su disponibilidad (
tcp-check) y define la lista de servidores.
Configuración de HAProxy paso a paso
Instala HAProxy:
# Ubuntu/Debian sudo apt update && sudo apt install haproxy # CentOS/RHEL sudo yum install haproxyGuarda la configuración en
/etc/haproxy/haproxy.cfg.Comprueba la sintaxis:
haproxy -c -f /etc/haproxy/haproxy.cfgReinicia el servicio:
sudo systemctl restart haproxy sudo systemctl enable haproxyPrueba la conexión:
telnet <haproxy-ip> 4444
Monitorización: página de estadísticas
Para supervisar el estado de los servidores y las conexiones, añade la sección:
frontend stats
bind *:3308
mode http
stats enable
stats uri /haproxy?stats
stats realm Haproxy\ Statistics
stats auth admin:securepassword123
stats admin if TRUE
Ábrelo en el navegador:
http://<haproxy-ip>:3308/haproxy?stats
Consejos para principiantes
🔐 Seguridad — usa contraseñas fuertes y limita el acceso a las estadísticas por IP.
🩺 Salud de los servidores —
tcp-checkes básico; puedes ampliarlo con comprobaciones específicas del protocolo.⚡ Escalado — añade más servidores:
server server2 192.168.1.101:443 weight 1 server server3 192.168.1.102:443 weight 1📝 Registro — revisa
/var/log/haproxy.log(si es necesario, configurarsyslog).
Ejemplos de uso
- Balanceo de bases de datos (MySQL, PostgreSQL).
- Proxy para servicios de correo (SMTP, IMAP).
- Proxy SSL passthrough.
- Punto de entrada único 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, health checks personalizados.
¡Éxitos en la configuración y el balanceo! 🚀