主持人甲:
tar cf - stuff | dd | nc -N -l 12987
主持人乙:
nc a.example.com 12987 | dd | tar tf -
在主机 A 上完成dd
后打印其摘要tar
。因此很明显, tar 关闭了管道/文件 -> EOF
。
165040+0 记录 165040+0 记录输出 84500480 字节在 25.464802 秒内传输(3318325 字节/秒)
两个主机上都nc
愉快地坐在那里而不退出。
nc(1)
:
-N shutdown(2) the network socket after EOF on the input. Some
servers require this to finish their work.
因此,在主机 A 上nc
应该已经看到EOF
,关闭了该死的套接字,在主机 B 上nc
应该已经看到 TCP 连接终止并且应该已经关闭stdout
(stdin
的dd
/ tar
)。
如何告诉在主机 B 上nc
关闭stdout
/终止并在主机 A 上终止。
nc
漏洞?
-D
(调试)什么都不做。nc
连版本号都说不出来……唉
两台主机都是FreeBSD 10.3-RELEASE-p4,仅限 IPv4。