GNU/Linux >> Tutoriales Linux >  >> Linux

Netcat deja de escuchar el tráfico UDP

Entonces, hay varias cosas llamadas netcat; ubuntu incluso tiene /etc/alternatives simbólico-link-hackery para ello.

Creo que parte de su problema es que UDP no realiza sesiones; He copiado parte del archivo /usr/share/doc/netcat-traditional/README.gz a continuación, que explica bastante bien.

Las conexiones UDP se abren en lugar de TCP cuando se especifica -u. Estas no son realmente "conexiones" per se, ya que UDP es un protocolo sin conexión, aunque netcat utiliza internamente el mecanismo de "socket UDP conectado" que admite la mayoría de los núcleos. Aunque netcat afirma que una conexión UDP saliente está "abierta" inmediatamente, no se envían datos hasta que se lee algo de la entrada estándar. Solo después es posible determinar si realmente hay un servidor UDP en el otro extremo y, a menudo, simplemente no se puede saber. La mayoría de los protocolos UDP usan tiempos de espera y reintentos para hacer lo suyo y, en muchos casos, no se molestarán en responder en absoluto, por lo que debe especificar un tiempo de espera y esperar lo mejor. Obtendrá más de las conexiones UDP si la entrada estándar se alimenta de una fuente de datos que se parece a varios tipos de solicitudes del servidor.

Bien, tal vez esa no sea una explicación tan buena, pero es lo que pude encontrar.

Si aún no lo ha hecho, es posible que desee experimentar con cualquier opción de netcat que pueda encontrar que tenga que ver con la espera... ¿ha experimentado con:

  • usando -l así como -u para asegurarse de que está en modo de "escucha"

  • -vv para ver exactamente lo que está pasando

  • -q -1 ...que debería "esperar por siempre" incluso después de recibir EOF (con suerte, ¿escuchar de nuevo?)


Puedes usar socat para eso. Tiene una muy buena opción fork :

fork Después de establecer una conexión, maneja su canal en un proceso secundario y mantiene el proceso principal intentando producir más conexiones, ya sea escuchando o conectándose en un bucle (ejemplo).

Cliente (sí, esto se ejecuta desde el cliente):

$ 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. Una introducción a los firewalls de aplicaciones web para administradores de sistemas Linux

  2. Centos:¿Systemd versión 219 de Centos 7 escuchando en un puerto Udp aleatorio?

  3. Configuración de Xdmcp para Lightdm, ¿los puertos no escuchan?

  4. Musique:un reproductor de música para una experiencia auditiva única

  5. Prácticas recomendadas para soportar la ráfaga de tráfico del día del lanzamiento

4 distribuciones de Linux para juegos

Una introducción a bpftrace para Linux

Elegir una impresora para Linux

Cómo comprobar los puertos de escucha en Linux (Puertos en uso)

Cómo usar Wireshark para capturar y analizar paquetes de red

5 ejemplos del comando Netcat (nc) en Linux