Hintergrundzweck: Ich möchte die eingehende Verbindung zum MySQL-Server nur für einen bestimmten Host beschränken, indem ich eingehende Regeln festlege vonWindows-Firewall. Ich meine, ich möchte nur bestimmten Hosts erlauben, eine Verbindung zum MySQL-Server herzustellen.
In den Windows-Firewall-Einstellungen habe ich standardmäßig Folgendes gesehen:
beide Ports sind geöffnet. Daher habe ich alle eingehenden Verbindungen zum Port 33060 blockiert, da ich keine eingehenden Verbindungen vom X-Protokoll erwarte:
Dann habe ich versucht, von meinem lokalen PC aus eine Verbindung zum MySQL-Server herzustellen, und die Verbindung war erfolgreich. Als Nächstes habe ich versucht, die eingehende Verbindung zum Port 3306 des MySQL-Servers nur auf die angegebene IP-Adresse zu beschränken:
Wählen Sie zunächst „Verbindung zulassen“, wenn sie sicher ist.
zweitens die angegebene Remote-IP-Adresse, über die ich mich mit diesem MySQL-Server verbinde.
im schwarzen Teil des Bildes oben habe ich meine globale IP-Adresse (IPv4) meines lokalen PCs eingegeben. Ich habe sie im Format XX.XXX.XXX.XX eingegeben. Ich habe meine globale IP-Adresse indieser Online-Dienst. dann habe ich versucht, von meinem lokalen PC aus eine Verbindung zum MySQL-Server herzustellen, aber es hat nicht geklappt.
Ich habe die Verbindung Test-NetConnection
in Windows Powershell getestet. Aber die Verbindung zum Port ist fehlgeschlagen.
was habe ich falsch gemacht?
Test 1:
Ich habe auch Folgendes getestet.
Ich ändere die Einstellung wie unten:
Remote IP address
in durch Any IP address
.
und habe die folgende Einstellung so gelassen wie sie ist:
Allow the connection if it is secure
Versuchen Sie es dann Test-NetConnection
in der Windows-PowerShell. Aber es gelangt nicht zum Port.
Test 2:
Ich habe auch noch einmal Folgendes getestet.
Ich stelle immer wie folgt ein:
Remote IP address
.
und die folgende Einstellung geändert:
Allow the connection
Versuchen Sie es dann Test-NetConnection
in der Windows-PowerShell. Aber es gelangt nicht wieder zum Port.
Antwort1
Sie müssen die Einstellung ändern aufDiese Verbindung zulassen, nicht „Diese Verbindung zulassen, wenn sie sicher ist“.
Die letztere Einstellung lässt die Verbindung nur zu, wenn sie über IPSec geschützt ist, was Sie mit ziemlicher Sicherheit nicht verwenden und nie verwenden werden.
Antwort2
Entfernen Sie die Option „Verbindung zulassen, wenn sie sicher ist“. Dadurch wird eine zusätzliche Authentifizierungs- und Verschlüsselungsebene hinzugefügt, die vom MySQL-Client nicht unterstützt wird. Sie können sie hier nicht verwenden.
Wenn Sie außerdem nur die Nachricht erhalten failed
, wie inIhr Screenshot, dann hört der MySQL-Server diese Schnittstelle nicht ab. Wenn das Problem bei der Firewall läge, würden Sie eine Meldung erhalten TimedOut
.
Stellen Sie sicher, dass der MySQL-Server auf der externen Schnittstelle oder allen Schnittstellen (0.0.0.0) lauscht und nicht nur auf der Loopback-Schnittstelle (127.0.0.1), was höchstwahrscheinlich die Standardeinstellung ist.
Sie können dies überprüfen, indem Sie Folgendes auf dem Server ausführen:
Get-NetTCPConnection -State Listen -LocalPort 3306