如何强制 netcat 立即发送我的输入,而不仅仅是换行?我想手动测试一个 HTTP 解析器,并检查它在标题行分布在多个数据包中时的行为。
我在某些 Linux 机器上使用 netcat(请参阅其他问题),但看到了一些意外行为。
与已接受答案中的指南不同,我没有使用 UDP 隧道进行 DNS 查询。我有一个可以登录但不能安装软件的远程服务器,我正在尝试将 UDP 流量从我的计算机传输到服务器,然后设置一个单独的隧道将 UDP 响应从服务器发送回我的机器.
从我的机器到服务器的隧道工作正常,但是在服务器端,侦听来自 UDP 服务器的响应的 netcat 实例将在收到第一个响应后关闭侦听器。所以我可以发送一个请求并得到 1 个响应,但任何后续请求都可以正常发送到服务器,但没有收到响应。使用 netstat 我可以看到在收到响应之前 netcat 正在侦听,但是在收到响应后端口被关闭。
我机器上的 netcat 实例似乎可以很好地处理一切。两台机器都运行 netcat v1.10-38。任何想法发生了什么?
我已经尝试过 netcat 的两个主要版本:GNU 和 BSD。(我的是 BSD 版本)。
在 GNU 版本上,命令 $ nc -l -p 12345 可以正常工作,但是对于 BSD,选项 -l(listen)不能与 -p(本地端口)结合使用。
我不明白为什么这两个版本之间有这么大的区别?在 BSD 版本中,当我使用选项 -p 时,它会自动调用 -l (listen) ?
谢谢 ;-)
Ps:https : //bugs.launchpad.net/ubuntu/+source/netcat-openbsd/+bug/590925/comments/3 -p 两者不同。OpenBSD 版本使用它来设置远程连接的源端口,而传统的 nc 使用它来指定在侦听模式下将侦听的本地端口。