Netcat не запускается в режиме прослушивания


13

Я использую систему 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

Есть ли что-то еще, что мне нужно попробовать?


Какую версию nc вы используете?
Дженни Д

@JennyD Я обновил пост, пожалуйста, ознакомьтесь
Илья,

1
К сожалению, единственное исправление - это понижение, как описано ниже. Я также голосую за то, чтобы перенести этот вопрос на Unix и Linux, поскольку речь идет не только о системном администрировании. Это хороший сайт с некоторыми экспертами, которые внушают мне страх, поэтому, пожалуйста, не думайте, что закрытое голосование связано с тем, что ваш вопрос плохой или что-то еще.
Дженни Д

Ответы:


17

Я столкнулся с той же проблемой. Вы можете решить это следующим образом:

# 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

Использование rpm с флагами -i и -U одновременно выглядит странно (но работает). Более стандартным вызовом является -ivh или -Uvh.
dmourati

1
работать как шарм!
Шон Го

Этот путь больше не работает
BradLaney

@BradLaney, почему нет?
Эдди С.

@EddieC. URL был 404ing для меня, когда я сделал комментарий. Похоже, сейчас работает. Ничего.
БрэдЛейни

9

Эта конкретная версия netcat имеет ошибку. Пока не будет исправления, единственное, что вы можете сделать, - это перейти на предыдущую версию - sudo yum remove nc-1.84-24.el6.x86_64; sudo yum install nc-1.84-22.el6.x86_64нужно сделать свое дело.


1
Нет yumаргумента, который может понизить версию до определенной версии пакета без предварительной деинсталляции?
kasperd

Отлично, но я не смог понизить рейтинг. Yum говорит, что пакет недоступен (как installс определенной версией, так и с downgradeкомандой). Также попытался найти этот файл RPM и еще не нашел.
Илья, я

4

Отвечая на вопрос:

  1. Да, необходимо понижение рейтинга, чтобы nc мог слушать. а что касается других комментариев:

а) -p не должен использоваться в режиме прослушивания. из man-страницы nc:

-l Используется для указания того, что nc должен прослушивать входящее соединение, а не инициировать соединение с удаленным хостом. Ошибочно использовать этот параметр в сочетании с параметрами -p, -s или -z.

b) даунгрейд можно выполнить за один шаг, команда 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

0
# nc -l -p 1234

Вы можете прослушивать этот порт, явно используя -pфлаг:

-p source_port
         Specifies the source port nc should use, subject to privilege restrictions and availability.

Проблема заключалась в том, что nc1234 рассматривался как порт назначения (несмотря на то, что он был запущен в режиме прослушивания) и пытался прослушивать порт 0 (который выдал это странное сообщение). Явное прохождение -pработает вокруг этого.


Я попробовал это на Centos 6, и он не работал с версией nc-1.84-24. Исправление было в том, чтобы перейти на версию nc-1.84-22 согласно принятому ответу.
Criggie

эта версия не позволяет использовать -p с -l.
Андрей

-3

установить nmap:

ням установить nmap

пытаться:

ncat -l 1234


Пожалуйста, прочитайте вопрос и уже предоставленные ответы, чтобы узнать, почему вашего ответа недостаточно в данном конкретном случае.
Свен
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.