Artikelverzeichnis
Vorwort
In diesem Artikel wird hauptsächlich beschrieben, wie Sie mit Docker MySQL bereitstellen und es mit dem Intranet-Penetrationstool cpolar kombinieren, um einen Fernzugriff auf die lokale Datenbank zu erreichen.
Docker bietet eine leichtgewichtige Containerisierungslösung, die den Datenbankbereitstellungsprozess besser vereinfachen kann. Erleichtert und beschleunigt das Erstellen und Verwalten von MySQL-Datenbanken. Lassen Sie uns den spezifischen Bereitstellungsprozess vorstellen und einige Punkte hervorheben, die Aufmerksamkeit erfordern, sowie die Verwendung des Intranet-Penetrationstools für den Zugriff auf die lokale Datenbank ohne öffentliche Netzwerk-IP.
1.Installieren Sie Docker
Die Betriebsumgebung dieses Tutorials ist das Linux-Ubuntu-System. Bevor wir beginnen, müssen wir Docker installieren.
Führen Sie im Terminal den folgenden Befehl aus:
Docker-Quelle hinzufügen
# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
# Add the repository to Apt sources:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
Installieren Sie das Docker-Paket
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Überprüfen Sie, ob die Installation der Docker-Engine erfolgreich war, indem Sie das Image ausführen
sudo docker run hello-world
2. Verwenden Sie Docker, um das MySQL-Image abzurufen
sudo docker pull mysql:latest
Führen Sie dann den Befehl „Bild anzeigen“ aus:
sudo docker images
Sie können sehen, dass das MySQL-Image erfolgreich abgerufen wurde.
3. Erstellen und starten Sie den MySQL-Container
Nachdem wir das MySQL-Image erfolgreich abgerufen haben, können wir das Image verwenden, um einen MySQL-Container zu erstellen und auszuführen.
Führen Sie im Terminal den folgenden Befehl aus:
sudo docker run -itd -p 3308:3306 --name mysql1 -e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_DATABASE=mydb mysql
In diesem Befehl wird ein MySQL-Container mit dem Namen mysql1 erstellt und im Hintergrund ausgeführt. Das im Container ausgeführte MySQL wird dem Port 3308 des lokalen Hosts zugeordnet (der Host-Port 3306 des Autors ist belegt) und das MySQL-Root-Passwort lautet auf 123456 gesetzt, erstellte eine Datenbank mit dem Namen: mydb.
Führen Sie dann den folgenden Befehl aus, um zu prüfen, ob der Container ausgeführt wird:
sudo docker ps
Sie können sehen, dass der gerade erstellte MySQL-Container ausgeführt wird.
4. Lokaler Verbindungstest
4.1 Installieren Sie das grafische MySQL-Schnittstellentool
Nachdem wir den MySQL-Container nun lokal in Docker bereitgestellt haben, können wir die Verbindung lokal testen:
Sie können das grafische MySQL-Schnittstellentool MySQL Workbench herunterladen
Download-Adresse: MySQL::MySQL Workbench
Ich habe hier die Windows-Systemversion ausgewählt. Sie können je nach Bedarf andere Versionen auswählen und zum Herunterladen klicken.
4.2 Verwenden Sie den MySQL Workbench-Verbindungstest
Klicken Sie nach dem Herunterladen und Installieren auf das Pluszeichen und geben Sie im Popup-Fenster Informationen zur MySQL-Datenbank ein, mit der Sie eine Verbindung herstellen möchten:
Der Hostname muss mit Ihrer lokalen IP-Adresse (192.168.184.128) ausgefüllt werden, und der Port ist der lokale Port (3308). Im tatsächlichen Betrieb müssen Sie sich auf die IP-Adresse und den Port Ihres eigenen Hosts beziehen. Melden Sie sich dann als Root-Benutzer an, geben Sie das Passwort 123456 ein und klicken Sie auf OK.
Nachdem Sie die Informationen eingegeben haben, klicken Sie unten rechts auf die Schaltfläche „Verbindungstest“.
Wenn Sie das Eingabeaufforderungsfeld „MySQL-Verbindung erfolgreich hergestellt“ sehen, ist die Verbindung erfolgreich. Klicken Sie auf „OK“, um das Eingabeaufforderungsfeld zu schließen, und klicken Sie dann auf die Schaltfläche „OK“ unten rechts im Informationsfeld, um offiziell eine Verbindung zur lokalen MySQL-Datenbank herzustellen.
Klicken Sie auf die hier generierte Verbindungsmethode, um die Datenbankschnittstelle erfolgreich aufzurufen:
5. Greifen Sie über das öffentliche Netzwerk remote auf lokales MySQL zu
Derzeit können wir jedoch nur lokal eine Verbindung zu der MySQL-Datenbank herstellen, die wir gerade in Docker bereitgestellt haben. Was ist, wenn wir uns an einem anderen Ort befinden und remote auf den lokal bereitgestellten MySQL-Container zugreifen möchten, aber keine öffentliche IP haben?
Wir können das Intranet-Penetrationstool cpolar verwenden, um Fernzugriffsanforderungen in einer Umgebung ohne öffentliche Netzwerk-IP zu erfüllen.
5.1 Installation von Intranet-Penetrationstools
Im Folgenden sind die Schritte zur Installation von cpolar aufgeführt:
Offizielle Website-Adresse von cpolar: https://www.cpolar.com
- Verwenden Sie den Ein-Klick-Skriptinstallationsbefehl
curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash
- Fügen Sie dem System Dienste hinzu
sudo systemctl enable cpolar
- Starten Sie den cpolar-Dienst
sudo systemctl start cpolar
Nachdem cpolar erfolgreich installiert wurde, greifen Sie über einen externen Browser auf den 9200-Port von Linux zu: [http://LAN-IP des Servers:9200]. Melden Sie sich mit dem cpolar-Konto an. Nach der Anmeldung können Sie die cpolar-Webkonfigurationsoberfläche sehen. Die Das Ergebnis ist im Web. Konfigurieren Sie einfach die Verwaltungsoberfläche.
5.2 Erstellen Sie eine öffentliche Netzwerkadresse für die Remoteverbindung
Nachdem Sie sich bei der Web-UI-Verwaltungsoberfläche von cpolar angemeldet haben, klicken Sie im linken Dashboard auf Tunnelverwaltung – Tunnel erstellen:
- Tunnelname: Kann angepasst werden. Achten Sie darauf, den vorhandenen Tunnelnamen nicht zu duplizieren. In diesem Beispiel wird Folgendes verwendet: mysql
- Protokoll: TCP
- Lokale Adresse: 3308
- Porttyp: Zufälliger temporärer TCP-Port
- Region: Wählen Sie China Top aus
Klicken创建
Öffnen Sie nach erfolgreicher Erstellung die Online-Tunnelliste auf der linken Seite. Sie können sehen, dass die öffentliche Netzwerkadresse gerade durch die Erstellung des Tunnels generiert wurde. Als Nächstes können Sie die Adresse und die Portnummer in MySQL Workbench auf einem anderen Computer (außerhalb des Standorts) kopieren ) zu verbinden. Kann.
Geben Sie wie in der Abbildung unten gezeigt den Standort der IP-Adresse ein: 17.tcp.cpolar.top, geben Sie die Portnummer ein: 12878 und klicken Sie auf den Link zum Testen:
Sie können sehen, dass die Testverbindung erfolgreich war:
Erfolgreicher Fernzugriff auf die lokale MySQL-Datenbankschnittstelle über die öffentliche Netzwerkadresse:
Zusammenfassung
Zur Vereinfachung der Demonstration haben wir im obigen Vorgang den von cpolar generierten TCP-Tunnel für öffentliche Netzwerkadressen verwendet und seine öffentliche Netzwerkadresse wurde zufällig generiert.
Der Vorteil dieser Zufallsadresse besteht darin, dass sie schnell ermittelt wird und sofort genutzt werden kann. Der Nachteil besteht jedoch darin, dass die URL zufällig generiert wird und sich diese Adresse innerhalb von 24 Stunden zufällig ändert, wodurch sie besser für die vorübergehende Verwendung geeignet ist.
Wenn Sie einen langfristigen Fernzugriff auf lokales MySQL benötigen, die öffentliche Netzwerkadresse aber nicht jeden Tag neu konfigurieren möchten und außerdem möchten, dass die Adresse schön und leicht zu merken ist, dann empfehle ich Ihnen, sich dafür zu entscheiden eine feste TCP-Adresse für den Fernzugriff zu verwenden.
5.3 Fernzugriff über feste TCP-Adresse
Reservieren Sie als Nächstes eine feste TCP-Adresse. Melden Sie sich auf der offiziellen Website von cpolar an , klicken Sie links auf „Reservieren“, suchen Sie die reservierte TCP-Adresse und reservieren Sie eine feste Adresse für die Remote-Server-Verbindung:
- Region: Wählen Sie China VIP aus
- Beschreibung: Bemerkungen, die angepasst werden können. In diesem Beispiel wird mysql123 verwendet.
Klicken保留
Sie können sehen, dass eine feste öffentliche TCP-Netzwerkadresse generiert wird:
Nachdem die Adresse erfolgreich reserviert wurde, kopieren Sie die generierte öffentliche Netzwerkadresse, öffnen Sie die cpolar-Web-UI-Verwaltungsoberfläche, klicken Sie im linken Dashboard auf Tunnelverwaltung – Tunnelliste, suchen Sie den zufälligen öffentlichen Netzwerkadressen-Tunnel MySQL , den wir gerade erstellt haben , und klicken Sie auf编辑
Ändern Sie die Tunnelinformationen und konfigurieren Sie die feste TCP-Adresse, die gerade erfolgreich im Tunnel reserviert wurde.
- Porttyp: Wählen Sie einen festen TCP-Port
- Reservierte TCP-Adresse: Kopieren Sie die erfolgreich reservierte Adresse von der offiziellen Website und fügen Sie sie ein, in diesem Fall: 5.tcp.vip.cpolar.cn:12675
Klicken更新
Nachdem der Tunnel erfolgreich aktualisiert wurde, klicken Sie auf den Status im linken Dashboard – Online-Tunnelliste. Sie können sehen, dass die öffentliche Netzwerkadresse auf eine feste TCP-Adresse aktualisiert wurde.
Als nächstes können Sie, genau wie beim vorherigen Vorgang, diese feste TCP-Adresse verwenden, um auf MySQL Workbench auf einem anderen Computer (außerhalb des Standorts) zuzugreifen.
Klicken Sie auf die Schaltfläche Verbindungsinformationen ändern:
Geben Sie den Standort der IP-Adresse ein: 5.tcp.vip.cpolar.cn, geben Sie die Portnummer ein: 12675, klicken Sie auf den Link zum Testen. Sie können sehen, dass die Testverbindung erfolgreich war:
Das Intranet-Penetrationstool cpolar wurde erfolgreich implementiert, um über eine feste TCP-Adresse im öffentlichen Netzwerk remote auf die lokale MySQL-Datenbankschnittstelle zuzugreifen: