Comportamiento extraño de netcat (versión OpenBSD)

1

Estoy usando el servidor Ubuntu 16.04.3, viene con la versión OpenBSD de netcat.

He usado la versión OpenBSD de netcat antes en Fedora, y en Fedora no puedo usar la -popción con la -lopción, por ejemplo, lo siguiente es ilegal:

nc -l -p 12345

¡Pero en el servidor Ubuntu 16.04.3, el comando anterior funcionó (por "trabajado", quiero decir que netcat comenzó a escuchar)!

Aunque man ncen el servidor Ubuntu 16.04.3 dice que es ilegal:

ingrese la descripción de la imagen aquí

¡¿Por qué está pasando esto?!

mahmoud_t1
fuente
¿Qué quiere decir que el comando anterior funcionó exactamente? ¿Ignoró la -popción y siguió escuchando? Por favor, editar su pregunta para aclarar.
dobey
@dobey Edité mi pregunta.
mahmoud_t1

Respuestas:

1

Hay 2 versiones: BSD y GNU. La versión de GNU admite -l con -p (o al menos indica que puede usarlos juntos). La página del manual dice que usamos una versión BSD editada.

Esto es de la versión de 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] ... 

===

Esto es de la página de manual de 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. 

Extraño de hecho. Pero parece que usamos GNU donde la página del manual apunta al manual original de BSD o usamos una versión BSD alterada y también con la página de manual incorrecta.

Rinzwind
fuente
"Hay 2 versiones: BSD y GNU" ¿Quieres decir que el servidor Ubuntu tiene 2 versiones de netcat, o estás hablando en general?
mahmoud_t1
Tenemos 2 paquetes netstat-traditional y netstat-openBSD (el primero es el BSD original y el otro la versión BSD alterada) y hay netstat gnu (creo que solo está disponible como descarga TAR). Entonces, en este contexto, se entiende como "general".
Rinzwind