GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Linux-Fehlerbehebung:Einrichten eines TCP-Listeners mit ncat

Das Leben eines Systemadministrators ist hektisch, gehetzt und oft frustrierend. Was Sie also wirklich brauchen, ist eine Toolbox voller Tools, die Sie leicht erkennen und die Sie schnell und ohne weitere Lernkurve verwenden können, wenn die Dinge schlecht laufen. Ein solches Tool ist ncat Befehl.

ncat - Concatenate and redirect sockets

Der ncat Der Befehl hat viele Verwendungsmöglichkeiten, aber die, für die ich ihn verwende, ist die Fehlerbehebung bei Netzwerkverbindungsproblemen. Es ist ein praktisches, schnelles und einfach zu bedienendes Tool, ohne das ich nicht leben kann. Folgen Sie uns und sehen Sie, ob Sie sich entscheiden, es auch zu Ihrer Toolbox hinzuzufügen.

Von der ncat-Manpage:

Ncat ist ein funktionsreiches Netzwerkdienstprogramm, das Daten über Netzwerke von der Befehlszeile aus liest und schreibt. Ncat wurde für das Nmap-Projekt geschrieben und ist der Höhepunkt der derzeit zersplitterten Familie von Netcat-Inkarnationen. Es ist als zuverlässiges Back-End-Tool konzipiert, um anderen Anwendungen und Benutzern sofort Netzwerkkonnektivität bereitzustellen. Ncat funktioniert nicht nur mit IPv4 und IPv6, sondern bietet dem Benutzer eine praktisch unbegrenzte Anzahl von Einsatzmöglichkeiten.

Zu den zahlreichen Funktionen von Ncat gehört die Möglichkeit, Ncats miteinander zu verketten; Umleitung von TCP-, UDP- und SCTP-Ports zu anderen Sites; SSL-Unterstützung; und Proxy-Verbindungen über SOCKS4, SOCKS5 oder HTTP-Proxys (auch mit optionaler Proxy-Authentifizierung).

Firewall-Problem oder etwas anderes?

Sie haben gerade installiert und können von einem anderen Computer im selben Netzwerk keine Verbindung damit herstellen. Es ist frustrierend. Der Dienst ist aktiviert. Der Dienst wird gestartet. Sie denken, Sie haben die richtige Firewall-Ausnahme dafür erstellt, aber es reagiert nicht.

Ihr Problembehandlungsleben beginnt. In einem Zeitraum, der sich von Minuten über Tage bis unendlich und darüber hinaus erstrecken kann, versuchen Sie, das Problem zu beheben. Es könnte viele Dinge sein:eine falsch konfigurierte (oder nicht konfigurierte) Firewall-Ausnahme, ein NIC-Bindungsproblem, ein Softwareproblem irgendwo im Code des Dienstes, eine Dienstfehlkonfiguration, ein seltsames Kompatibilitätsproblem oder etwas anderes, das nichts mit dem Netzwerk oder der Dienstblockierung zu tun hat Zugriff. Das ist Ihr Szenario. Wo fangen Sie an, wenn Sie alle offensichtlichen Stellen überprüft haben?

Der ncat-Befehl zur Rettung

Der ncat sollte Teil Ihrer grundlegenden Linux-Distribution sein, aber wenn dies nicht der Fall ist, installieren Sie nmap-ncat Paket und Sie haben die neueste Version davon. Überprüfen Sie den ncat man-Seite für die Verwendung, wenn Sie an den vielen Funktionen interessiert sind, die über diese einfache Fehlerbehebungsübung hinausgehen.

Verwenden des ncat Befehl richten Sie einen TCP-Listener ein, bei dem es sich um einen TCP-Dienst handelt, der auf eine Verbindung von einem entfernten System an einem bestimmten Port wartet. Der folgende Befehl startet einen Listening-Socket auf TCP-Port 9999.

$ sudo ncat -l 9999

Dieser Befehl "hängt" Ihr Terminal. Sie können den Befehl in den Hintergrundmodus versetzen, um ähnlich wie ein Service-Daemon mit & zu arbeiten (kaufmännisches Und)-Signal. Ihre Eingabeaufforderung wird zurückgegeben.

$ sudo ncat -l 8080 &

Verwenden Sie von einem entfernten System aus den folgenden Befehl, um eine Verbindung herzustellen:

$ telnet <IP address of ncat system> 9999

Der Versuch sollte wie gezeigt fehlschlagen:

Trying <IP address of ncat system>...
telnet: connect to address <IP address of ncat system>: No route to host

Dies könnte der Nachricht ähneln, die Sie erhalten, wenn Sie versuchen, eine Verbindung zu Ihrem ursprünglichen Dienst herzustellen. Das erste, was Sie versuchen sollten, ist, dem ncat eine Firewall-Ausnahme hinzuzufügen System:

