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

Netcat hört auf, auf UDP-Verkehr zu lauschen

Es gibt also mehrere Dinge, die netcat genannt werden; Ubuntu hat sogar /etc/alternatives symbolic-link-hackery dafür.

Ich denke, ein Teil Ihres Problems ist, dass UDP keine Sitzungen durchführt. Ich habe einen Teil der Datei /usr/share/doc/netcat-traditional/README.gz unten kopiert, was ziemlich gut erklärt.

UDP-Verbindungen werden anstelle von TCP geöffnet, wenn -u angegeben ist. Dies sind eigentlich keine "Verbindungen", da UDP ein verbindungsloses Protokoll ist, obwohl netcat intern den "connected UDPsocket"-Mechanismus verwendet, den die meisten Kernel unterstützen. Obwohl netcat behauptet, dass eine ausgehende UDP-Verbindung sofort „offen“ ist, werden keine Daten gesendet, bis etwas von der Standardeingabe gelesen wird. Die meisten UDP-Protokolle verwenden Zeitüberschreitungen und Wiederholungsversuche, um ihr Ding zu erledigen, und in vielen Fällen werden sie sich nicht die Mühe machen, überhaupt zu antworten, also sollten Sie eine Zeitüberschreitung angeben und auf das Beste hoffen. Sie werden mehr aus UDP-Verbindungen herausholen, wenn die Standardeingabe aus einer Datenquelle gespeist wird, die wie verschiedene Arten von Serveranfragen aussieht.

OK, vielleicht ist das keine so gute Erklärung, aber ich konnte es finden.

Wenn Sie es noch nicht getan haben, möchten Sie vielleicht mit allen Netcat-Optionen experimentieren, die Sie finden können und die mit Warten zu tun haben ... haben Sie damit experimentiert:

  • Verwenden Sie sowohl -l als auch -u, um sicherzustellen, dass Sie sich im "lauschenden" Modus befinden

  • -vv, um genau zu sehen, was passiert

  • -q -1 ...was "ewig warten" sollte, selbst nachdem es EOF empfangen hat (hoffentlich wieder zuhören?)


Sie können socat verwenden dafür. Es hat eine sehr schöne Option fork :

fork Verwaltet nach dem Herstellen einer Verbindung seinen Kanal in einem untergeordneten Prozess und hält den übergeordneten Prozess bei dem Versuch, weitere Verbindungen herzustellen, entweder durch Zuhören oder durch Verbinden in einer Schleife (Beispiel).

Client (ja, das führen Sie vom Client aus):

$ ssh -L 7753:localhost:7753 YourServer.com "/usr/bin/socat tcp4-listen:7753,reuseaddr,fork UDP:8.8.8.8:53"

Kunde:

$ sudo socat udp4-listen:53,reuseaddr,fork tcp:localhost:7753
$ dig @127.0.0.1 google.com

Linux
  1. Eine Einführung in Web Application Firewalls für Linux-Systemadministratoren

  2. Centos – Systemd Version 219 von Centos 7 auf zufälligem UDP-Port lauschen?

  3. Musique – Ein Musikplayer für ein einzigartiges Hörerlebnis

  4. Bluetooth Low Energy:Abhören von Benachrichtigungen/Hinweisen unter Linux

  5. netcat - in Debian weiter auf Verbindung warten

4 Linux-Distributionen für Spiele

Eine Einführung in bpftrace für Linux

Auswählen eines Druckers für Linux

So suchen Sie unter Linux nach Listening Ports (Ports in use)

Verwendung von Wireshark zum Erfassen und Analysieren von Netzwerkpaketen

5 Beispiele für den Befehl Netcat (nc) unter Linux