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

我如何查看 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

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

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

答案1

其实netcat 的两种实现, 这最初由 *Hobbit* 实现netcat-traditional在 Debian/Ubuntu 中调用)和OpenBSD 实现netcat-openbsd在 Debian/Ubuntu 中称为)。在 Debian/Ubuntu 中,二进制文件分别称为nc.traditionalnc.openbsd(并且nc是通过备选系统链接到其中一个的链接)。

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

% 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

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

% nc -l -n -p 10000 | wc --bytes
99422208

答案2

您可以使用管道查看器 (pv) 实用程序观察流的视觉进度。可以对其进行修改以显示所选单位,并且适用于大多数发行版。

例子:

cat largefile | pv | netcat 192.168.10.1000 1234

相关内容