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

标签 linux listener port netcat busybox

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

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

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

但情况是 netcat 工具是随 busybox 软件包一起提供在那个 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 embedded box 在同一本地网络内具有功能齐全的网络连接,并且具有现有的 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!

最佳答案

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

正确的语法是

nc -l -p <port>

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

你能构建另一个 nc 吗,也许来自 this version ,并将二进制文件复制到您的嵌入式主机上?您可能需要构建交叉编译环境。

关于linux - 使用 BusyBox 版本的 netcat 监听 tcp 端口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9702447/

相关文章:

c++ - 将队列用作全局队列并从 main 处理其内容

c - 如何设置errno值?

Android OnTouchListener 停用按钮布局状态

ssl - 在 IIS7 Windows server 2008R2 上运行多个具有相同 ip 和端口的网站

python - 属性错误 : 'module' object has no attribute 'windll' in python

linux - 尝试使用 apt-get 下载并安装指定目录

mysql - 运行 xampp 的问题

docker - 在用于Docker的Erlang Ephemeral端口选择上设置特定范围

c# - 服务器通知客户端它已初始化的最佳方式

Java swing下拉选择监听器