Netcat не запускається в режимі прослуховування

Я використовую систему 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

Чи є ще щось, що потрібно спробувати?

13
@JennyD Я оновив повідомлення, будь ласка, перевірте
додано Автор Rob Flaherty, джерело
Яку версію nc ви використовуєте?
додано Автор Jenny D, джерело
На жаль, єдиним виправленням є зниження рейтингу, як описано нижче. Я також голосую, щоб перенести це питання на Unix & Linux , оскільки це не стосується системного адміністрування. Це хороший сайт з деякими експертами, які залишають мене в страху, тому, будь ласка, не думайте, що тісний голос - це тому, що ваше питання погане або що-небудь.
додано Автор Jenny D, джерело

5 Відповіді

Я зіткнувся з тим самим питанням. Ви можете вирішити це таким чином:

# 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
17
додано
Ви також можете знайти його тут rpm- find.net/linux/rpm2html/search.php?query=nc%28x86-64%29
додано Автор timesking, джерело
Він працював як чарівність двічі!
додано Автор dino, джерело
@BradLaney чому ні?
додано Автор Tim Bowen, джерело
@BradLaney Ах, добре :).
додано Автор Tim Bowen, джерело
Використання rpm з -i та -U прапорами одночасно виглядає дивно (але працює). Більш стандартним викликом є ​​-ivh або -Uvh.
додано Автор dmourati, джерело
Цей шлях більше не працює
додано Автор Shreyas B., джерело
@EddieC. URL-адреса була для мене 404, коли я зробив коментар. Здається, зараз вона працює. Не зважай.
додано Автор Shreyas B., джерело
працювати як шарм!
додано Автор Shawn Guo, джерело

Ця версія netcat має помилку. До тих пір, поки не знайдеться виправлення, єдине, що ви можете зробити, це перейти до попередньої версії - sudo yum remove nc-1.84-24.el6.x86_64; sudo yum install nc-1.84-22.el6.x86_64 має виконати завдання.

10
додано
Чудово, але я не зміг понизити рейтинг. Yum не повідомляє про наявність пакунків (як install з певною версією, так і командою downgrade ). Також спробував шукати цей файл rpm і ще не знайшов.
додано Автор Rob Flaherty, джерело
Чи не має yum аргумент, який може перейти на певну версію пакета без попереднього видалення?
додано Автор kasperd, джерело

Відповідь на запитання:

  1. ТАК, для того, щоб nc прослухати, потрібне зниження. як і для інших коментарів:

а) -p не повинен використовуватися в режимі прослуховування. з сторінки nc man:

-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
4
додано

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

yum install nmap

спробуйте:

ncat -l 1234

3
додано
Будь ласка, прочитайте запитання та вже надані відповіді, щоб дізнатися, чому відповідь у даному випадку недостатня.
додано Автор flopr, джерело
# 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 навколо нього.

0
додано
що версія не дозволяє використовувати -p з -l.
додано Автор David, джерело
Я спробував це на centos 6 і він не працював, використовуючи версію nc-1.84-24.
додано Автор user305779, джерело