客户端连接时出现Ncat“错误的文件描述符”错误

时间:2018-05-23 17:32:16

标签: tcp netcat

问题

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

我打开一个TCP套接字作为“服务器”或监听器(如果我误解了正确的术语,请原谅我“

1号航站楼:

$ ncat -l 12345

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

2号航站楼:

$ ncat my_hostname 13245
 <Random string to send>

这会从我的TCP“服务器”

中启动以下错误

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权限,所以我无法测试这个假设

1 个答案:

答案 0 :(得分:6)

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