Bash中的简单套接字服务器?

时间:2011-01-19 18:33:39

标签: linux bash sockets tcp

有没有办法快速绑定到TCP端口/ IP地址,只需将所有信息打印到STDOUT?我有一个简单的调试解决方案,它将事情写入127.0.0.1:4444,我希望能够简单地从bash绑定一个端口并打印出来的所有内容。有一个简单的方法吗?

4 个答案:

答案 0 :(得分:100)

$ nc -k -l 4444 > filename.out

请参阅nc(1)

答案 1 :(得分:45)

仅仅因为您在bash中询问了如何执行此操作,但netcat答案非常有效:

  $ exec 3<>/dev/tcp/127.0.0.1/4444
  $ cat <&3

答案 2 :(得分:10)

这正如您所期望的那样:

rows

然后你

 nc -k -l 4444 |bash

然后你会看到bash执行的列表。

[简要安全警告]
当然,如果你在计算机上运行这样的东西,你就会有一个开放的网关来进行各种攻击,因为命令可以从你网络中任何主机上的任何用户帐户发送。这不会实现任何安全性(身份验证,身份验证),并通过网络发送未加密的所有传输命令,因此很容易被滥用。

答案 3 :(得分:4)

使用@Freedom_Ben提到的ncat添加答案:

ncat -k -l 127.0.0.1 4444

和man ncat的选项说明:

-k, --keep-open            Accept multiple connections in listen mode
-l, --listen               Bind and listen for incoming connections