$ sudo firewall-cmd --add-port=9999/tcp

Dieser Befehl lässt TCP-Anfragen auf Port 9999 zu einem lauschenden Daemon auf Port 9999 passieren.

Versuchen Sie erneut, die Verbindung zum ncat herzustellen System:

$ telnet <IP address of ncat system> 9999

Trying <IP address of ncat system>...
Connected to <IP address of ncat system>.
Escape character is '^]'.

Diese Nachricht bedeutet, dass Sie jetzt mit dem Überwachungsport 9999 auf dem Remote-System verbunden sind. Verwenden Sie zum Trennen der Verbindung die Tastenkombination STRG + ] . Geben Sie Beenden ein um zu einer Eingabeaufforderung zurückzukehren.

$ telnet <IP address of ncat system> 9999

Trying <IP address of ncat system>...
Connected to <IP address of ncat system>.
Escape character is '^]'.
^]
telnet>quit
Connection closed.
$

Durch das Trennen wird auch der TCP-Listening-Port auf dem entfernten (ncat)-System beendet, versuchen Sie also nicht, eine andere Verbindung herzustellen, bis Sie ncat erneut ausgeben Befehl. Wenn Sie den Überwachungsport offen halten möchten, anstatt ihn jedes Mal, wenn Sie die Verbindung trennen, sterben zu lassen, geben Sie die Option -k (offen halten) ein. Diese Option hält den Listening-Port am Leben. Einige Systemadministratoren verwenden diese Option nicht, da sie möglicherweise einen Überwachungsport offen lassen, was möglicherweise Sicherheitsprobleme oder Portkonflikte mit anderen Diensten verursacht.

$ sudo ncat -k -l 9999 &

Was ncat dir sagt

Der Erfolg der Verbindung zum Abhörport von ncat system bedeutet, dass Sie einen Port an die NIC Ihres Systems binden können. Sie können erfolgreich eine Firewall-Ausnahme erstellen. Und Sie können von einem entfernten System erfolgreich eine Verbindung zu diesem Abhörport herstellen. Fehler entlang des Pfades helfen dabei, das Problem einzugrenzen.

Was ncat Ihnen nicht sagt

Leider gibt es bei dieser Fehlerbehebungstechnik keine Lösung für Verbindungsprobleme, die nicht mit Bindung, Portüberwachung oder Firewall-Ausnahmen zusammenhängt. Dies ist eine Sitzung zur Fehlerbehebung mit begrenztem Umfang, aber sie ist schnell, einfach und endgültig. Ich habe festgestellt, dass die meisten Verbindungsprobleme auf eines dieser drei Probleme hinauslaufen. Mein nächster Schritt in diesem Prozess wäre, das Servicepaket zu entfernen und neu zu installieren. Wenn das nicht funktioniert, laden Sie eine andere Version des Pakets herunter und prüfen Sie, ob das für Sie funktioniert. Versuchen Sie, mindestens zwei Revisionen zurückzugehen, bis Sie eine finden, die funktioniert. Sie können immer auf die neueste Version aktualisieren, nachdem Sie einen funktionierenden Dienst haben.

Abschluss

Der ncat Der Befehl ist ein nützliches Tool zur Fehlerbehebung. Dieser Artikel konzentrierte sich nur auf einen winzigen Aspekt der vielen Verwendungsmöglichkeiten für ncat . Fehlersuche ist ebenso eine Kunst wie eine Wissenschaft. Sie müssen wissen, welche Antworten Sie haben und welche nicht. Sie müssen keine Probleme beheben oder Dinge testen, die bereits funktionieren. Erkunden Sie ncat und prüfen Sie, ob Ihre Verbindungsprobleme schneller als zuvor verschwinden.

[ Netzwerk gerät außer Kontrolle? Sehen Sie sich Netzwerkautomatisierung für alle an, ein kostenloses Buch von Red Hat. ]


Linux
  1. Überwachen Sie Ihr Linux-System in Ihrem Terminal mit procps-ng

  2. Systemaufrufe unter Linux mit strace verstehen

  3. Linux-Fehlerbehebung 101:Systemleistung

  4. Balance zwischen Linux-Sicherheit und Benutzerfreundlichkeit

  5. Howto:C-Programmierung mit Verzeichnissen unter Linux

Linux-Verfügbarkeitsbefehl mit Beispielen

Erste Schritte mit dem Linux-Betriebssystem

Finden Sie Informationen zur Linux-Systemhardware mit Hwinfo

So zeigen Sie Linux-Systemstatistiken mit Saidar an

Meine Go-to-Fehlerbehebungsbefehle für Linux-Netzwerke

Einrichten eines Linux-Clusters mit Keepalived:Basiskonfiguration