答案1
有两个版本:BSD 和 GNU。GNU 版本支持 -l 和 -p(或者至少声明你可以一起使用它们)。手册页指出我们使用经过编辑的 BSD 版本。
这是 GNU 版本:
NAME
netcat - GNU Netcat Manual
CONTENTS
SYNOPSIS
netcat [options] hostname port [port] ...
netcat -l -p port [options] [hostname] [port] ...
netcat -L hostname:port -p port [options] ...
===
这是来自 BSD 手册页:
Name
nc - arbitrary TCP and UDP connections and listens
Synopsis
nc [-46DdhklnrStUuvzC]
[-i interval [-p source_port]
[-s source_ip_address] [-T ToS] [-w timeout]
[-X proxy_protocol] [-x proxy_address[:port]] [hostname[port[s]]
...
-l' Used to specify that nc should listen for an incoming
connection rather than initiate a connection to a remote host.
It is an error to use this option in conjunction with the -p, -s, or -z options.
Additionally, any timeouts specified with the -w
option are ignored.
确实很奇怪。但看起来我们要么使用 GNU,其手册页指向原始 BSD 手册,要么使用经过修改的 BSD 版本,并且手册页也错误。