如何使用nc监听多个tcp连接

Ama*_*ain 25 linux tcp netcat

如何创建nc用于侦听多个主机的TCP连接?

nc -l -p 12345
Run Code Online (Sandbox Code Playgroud)

Han*_* Z. 17

无法同时连接netcat.你应该使用类似ucspi-tcptcpserver工具或杠杆作用xinetd,因为你是在Linux上.

请参阅:https://superuser.com/questions/232747/netcat-as-a-multithread-server

可以通过netcat在完成后重新启动的shell脚本来处理连续的连接.

  • nc -k将在前一个完成时处理传入连接,并且在处理第一个连接时仍然可以接受第二个连接. (4认同)

mas*_*ilo 12

ncat 可以做到.

例如,ncat --broker --listen -p 12345将所有传入的消息分发给所有其他客户端(将其视为集线器).

  • 为了明确起见,`ncat -l -p 12345`可以满足OP的要求。使用--broker的示例很有趣,但与该特定问题无关。 (2认同)
  • @Ryan您介意尝试`ncat -k -l -p 12345`吗?没错,我在上面发布的命令行不起作用,但是`--broker`将导致侦听过程不向stdout输出任何内容,而是将其接收的所有数据复制回(其他)客户端,这肯定是不是OP要求的。 (2认同)
  • @ToddOwen不幸的是,“ Ncat:UDP模式不支持-k或--keep-open选项,但--exec或--sh-exec除外。” (2认同)

dyn*_*yng 11

我建议socat作为nc替代方案.

对于OP的问题,socat - TCP-LISTEN:12345,fork,reuseaddr可以完成这项工作.


小智 9

-k
强制nc在当前连接完成后继续侦听另一个连接.如果没有-l选项,则使用此选项会出错.

  • 这不符合OP的问题.他们希望能够同时监听两个或更多连接,而不是背对背连接. (7认同)
  • 这应该是公认的答案。使用 -k,netcat 将接受多个连接,但一次只能处理一个。这是我登陆此页面时正在寻找的确切答案。 (3认同)