使用 netcat 或 socat 的回显服务器

使用 netcat 或 socat 的回显服务器

我想要一个 UDP 回显服务器来获取数据包,并准确回复收到的内容。如何使用netcat或简单地做到这一点socat?它应该永远保持活动状态并处理来自多个主机的数据包。

答案1

另一个类似 netcat 的工具是 nmap 版本,ncat它有很多内置功能可以简化此类操作。这将有效:

ncat -e /bin/cat -k -u -l 1235

-e 表示执行 /bin/cat(回显您输入的内容)
-k 表示保持活动状态,即每次连接后都保持监听
-u 表示 udp
-l 1235 表示在 1235 端口上监听

答案2

我曾经socat -v PIPE udp-recvfrom:5553,fork运行服务器和socat - udp:localhost:5553客户端。 很有帮助!

答案3

您还可以使用 socat(而不是使用 netcat)作为回显服务器,并使用 netcat 作为客户端。

Socat 回显服务器(监听 TCP 端口 1234):

socat -v tcp-l:1234,fork exec:'/bin/cat'

Netcat 客户端(连接到 TCP 端口 1234 上的 serverip):

nc serverip 1234

答案4

您可以编写一个 C 程序叉子 nc -u -l -p 4321然后使用重复(2)连接:

  • nc stdin 与父级的 stdout
  • nc stdout 与父级的 stdin

然后,在无限循环中,父级从 stdin 读取并将读取的内容写入 stdout。

相关内容