Uso de la versión busybox de Netcat para escuchar el puerto TCP
Pregunta
Necesito escuchar un puerto arbitrario dentro de la caja incorporada de Linux. Elegí el puerto 6660 porque está destinado a las conexiones sin cifrar de todos modos y, dado que la caja de Linux ejecuta el sistema operativo Linux personalizado, no hay muchos puertos abiertos. Descubrí que NetCat (NC en la línea de comandos) sería la solución más fácil y la mejor lista para ir para eso, por lo que no tengo que comenzar a programar algún programa C para ese propósito.
Me las arreglé para captar el comando y las opciones e implementé la forma más sencilla de escuchar texto simple en mi PC de otra PC como esta:
sven@sven:~$ nc 192.168.4.110 6660
sven@sven:~$ hello there!
anotherUser@userg:~$ nc -l -p 6660
anotherUser@userg:~$ hello there!
Pero el caso es que la herramienta NetCAT viene con el paquete BusyBox en ese cuadro Linux. Y no estoy seguro de cuál sería la sintaxis cómo escuchar un puerto (6660 por ejemplo). Siempre obtengo el mismo diálogo:
~ # nc -l -p 6660
BusyBox v1.17.1 (Debian 1:1.17.1-8) multi-call binary.
Usage: nc [IPADDR PORT]
Open a pipe to IP:PORT
También he intentado muchas otras formas en implementar la escucha, pero no puedo hacerlo. ¿Supongo que al menos me daría alguna opción? también
nc -h
o
nc --help
No dale ninguna opción "menos"
Pero enviando el texto desde el cuadro incrustado de Linux a mi PC funciona:
~ # nc 192.168.4.130 6660
fsdf
tere
^C
~ #
sven@sven:~$ nc -l -p 6660
fsdf
tere
La caja incorporada de Linux tiene una conexión neta completamente funcional dentro de la misma red local y tiene enlaces ETH0 y LO existentes
eth0 Link encap:Ethernet HWaddr D0:E3:47:00:03:5F
inet addr:192.168.4.179 Bcast:192.168.4.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:28046281 errors:0 dropped:0 overruns:0 frame:0
TX packets:428464 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:2458890234 (2.2 GiB) TX bytes:83021395 (79.1 MiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:2282 errors:0 dropped:0 overruns:0 frame:0
TX packets:2282 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:444956 (434.5 KiB) TX bytes:444956 (434.5 KiB)
Töövõite!
Solución
Aquí está la página manual para la implementación de NC de BusyBox .
La sintaxis correcta es
nc -l -p <port>
El problema es que, creo que su versión de busybox está compilada sin capacidades de audición de NC.De hecho, hay una opción de configuración en la hora de construcción, NC_SERVER
, que debe estar habilitado para activar esa función.
¿Puede construir otro nc
, tal vez de esta versión y copie el binario en su host incrustado?Es posible que deba construir un entorno de compilador cruzado.