有没有一种方法可以快速绑定到TCP端口/ IP地址,并简单地将所有信息打印到STDOUT?我有一个简单的调试解决方案,它可以将内容写入127.0.0.1:4444,并且我希望能够简单地从bash绑定端口并打印遇到的所有内容。是否有捷径可寻?
Answers:
$ nc -k -l 4444 > filename.out
看到 nc(1)
nc
如果不这样运行,我会反复连接和断开与插座的连接,然后死亡while true; do nc -l 4444; done
。
ncat
代替nc
(它捆绑在一起,nmap
并且是的现代体现nc
)
只是因为您在中问过如何做bash
,尽管netcat
答案非常有效:
$ exec 3<>/dev/tcp/127.0.0.1/4444
$ cat <&3
可以按照您的预期工作:
nc -k -l 4444 |bash
然后你
echo "ls" >/dev/tcp/127.0.0.1/4444
然后您会看到bash执行的列表。
[简短的安全警告]
当然,如果让这样的事情在您的计算机上运行,您将拥有开放的网关来应对各种攻击,因为可以从网络中任何主机上的任何用户帐户发送命令。这根本不实现安全性(身份验证,标识),并且通过网络发送所有未加密的传输命令,因此很容易被滥用。
/dev/tcp
,则可以运行:echo "ls" | nc 127.0.0.1 4444
ls
不会显示出来
--enable-net-redirections
。
使用ncat
提到的@Freedom_Ben添加答案:
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
ncat
附带nmap
并支持并发连接,而legacync
命令则不支持。