如何查看 netcat 发送/接收的数据?

Avi*_*ano 5 linux netcat

我按照这篇文章使用 netcat 检查速度,但是在他的博客中,当他这样做时ctrl-c,他会获取有关已发送接收字节的数据。

在帖子中,他跑了:

time yes|nc -v -v -n 192.168.0.8 2222 >/dev/null
than after ctrl-c het get:
sent 87478272, rcvd 0
real 0m9.993s
user 0m2.075s
sys 0m0.939s
Run Code Online (Sandbox Code Playgroud)

当我这样做时ctrl-c,我没有得到这些数据。

如何通过 netcat 获取发送/接收的数据?

mgo*_*ven 7

netcat实际上有两种实现,*Hobbit*原始实现netcat-traditional在 Debian/Ubuntu 中调用)和OpenBSD 实现netcat-openbsd在 Debian/Ubuntu 中调用)。在 Debian/Ubuntu 中,二进制文件分别被称为nc.traditionalnc.openbsd(并且nc是通过替代系统指向其中之一的链接)。

您引用的博客文章nc.traditional在退出时确实显示了发送/接收的字节。您可能正在使用nc.openbsdwhich 没有。安装传统实现并显式调用它。

% time yes | nc.traditional -vvn 127.0.0.1 10000 > /dev/null
(UNKNOWN) [127.0.0.1] 10000 (webmin) open
^C sent 99422208, rcvd 0
yes  1,06s user 0,09s system 38% cpu 3,003 total
Run Code Online (Sandbox Code Playgroud)

或者,如果您更喜欢使用 ,则nc.openbsd可以将服务器端 netcat 的输出通过管道传输到wc -c并检查输出,如下所示:

% nc -l -n -p 10000 | wc --bytes
99422208
Run Code Online (Sandbox Code Playgroud)