Puerto 3306 — MySQL (TCP)
¿Qué es el puerto 3306?
Puerto predeterminado para MySQL y MariaDB.
Este es un puerto registrado (1024–49151), a menudo asignado a servicios como MySQL. · No formal RFC; MySQL Client/Server Protocol
¿Cuándo necesitas el puerto 3306 abierto?
Open only when an application on a different host must connect to MySQL. For single-server setups (app and database on the same machine), keep port 3306 closed externally and connect via a local socket or 127.0.0.1.
Usos comunes y software
- MySQL Server
- MariaDB
- Percona Server
- WordPress
- Drupal
- phpMyAdmin (backend)
- Laravel
- Django
Seguridad
Bind MySQL to 127.0.0.1 by setting bind-address in my.cnf unless remote access is explicitly needed. Never expose port 3306 to the internet. For remote access, use an SSH tunnel: ssh -L 3306:localhost:3306 user@server. Grant privileges using least-privilege principles — avoid GRANT ALL and the root account for application connections.
¿Es seguro el puerto 3306?
Un puerto abierto aumenta la superficie de ataque. La seguridad depende de cómo esté configurado MySQL.
Mantén MySQL actualizado con parches de seguridad. Exige autenticación fuerte y restringe el acceso a las IPs mínimas necesarias.
Prueba la conectividad del puerto 3306 en cualquier host.
Abrir el puerto 3306
Para permitir conexiones entrantes al puerto 3306 (MySQL), configura tu firewall y añade una regla de reenvío de puertos en tu router hacia la IP local de tu dispositivo.
Abre el Firewall de Windows Defender → Configuración avanzada → Reglas de entrada → Nueva regla → Puerto → TCP → Puertos locales específicos: 3306 → Permitir la conexión → Asigna nombre y guarda la regla.
netsh advfirewall firewall add rule name="Open Port 3306" dir=in action=allow protocol=tcp localport=3306sudo ufw allow 3306/tcpsudo iptables -A INPUT -p tcp --dport 3306 -j ACCEPTAccede a tu router (192.168.1.1 o 192.168.0.1) → Reenvío de puertos → Añade una nueva regla: Protocolo TCP, Puerto externo 3306, IP interna: IP local de tu dispositivo, Puerto interno 3306 → Guardar.
Cómo cerrar el puerto 3306
Si no necesitas MySQL, bloquea este puerto en el firewall o en el router.
Para bloquear el puerto 3306 en Windows, ejecuta el siguiente comando en PowerShell o Símbolo del sistema (como administrador):
netsh advfirewall firewall add rule name="Block Port 3306" dir=in action=block protocol=tcp localport=3306Ejecuta: sudo ufw deny 3306/tcpsudo iptables -A INPUT -p tcp --dport 3306 -j DROPElimina o desactiva la regla de redirección del puerto 3306.
Preguntas frecuentes
¿Para qué se usa el puerto 3306?▾
El puerto 3306 es el puerto TCP estándar para MySQL. Lo utilizan servidores y aplicaciones que necesitan aceptar conexiones entrantes para este servicio. Si debes mantenerlo abierto depende de si ejecutas activamente un servidor MySQL; de lo contrario, debe permanecer cerrado.
¿Es seguro mantener abierto el puerto 3306?▾
Un puerto 3306 abierto amplía tu superficie de ataque. Si no ejecutas MySQL activamente, cierra el puerto en tu firewall y elimina reglas de reenvío de puertos. Si MySQL debe ser accesible, restringe el acceso a IPs conocidas y mantén el software actualizado.