
Tengo un servidor Ubuntu con máquinas virtuales KVM.
Permití SSH en el firewall para poder acceder al host. También permití el tráfico entrante que tiene estado relacionado, establecido.
Esta es la configuración completa de iptables del host:
Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT tcp -- [MYIP] anywhere tcp dpt:ssh
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
DNAT all -- [MYIP] [VSERVER IP] to:192.168.122.122
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
MASQUERADE all -- 192.168.122.0/24 !192.168.122.0/24
El servidor virtual se ejecuta con Windows y tiene la IP local. 192.168.122.122
Como puede ver en el PREROUTING
, está configurado para que solo yo pueda acceder a él en todos los puertos.
El escritorio remoto funciona bien y logré conectarme al servidor usando la IP externa ([VSERVER IP]). Cuando estoy conectado al servidor, intenté abrir Internet Explorer y escribí stackoverflow.com. Funciona, se muestra la página.
Sin embargo, cuando ejecuto un programa Mysql simple (usando .NET MySql.Data.dll
) que debería realizar consultas a otro servidor, falla
MySql.Data.MySqlClient.MySqlException (0x800004005):
Unable to connect to any of the specified MySQL hosts.
¿Porqué es eso? Las solicitudes Http a cualquier servidor web no fueron un problema, entonces, ¿por qué es una consulta Mysql?
Para que conste, el servidor Mysql externo no descarta las solicitudes (el firewall está temporalmente deshabilitado). Debe ser algo en los iptables, pero no sé qué.
¿Cómo puedo solucionar este problema?
Respuesta1
Desafortunadamente, ha habido un error en el Firewall de mi host MySQL (externo) que no conocía. Después de todo, el puerto MySQL estaba bloqueado para la IP de mi vServer, por eso las solicitudes no regresaban y las solicitudes HTTP estaban funcionando.
El problema ha sido resuelto.
¡Siempre verifique todos los firewalls! Lección aprendida.