Hintergrund Ein Kollege arbeitet an seinem Sicherheitsprojekt und muss seine Geheimwaffe auf einem AWS-Server bereitstellen. Die Geheimwaffe wird über Docker bereitgestellt. Vor der Bereitstellung kann der Server über das Intranet und Extranet SSH des Jump-Servers angemeldet werden. Nach der Bereitstellung kann der Server nur über das Extranet SSH angemeldet werden.......; die Symptome sind genau so, wie das Medikament verschrieben wird, hängt von den medizinischen Fähigkeiten ab..... Überprüfen Sie Ihre Herzreise 1. Vor dem Einsatz der Geheimwaffe kann sie im internen und externen Netzwerk verwendet werden; nach dem Einsatz kann sie nur im externen Netzwerk verwendet werden. Wenn man sich dieses Symptom ansieht, handelt es sich um ein Problem mit der Netzwerk-Firewall, also ~~~ 1) iptables -F 2) setenforce 0 3) Stellen Sie bei AWS die Sicherheitsgruppe dieses Servers auf Inbound 0.0.0.0 ein (dies dient nur zu Testzwecken, tun Sie es nicht in einer formellen Umgebung~~~) 2. Liegt der SSH-Fehler daran, dass die SSH-Konfigurationsdatei geändert wurde? Da der Port geändert wurde, gibt es in der SSH-Konfigurationsdatei eine Konfiguration, die steuert, ob sich interne und externe Netzwerke anmelden können? Also~~~ vim /etc/ssh/sshd_config und nehme ein paar zufällige Änderungen vor (das zeigt, dass ich nicht genug über SSH weiß und mit den Konfigurationsdateien nicht vertraut bin, also muss ich das lernen) 3. Was zur Hölle ist das? Das Netzwerk ist in Ordnung und die Sicherheitsgruppe ist in Ordnung. Aus irgendeinem Grund dachte ich ans Routing. Ich habe route -n verwendet, um nachzusehen. Wow, so viele Routen. Als ich diese Routen sah, war eine davon 172.29.0.0 (das Netzwerksegment unseres Jump-Servers ist diesem sehr ähnlich). Ich hatte das vage Gefühl, dass hier ein Problem vorliegt (die Intuition einer Frau wird nicht nur verwendet, um zu beurteilen, ob ihr Freund draußen einen Hund hat, sondern auch, ob er sie liebt; ihre Intuition ist hier immer noch ziemlich genau, haha); also ~~~ Route -n route del -net 172.22.32.0 Netzmaske 255.255.255.0 route del -net 172.23.32.0 Netzmaske 255.255.255.0 ...... Solange alle mit dem Container verbundenen Routen beendet werden und dann vom Jump-Server aus eine SSH-Verbindung zum Intranet hergestellt wird, wow~~~wow~~~es funktioniert, so aufregend~~~~ 4. Es wurde bestätigt, dass es sich um das Problem dieser Route handelte. Das von diesem Container zugewiesene Netzwerksegment stand in Konflikt mit dem Netzwerksegment des Jump-Servers, also ~~~~ route add -net 172.22.32.0 Netzmaske 255.255.255.0 ...... Fügen Sie alle Routen hinzu, die Sie gerade gelöscht haben, außer der, die Konflikte verursacht. Jetzt ist es an der Zeit, dieses Problem zu lösen. Die damalige Lösung Nachdem ich darüber nachgedacht habe, muss ich, da ein Konflikt besteht, das Netzwerksegment dieses Containers ändern. Wie ändere ich das? Ich habe eine äußerst dumme Methode verwendet. Ich habe diesen Container angehalten und gelöscht und ihn mit Docker-Compose neu gestartet. Es wurde ein neues Netzwerksegment neu zugewiesen und es gab keinen Konflikt. Grundlegende Lösung Ändern Sie vor dem Starten des Containers das gesamte Docker-Netzwerk in ein Netzwerk, das nicht mit Ihrem eigenen Netzwerksegment in Konflikt steht, sodass Docker immer nur das von uns festgelegte Netzwerksegment zuweist. Arbeitsschritte: Ändern Sie docker.json, um das Netzwerksegment des gesamten Dockers zu ändern. Das ursprüngliche Netzwerksegment war 172, und jetzt möchte ich es auf 192 ändern 1) vim /etc/docker/daemon.json (wenn diese Datei nicht existiert, erstellen Sie sie selbst) { "bip":"192.168.0.1/24" } 2) Docker neu starten systemctl Neustart Docker 3) Überprüfen Sie das Netzwerksegment erneut Hinweis: Sie sollten dies bedenken, wenn Sie zum ersten Mal planen, den Docker-Container zu verwenden, und planen, welches Netzwerksegment verwendet werden soll. Die obige Methode erfordert einen Neustart von Docker und des Containers. zweifeln Gibt es eine bessere Möglichkeit, das Netzwerksegment zu ändern, ohne den Container anzuhalten oder zu löschen? (Ich werde mehr hinzufügen, nachdem ich meine Recherche abgeschlossen habe) Zusammenfassen 1: Ich kenne mich mit der SSH-Konfigurationsdatei nicht aus (ich muss sie irgendwann einmal systematisch durchgehen) 2: Machen Sie sich mit dem Netzwerk vertraut, insbesondere mit dem Routing. Ehrlich gesagt kann ich die spezifische Rolle des Routings immer noch nicht erklären. Ich kann es nur intuitiv verstehen. Ich weiß nur, dass ich nicht darauf verzichten kann (nachdem ich in dieser Zeit die PMP-Prüfung abgeschlossen habe, werde ich anfangen, diese Bücher über Cisco zu lesen. Ich werde nicht über die Zertifizierung sprechen, aber ich werde diese Bücher zuerst sorgfältig lesen, um mein Netzwerk zu stärken). 3: Nicht vertraut mit dem Docker-Netzwerkmodus (lesen Sie in der nächsten Zeit sorgfältig die offizielle Dokumentation des Docker-Netzwerks) Das ist alles für diesen Artikel. Ich hoffe, dass der Inhalt dieses Artikels für Ihr Studium oder Ihre Arbeit von gewissem Referenzwert ist. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM. Das könnte Sie auch interessieren:
|
<<: Detaillierter Installationsprozess und Konfiguration von mysql5.7.19 zip
>>: Implementierungsbeispiel zum Hochladen mehrerer Anhänge in Vue
Vorwort: Für die Implementierung digitaler Additi...
Wenn wir unter CentOS 7 den Host-Port mit einem B...
Das Projekt interagiert mit dem Server, greift üb...
Inhaltsverzeichnis 1. Einleitung 2. Der Unterschi...
Inhaltsverzeichnis 1. MySQL-Kompilierung und -Ins...
Einführung Wenn wir die MySQL-Datenbank verwenden...
Bei Verwendung einer Oracle-Datenbank für Fuzzy-A...
In der neuesten Version von Ubuntu müssen Benutze...
Inhaltsverzeichnis Überblick 1. Stapeln und Aufhä...
Lösung 1: Laden Sie die Datei msvcr100.dll herunt...
In diesem Artikel wird eine einheitliche Bewegung...
Verschlüsselung und Entschlüsselung sind wichtige...
1 Ziehen Sie das Bild von hup Docker-Pull Nginx 2...
Ein einfaches Beispiel für die Verwendung der dre...
<!--[if IE 6]> Nur IE6 kann erkennen <![e...