使用 netcat 监听端口并在客户端连接时发送命令的输出

使用 netcat 监听端口并在客户端连接时发送命令的输出

我有一个连接到 LAN 的 Raspberry Pi(Debian Linux),它可以从一些连接的设备读取数据并将其输出到 STDOUT。

假设该程序在“服务器”上运行,并且我想将脚本的输出提供/usr/bin/data给端口 1234。

我希望任何客户端都可以通过连接到该端口来获取该脚本的输出,使用类似

nc Server 1234 > ServerData.txt

我希望服务器保持活动状态,为每个连接运行脚本,提供数据,然后关闭与客户端的连接。服务器需要保持活动状态并等待下一个连接。

在服务器上运行的 netcat 命令是什么???

答案1

需要更高级的 netcat 版本之一。您可以使用ncatsocat

服务器端

当客户端连接时,执行可执行程序/usr/bin/data,并将程序输出发送给客户端。

NCAT 方法

$ ncat -l 1234 -c '/usr/bin/data' --keep-open

SOCAT 方法

$ socat -U TCP-LISTEN:5403,fork EXEC:'/usr/bin/data',stderr,pty,echo=0

客户端

连接到服务器,并接收来自服务器的输出。

NCAT 归档方法

$ ncat Server 1234 | tee ServerData.txt

NC(netcat)方法输出到 stdout

$ </dev/null nc <Server.ip> 5403 > /dev/stdout

保存到文件,用文件名替换 /dev/stdout

WGET 方法到文件

$ wget -q <Server.ip>:5403 -O myfile.txt

要打印结果,用 /dev/stdout 替换 myfile.txt

相关内容