Странное поведение netcat (версия OpenBSD)

Я использую сервер Ubuntu 16.04.3, он поставляется с версией Netcat для OpenBSD.

Я уже использовал версию Netcat для OpenBSD в Fedora, а в Fedora я не могу использовать опцию -p с опцией -l, например, следующее недопустимо:

nc -l -p 12345

Но в Ubuntu server 16.04.3 вышеприведенная команда работала (под «работали», я имею в виду netcat начал слушать)!

Хотя man nc на самом сервере Ubuntu 16.04.3 говорит, что это недопустимо:

enter image description here

Почему это происходит?!

1
задан 2 December 2017 в 17:40

1 ответ

Есть 2 версии: BSD и GNU. Версия GNU поддерживает -l с -p (или, по крайней мере, заявляет, что вы можете использовать их вместе). Страница man утверждает, что мы используем отредактированную версию 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, а также неправильную страницу руководства.

1
ответ дан 2 December 2017 в 17:40

Другие вопросы по тегам:

Похожие вопросы: