with test scan receive permanently bash tcp netcat

test - receive udp bash



Servidor de eco con bash (4)

Cómo escribir un script bash de servidor de eco usando herramientas como nc, echo, xargs, etc. capaces de procesar simultáneamente solicitudes de múltiples clientes, cada una con conexión duradera.

Lo mejor que he encontrado hasta ahora es

nc -l -p 2000 -c ''xargs -n1 echo''

pero solo permite una conexión única.


Aquí hay unos ejemplos. servicios simples ncat

Servidor de eco TCP

ncat -l 2000 --keep-open --exec "/bin/cat"

Servidor de eco UDP

ncat -l 2000 --keep-open --udp --exec "/bin/cat"


Si utiliza ncat en lugar de nc, su línea de comando funciona bien con varias conexiones, pero (como ha señalado) sin -p.

ncat -l 2000 -k -c ''xargs -n1 echo''

ncat está disponible en http://nmap.org/ncat/ .

PS con el netcat original de Hobbit (nc) el indicador -c no es compatible.

Actualización: ahora se requiere -k (--keep-open) para manejar múltiples conexiones.


En caso de que ncat no sea una opción, socat también funcionará:

socat TCP4-LISTEN:2000,fork EXEC:cat

La fork es necesaria, por lo que se pueden aceptar conexiones múltiples. Agregar reuseaddr a TCP4-LISTEN puede ser conveniente.


netcat solución de netcat preinstalada en Ubunutu

El netcat preinstalado en Ubuntu 16.04 proviene de netcat-openbsd , y no tiene opción -c , pero el manual ofrece una solución:

sudo mknod -m 777 fifo p cat fifo | netcat -l -k localhost 8000 > fifo

Entonces ejemplo del cliente:

echo abc | netcat localhost 8000

TODO: ¿cómo modificar el valor de la cadena de entrada? Lo siguiente no devuelve ninguna respuesta:

cat fifo | tr ''a'' ''b'' | netcat -l -k localhost 8000 > fifo

El ejemplo de shell remoto sin embargo funciona:

cat fifo | /bin/sh -i 2>&1 | netcat -l -k localhost 8000 > fifo

Sin embargo, no sé cómo tratar con solicitudes simultáneas.