使用BusyBox版本的netcat来监听tcp端口

时间:2012-03-14 12:58:43

标签: linux listener port netcat busybox

我需要在Linux嵌入式盒子里面听一些任意端口。 我选择了端口6660,因为它无论如何都是用于未加密的连接,并且由于运行自定义Linux操作系统的Linux机箱没有很多端口打开。 我发现netcat(命令行上的nc)将是最容易和最好的解决方案,因此我不必为此目的开始编写一些C程序。

我设法掌握了命令和选项,并且我实现了最简单的方法来从另一台PC上在我的电脑上听纯文本,如下所示:

sven@sven:~$ nc 192.168.4.110 6660
sven@sven:~$ hello there!
anotherUser@userg:~$ nc -l -p 6660
anotherUser@userg:~$ hello there!

但是案例是netcat工具与Linux盒子上的busybox包一起出现。而且我不确定如何监听端口的语法(例如6660)。我总是得到同样的对话:

~ # 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

此外,我还尝试了许多其他方法来实现听力,但无法完成。 我假设至少会给我任何选择吗?还

nc -h

nc --help

不要给任何“减号”选项

但是将Linux嵌入式文本框中的文本发送到我的电脑上:

~ # nc 192.168.4.130 6660
fsdf
tere
^C
~ #
sven@sven:~$ nc -l -p 6660
fsdf
tere

Linux嵌入式盒子在同一本地网络内部具有全功能网络连接,并且已存在eth0和lo链接

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!

1 个答案:

答案 0 :(得分:14)

Here's the manual page for busybox's nc implementation

正确的语法是

nc -l -p <port>

我认为问题是你的busybox版本是在没有nc监听功能的情况下编译的。确实在构建时{(1}})有一个配置选项,需要启用它才能打开该功能。

您是否可以从this version构建另一个NC_SERVER,并将二进制文件复制到嵌入式主机上?您可能需要构建交叉编译环境。