我按照这篇文章使用 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 获取发送/接收的数据?
netcat实际上有两种实现,*Hobbit*的原始实现(netcat-traditional在 Debian/Ubuntu 中调用)和OpenBSD 实现(netcat-openbsd在 Debian/Ubuntu 中调用)。在 Debian/Ubuntu 中,二进制文件分别被称为nc.traditional和nc.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)