Detaillierte Erläuterung der erzwungenen Freigabe belegter Ports unter Linux und der Methode zum Öffnen von Ports in der Linux-Firewall

Detaillierte Erläuterung der erzwungenen Freigabe belegter Ports unter Linux und der Methode zum Öffnen von Ports in der Linux-Firewall

Bei der Installation von Nginx, MySQL, Tomcat und anderen Diensten kann es vorkommen, dass die benötigten Ports unerklärlicherweise belegt sind. So lösen Sie dieses Problem.

Wenn wir von Ports sprechen, müssen wir Firewalls erwähnen. Dieser Artikel stellt auch kurz vor, wie man Firewall-Entwicklungsports konfiguriert.

Verschiedene Methoden zum Anzeigen des Portstatus in Linux

Die Zuordnungsbeziehungen aller Ports befinden sich in der Datei /etc/services.

Eine kurze Einführung in Linux-Ports. Die Portnummern reichen von 0 bis 65536. Die Verwendung jedes nummerierten Ports ist wie folgt:

0-1023: Bekannte Ports, an gängige Dienste gebunden (FTP, SSH)

1024-49151: registrierter Port, wird zur Bindung an einige Dienste verwendet

49152-65535: Dynamische oder private Ports, können für jede Netzwerkverbindung verwendet werden

Ports werden in die Übertragungsprotokolle TCP und UDP unterteilt.

Linux-Befehl „Portstatus anzeigen“

Mit dem folgenden Befehl können Sie den Portstatus überprüfen. Klicken Sie auf den Befehl, um die Nutzungsdetails jedes Befehls anzupassen:

nmap -Befehl, Port-Scanning verwenden

netstat erkennt den Entwicklungsport

lsof prüft Portdeskriptoren

# Zeigen Sie den an diese Maschine gebundenen Port an nmap 127.0.0.1

# Überprüfen Sie Port 3306 netstat -anlp | grep 3306

# Überprüfen Sie die Schnittstelle 3306 lsof -i:3306

So geben Sie belegte Ports in Linux frei

Die Lösungsschritte sind wie folgt:

Suchen Sie den Prozess, der den Port belegt

Beenden Sie den Prozess

Verwenden Sie den folgenden Befehl:

# Kann als Befehl geschrieben werden

netstat -anp|grep 8080|awk '{print $7}'|awk -F '/' '{print $1}'|xargs kill -s 9

Die Bedeutung der einzelnen Befehle ist wie folgt:

netstat -anp zeigt die gesamte Netzwerknutzung an und zeigt die Programme an, die sie verwenden

grep 8080 gleicht die Datensätze von Port 8080 ab (kann 18080 enthalten)

awk '{print $7}' gibt den Prozess in der 7. Spalte im folgenden Format aus: 18989/nginx

awk -F '/' '{print $1}' fängt den Prozess PID ab: 18989

xargs kill -s 9 verwendet die Ausgabe des vorherigen Befehls als Parameter, um den Prozess zu beenden

Schrittweise Lösung zur Freigabe belegter Ports

Prüfen Sie, ob der Port belegt ist

Wenn Sie beispielsweise überprüfen müssen, ob Port 8080 belegt ist, können Sie den folgenden Befehl verwenden

netstat -an | grep 8080

Abfrage des Prozesses, der den Port belegt

Mit dem Befehl lsof können Sie

lsof -i:8080

Sie können auch netstat und grep verwenden, um

netstat -anp|grep 8080

Die letzte Zeile des Befehls ist die PID und der Name des Prozesses, der Port 8080 belegt.

Beenden Sie den Prozess, der den Port belegt

Mit dem Kill-Befehl können Sie den im vorherigen Schritt ermittelten Prozess direkt beenden.

kill -9 19664

Linux-Firewall gibt Ports frei

Starten und Herunterfahren der Linux-Firewall

Die unten vorgestellte Firewall ist iptable und nicht auf Firewalld anwendbar.

Firewall einschalten (dauerhaft nach Neustart): chkconfig iptables on
Firewall ausschalten (dauerhaft nach Neustart): chkconfig iptables off
Aktivieren Sie die Firewall (wird sofort wirksam und ist nach einem Neustart ungültig): service iptables start
Deaktivieren der Firewall (sofort wirksam, ungültig nach Neustart): service iptables stop
Starten Sie die Firewall neu: service iptables restart

Überprüfen Sie den Firewall-Status in Linux

