Я использую систему CentOS 6.7 (Final), и когда я пытаюсь запустить nc
в режиме прослушивания выводит следующее:
# nc -l 1234
nc: Protocol not available
Порт не привязан. Я пробовал и другие номера портов. Похоже, что об этой ошибке уже сообщалось: https://access.redhat.com/solutions/1753753. К сожалению, это не очень подробно.
Информация о пакете:
Name : nc
Arch : x86_64
Version : 1.84
Release : 24.el6
Есть что-то еще, что мне нужно попробовать?
Я столкнулся с той же проблемой. Решить можно так:
# Removes the old package
yum erase nc
# Manually downloads the working package from the Official Repository
wget http://vault.centos.org/6.6/os/x86_64/Packages/nc-1.84-22.el6.x86_64.rpm
# Installs the package
rpm -iUv nc-1.84-22.el6.x86_64.rpm
Обратите внимание, что пакет предназначен для x86_64
(64-битный). Если тебе надо i386
(32-битный), правильный:
wget http://vault.centos.org/6.6/os/i386/Packages/nc-1.84-22.el6.i686.rpm
В этой конкретной версии netcat есть ошибка. Пока для этого не будет исправления, единственное, что вы можете сделать, это вернуться к предыдущей версии - sudo yum remove nc-1.84-24.el6.x86_64; sudo yum install nc-1.84-22.el6.x86_64
должен сделать свое дело.
Отвечая на вопрос:
а) -p не предполагается использовать в режиме прослушивания. из man-страницы nc:
-l Используется, чтобы указать, что nc должен прослушивать входящее соединение, а не инициировать соединение с удаленным хостом. Ошибочно использовать эту опцию вместе с опциями -p, -s или -z.
б) понизить версию можно за один шаг, команда yum downgrade работает с URL-адресом пакета:
$ rpm -q nc
nc-1.84-24.el6.x86_64
$ nc -l 12345 #Although the syntax is correct, the command fails
nc: Protocol not available
$ nc -l -p 12345 #attempt to run with incorrect syntax
usage: nc [-46DdhklnrStUuvzC] [-i interval] [-p source_port]
[-s source_ip_address] [-T ToS] [-w timeout] [-X proxy_version]
[-x proxy_address[:port]] [hostname] [port[s]]
$ sudo yum downgrade http://vault.centos.org/6.6/os/x86_64/Packages/nc-1.84-22.el6.x86_64.rpm #shortcut to downgrade
...
Setting up Downgrade Process
nc-1.84-22.el6.x86_64.rpm | 57 kB 00:00
Examining /var/tmp/yum-root-Iq4yc7/nc-1.84-22.el6.x86_64.rpm: nc-1.84-22.el6.x86_64
Resolving Dependencies
--> Running transaction check
---> Package nc.x86_64 0:1.84-22.el6 will be a downgrade
---> Package nc.x86_64 0:1.84-24.el6 will be erased
--> Finished Dependency Resolution
Dependencies Resolved
==============================================================================================================
Package Arch Version Repository Size
==============================================================================================================
Downgrading:
nc x86_64 1.84-22.el6 /nc-1.84-22.el6.x86_64 109 k
Transaction Summary
==============================================================================================================
Downgrade 1 Package(s)
Total size: 109 k
Is this ok [y/N]: y
...
Removed:
nc.x86_64 0:1.84-24.el6
Installed:
nc.x86_64 0:1.84-22.el6
Complete!
$ nc -l -p 12345 #attempt to run with incorrect syntax
usage: nc [-46DdhklnrStUuvzC] [-i interval] [-p source_port]
[-s source_ip_address] [-T ToS] [-w timeout] [-X proxy_version]
[-x proxy_address[:port]] [hostname] [port[s]]
$ nc -l 12345 # try to listen again
^C
$#nc successully opens a socket on 12345. had to stop it with ctrl+C
# nc -l -p 1234
Вы можете прослушивать этот порт, явно используя -p
флаг:
-p source_port
Specifies the source port nc should use, subject to privilege restrictions and availability.
Проблема заключалась в следующем: nc
рассматривая 1234 год как место назначения порт (несмотря на то, что он запущен в режиме прослушивания) и пытается прослушивать порт 0 (который выдал это странное сообщение). Явно прохождение -p
работает вокруг этого.
установить nmap:
yum установить nmap
пытаться:
ncat -l 1234