客户端连接时出现 Ncat "bad file descriptor" 错误

Ncat "bad file descriptor" error upon client connection

问题

我一直在尝试使用 Ncat 查看 CentOS 虚拟机上的一些 TCP 流量。但是,在这台特定的机器上,我什至无法建立简单的 server/client 通信。

我打开一个 TCP 套接字作为 "server" 或侦听器(如果我用错了正确的术语,请原谅我)

1 号航站楼:

$ ncat -l 12345

然后,在一个单独的终端中,我启动客户端连接并尝试发送一个随机字符串:

2 号航站楼:

$ ncat my_hostname 13245
 <Random string to send>

这会从我的 TCP "server"

引发以下错误

1 号航站楼:

close: Bad file descriptor

2 号航站楼:

Ncat: Broken pipe.

我已经 运行 通过 cygwin 执行了这个确切的命令序列,它们工作正常。我不确定是什么原因造成的(除非是缺少 root 权限?见下文)。寻找调试的东西。如果它是 root 权限或者可能是我如何在没有 root 权限的情况下验证它?

额外(相关?)信息

我有运行

$ Ncat my_hostname <port that I know has a TCP connection>

它输出了很多乱码。同时,当我尝试使用 tcpflow 监听同一个端口时,它告诉我我没有权限。那么,这可能只是 Ncat 没有明确告诉我的权限问题吗?我在这台机器上没有 root 权限,所以我无法测试这个假设

我遇到了同样的问题。 我通过指定协议族版本解决了这个问题。 nc -4 // 使用 ipv4 你可以试试