Zum Anzeigen können Sie den folgenden Befehl verwenden:

/etc/init.d/iptables Status

# Oder einfach iptables status
iptables -L

# Sie können auch direkt die Konfigurationsdatei vim /etc/sysconfig/iptables anzeigen 

Öffnen Sie einen Port in der Linux-Firewall

Um beispielsweise Port 8080 zu öffnen, verwenden Sie den folgenden Befehl:

iptables -A INPUT -p tcp --dport 8080 -j AKZEPTIEREN
# Sie müssen auch den Dienst service iptables restart neu starten

# Sie können auch direkt die Konfigurationsdatei vim /etc/sysconfig/iptables bearbeiten
# Fügen Sie dann am Ende der Datei eine Zeile hinzu, um alle Ports zwischen 8080 und 8181 zu öffnen: iptables -A INPUT -p tcp --dport 8080:8181 -j ACCEPT

In

Der Parameter –A dient zum Hinzufügen einer Regel
–p gibt das Protokoll an, normalerweise verwenden wir das TCP-Protokoll, natürlich gibt es auch UDP
–dport ist der Zielport. Wenn Daten von außen auf den Server gelangen, ist dies der Zielport.
–sport gehen vom Server aus, daher wird dieser als Datenquellenport verwendet.
–j gibt ACCEPT - Empfangen oder DROP nicht Empfangen an

Oben geht es um die erzwungene Freigabe belegter Ports unter Linux und die Methode zum Öffnen von Ports in der Linux-Firewall. Weitere Artikel zu Linux-Ports finden Sie in den entsprechenden Artikeln unten.

Das könnte Sie auch interessieren:
  • So gehen Sie mit dem Problem um, dass die Datei gelöscht wird, der Speicherplatz in Linux jedoch nicht freigegeben wird
  • Manuelles Freigeben des Linux-Serverspeichers (bestimmte Schritte)
  • CCKiller: Ein leichtes CC-Angriffsabwehrtool für Linux, das Ziele in Sekundenschnelle prüft, automatisch blockiert und freigibt
  • Zusammenfassung der Linux-Befehle zum Bereinigen/Freigeben des Speichers
  • Detaillierte Erläuterung des Linux-Befehls zur Speicherfreigabe
  • Detaillierte Erklärung zum manuellen Freigeben des Caches in Linux
  • Detaillierte Erläuterung des Problems, dass der Speicherplatz nach dem Löschen der Linux-Datei nicht freigegeben wird

<<:  Detaillierte Beispiele zur Konvertierung von Zeilen in Spalten und Spalten in Zeilen in MySQL

>>:  Mehrere Möglichkeiten zum Generieren eindeutiger IDs in JavaScript

Artikel empfehlen

Detaillierte Erläuterung der MySQL-Partitionsfunktion und Beispielanalyse

Zunächst: Was ist Datenbankpartitionierung? Ich h...

Design-Story: Der Wachmann, der sich Nummernschilder nicht merken kann

<br />Um die Fahrzeuge zu regeln, die in die...

Tutorial zur MySQL-Optimierung: Große Paging-Abfrage

Inhaltsverzeichnis Hintergrund LIMIT-Optimierung ...

Detaillierte Analyse des React Diff-Prinzips

Inhaltsverzeichnis Diffing-Algorithmus Schicht-fü...

Detaillierte Erklärung des Flex-Layouts in CSS

Flex-Layout wird auch elastisches Layout genannt....

MySQL-Grundlagen - Kurzanleitung - Wissenszusammenfassung (mit Mindmap)

Inhaltsverzeichnis Vorwort 1. Grundkenntnisse der...

Lösung für das Problem von var in einer for-Schleife

Vorwort var ist eine Möglichkeit, Variablen in ES...

Implementierung der MVCC-Mehrversions-Parallelitätskontrolle von MySQL

1 Was ist MVCC Der vollständige Name von MVCC lau...

12 nützliche Array-Tricks in JavaScript

Inhaltsverzeichnis Array-Deduplizierung 1. from()...

Verstehen Sie die Implementierung des Nginx-Standortabgleichs in einem Artikel

Da das Team Front-End und Back-End trennt, überni...

So stellen Sie MySQL so ein, dass die Groß-/Kleinschreibung nicht beachtet wird

MySQL auf Groß-/Kleinschreibung eingestellt Windo...

Der visuelle Designpfad der Website sollte den Benutzergewohnheiten entsprechen

Cooper sprach über den visuellen Pfad des Benutze...