
Ich habe einen Ubuntu-Server mit virtuellen KVM-Maschinen.
Ich habe SSH in der Firewall zugelassen, damit ich auf den Host zugreifen kann. Außerdem habe ich eingehenden Datenverkehr zugelassen, der mit dem Status „hergestellt“ in Zusammenhang steht.
Dies ist das vollständige iptables-Setup des Hosts:
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
Der virtuelle Server läuft unter Windows und hat die lokale IP. 192.168.122.122
Wie Sie sehen können PREROUTING
, ist er so eingerichtet, dass nur ich ihn über alle Ports erreichen kann.
Der Remotedesktop funktioniert einwandfrei und ich konnte über die externe IP ([VSERVER IP]) eine Verbindung zum Server herstellen. Als ich mit dem Server verbunden war, habe ich versucht, den Internet Explorer zu öffnen und stackoverflow.com einzugeben. Es funktioniert, die Seite wird angezeigt.
Wenn ich jedoch ein einfaches Mysql-Programm (mit ) ausführe, .NET MySql.Data.dll
das Abfragen an einen anderen Server durchführen soll, schlägt es fehl mit
MySql.Data.MySqlClient.MySqlException (0x800004005):
Unable to connect to any of the specified MySQL hosts.
Warum ist das so? HTTP-Anfragen an jeden Webserver waren kein Problem, warum also eine MySQL-Abfrage?
Zur Information: Der externe MySQL-Server löscht die Anfragen nicht (Firewall vorübergehend deaktiviert). Es muss etwas in den iptables sein, aber ich weiß nicht, was.
Wie kann ich dieses Problem beheben?
Antwort1
Leider gab es einen Fehler in der Firewall meines (externen) MySQL-Hosts, von dem ich nichts wusste. Der MySQL-Port war für die IP meines vServers ja gesperrt, weshalb die Anfragen nicht zurückkamen und die HTTP-Anfragen funktionierten.
Das Problem wurde gelöst.
Überprüfen Sie alle Firewalls immer doppelt! Lektion gelernt.