Comportamento estranho do netcat (versão do OpenBSD)

1

Eu estou usando o servidor Ubuntu 16.04.3, ele vem com a versão do Netcat para o OpenBSD.

Eu usei a versão do Netcat no OpenBSD antes no Fedora, e no Fedora eu não posso usar a opção -p com a opção -l , por exemplo, o seguinte é ilegal:

nc -l -p 12345

Mas no servidor Ubuntu 16.04.3, o comando acima funcionou (por "funcionou", ou seja, o netcat começou a escutar)!

Mesmo que man nc no servidor Ubuntu 16.04.3 diga que é ilegal:

Por que isso está acontecendo?!

    
por mahmoud_t1 02.12.2017 / 15:23

1 resposta

1

Existem 2 versões: BSD e GNU. A versão GNU suporta -l com -p (ou pelo menos indica que você pode usá-los juntos). A página man afirma que usamos uma versão BSD editada.

Isto é da versão 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] ... 

===

Isto é da página man do 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. 

Estranho mesmo. Mas parece que usamos o GNU onde a página de manual aponta para o manual original do BSD ou usamos uma versão BSD alterada e também com a página de manual errada.

    
por Rinzwind 02.12.2017 / 15:40