使用 BusyBox 版本的 netcat 监听 tcp 端口
Posted
技术标签:
【中文标题】使用 BusyBox 版本的 netcat 监听 tcp 端口【英文标题】:Using BusyBox version of netcat for listening tcp port 【发布时间】:2012-03-30 22:34:48 【问题描述】:我需要监听 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 机器上随忙盒包一起提供的。而且我不确定如何监听端口(例如 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 嵌入式框发送到我的 PC 可以:
~ # 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】:Here's the manual page for busybox's nc implementation.
正确的语法是
nc -l -p <port>
我认为,问题在于您的busybox 版本是在没有nc 监听功能的情况下编译的。实际上,在构建时有一个配置选项NC_SERVER
,需要启用它才能打开该功能。
您能否构建另一个nc
,可能来自this version,并将二进制文件复制到您的嵌入式主机上?您可能需要构建一个交叉编译器环境。
【讨论】:
以上是关于使用 BusyBox 版本的 netcat 监听 tcp 端口的主要内容,如果未能解决你的问题,请参考以下文章