GNU/Linux >> Linux Esercitazione >  >> Linux

Netcat interrompe l'ascolto del traffico UDP

Quindi ci sono più cose chiamate netcat; ubuntu ha persino /etc/alternatives link-hackery simbolico.

Penso che parte del tuo problema sia che UDP non fa sessioni; Ho copiato parte del file /usr/share/doc/netcat-traditional/README.gz qui sotto che fa un ottimo lavoro di spiegazione.

Le connessioni UDP vengono aperte invece di TCP quando viene specificato -u. Queste non sono realmente "connessioni" in quanto UDP è un protocollo senza connessione, sebbene netcat utilizzi internamente il meccanismo di "socket UDP connesso" supportato dalla maggior parte dei kernel. Sebbene netcat affermi che una connessione UDP in uscita è "aperta" immediatamente, nessun dato viene inviato fino a quando non viene letto qualcosa dallo standard input. La maggior parte dei protocolli UDP utilizza timeout e tentativi per eseguire le proprie operazioni e in molti casi non si preoccupa affatto di rispondere, quindi è necessario specificare un timeout e sperare per il meglio. Otterrai di più dalle connessioni UDP se l'input standard viene alimentato da una fonte di dati che assomiglia a vari tipi di richieste del server.

OK, forse non è una gran bella spiegazione, ma è quello che sono riuscito a trovare.

Se non l'hai ancora fatto, potresti voler sperimentare qualsiasi opzione netcat che puoi trovare che avrebbe a che fare con l'attesa... hai sperimentato con:

  • usando -l così come -u per assicurarti di essere in modalità "ascolto"

  • -vv per vedere esattamente cosa sta succedendo

  • -q -1 ...che dovrebbe "aspettare per sempre" anche dopo aver ricevuto EOF (si spera, ascolto di nuovo?)


Puoi usare socat per quello. Ha un'opzione molto interessante fork :

fork Dopo aver stabilito una connessione, gestisce il suo canale in un processo figlio e fa in modo che il processo padre tenti di produrre più connessioni, ascoltando o connettendosi in un ciclo (esempio).

Client (sì, questo lo esegui dal client):

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

Cliente:

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

Linux
  1. Centos – Versione Systemd 219 di Centos 7 in ascolto su una porta Udp casuale?

  2. Configurazione Xdmcp per Lightdm, le porte non ascoltano?

  3. Bluetooth Low Energy:ascolto di notifiche/indicazioni in Linux

  4. netcat - continua ad ascoltare la connessione in Debian

  5. Esiste un equivalente di cd - per cp o mv?

4 distribuzioni Linux per i giochi

Un'introduzione a bpftrace per Linux

Scegliere una stampante per Linux

Come controllare le porte di ascolto in Linux (porte in uso)

Come utilizzare Wireshark per acquisire e analizzare i pacchetti di rete

5 Esempi del comando Netcat (nc) in Linux