Netcat nie uruchamia się w trybie nasłuchiwania


13

Korzystam z systemu CentOS 6.7 (wersja ostateczna), a kiedy próbuję uruchomić ncw trybie nasłuchiwania, wypisuje następujące informacje:

# nc -l 1234
nc: Protocol not available

Port nie jest związany. Próbowałem też innych numerów portów. Wygląda na to, że ten błąd został już zgłoszony: https://access.redhat.com/solutions/1753753 . Niestety nie jest bardzo szczegółowy.

Informacje o pakiecie:

Name        : nc
Arch        : x86_64
Version     : 1.84
Release     : 24.el6

Czy jest coś jeszcze, co muszę wypróbować?


Jakiej wersji nc używasz?
— Jenny D.

@JennyD Zaktualizowałem post, proszę sprawdzić
— Ilya I

1
Niestety jedyną poprawką jest obniżenie wersji, jak opisano poniżej. Głosuję również za przeniesieniem tego pytania na systemy Unix i Linux, ponieważ nie dotyczą one wyłącznie administracji systemami. To dobra strona z niektórymi ekspertami, którzy mnie zachwycają, więc proszę nie myśleć, że głosowanie jest bliskie, ponieważ twoje pytanie jest złe lub coś w tym rodzaju.
— Jenny D,

Odpowiedzi:


17

Natrafiłem na ten sam problem. Możesz to rozwiązać w ten sposób:

# 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

Należy pamiętać, że pakiet jest przeznaczony dla x86_64(64-bit). Jeśli potrzebujesz i386(wersja 32-bitowa), poprawna to:

wget http://vault.centos.org/6.6/os/i386/Packages/nc-1.84-22.el6.i686.rpm

Używanie rpm z flagami -i i -U jednocześnie wygląda dziwnie (ale działa). Bardziej standardowe wywołanie to -ivh lub -Uvh.
— dmourati

1
pracować jak urok!
— Shawn Guo

Ta ścieżka już nie działa
— BradLaney,

@BradLaney dlaczego nie?
— Eddie C.,

@EddieC. Kiedy skomentowałem, URL był dla mnie 404ingami. Wygląda na to, że teraz działa. Nieważne.
— BradLaney

9

Ta konkretna wersja netcata ma błąd. Dopóki nie zostanie to naprawione, jedyne, co możesz zrobić, to obniżyć wersję do poprzedniej wersji - sudo yum remove nc-1.84-24.el6.x86_64; sudo yum install nc-1.84-22.el6.x86_64powinno załatwić sprawę .


1
Czy nie yumma argumentu, który mógłby obniżyć wersję pakietu do konkretnej wersji bez uprzedniej deinstalacji?
— kasperd

Świetnie, ale nie mogłem obniżyć wersji. Yum mówi, że nie ma dostępnego pakietu (zarówno installz określoną wersją, jak i downgradepoleceniem). Próbowałem także wyszukać ten plik RPM i jeszcze go nie znalazłem.
— Ilya I

4

Odpowiedź na pytanie:

  1. TAK, konieczna jest zmiana wersji, aby nc mógł słuchać. i co do innych komentarzy:

a) -p nie powinien być używany w trybie nasłuchiwania. ze strony nc:

-l Służy do określania, że ​​nc powinien nasłuchiwać połączenia przychodzącego zamiast inicjować połączenie ze zdalnym hostem. Używanie tej opcji w połączeniu z opcjami -p, -s lub -z jest błędem.

b) downgrade można wykonać w jednym kroku, yum polecenie downgrade działa z adresem URL do pakietu:

$ 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

Możesz nasłuchiwać na tym porcie, używając jawnie -pflagi:

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

Problem polegał na nctraktowaniu 1234 jako portu docelowego (pomimo działania w trybie nasłuchiwania) i próbie nasłuchiwania na porcie 0 (co wywołało ten dziwny komunikat). Jawne przekazywanie -pdziała wokół niego.


Próbowałem tego na centos 6 i nie działało to przy użyciu wersji nc-1.84-24. Poprawka polegała na obniżeniu wersji do wersji nc-1.84-22 zgodnie z przyjętą odpowiedzią.
— Criggie,

ta wersja nie pozwala na użycie -p z -l.
— andrej

-3

zainstaluj nmap:

mniam zainstaluj nmap

próbować:

ncat -l 1234


Przeczytaj pytanie i już dostarczone odpowiedzi, aby dowiedzieć się, dlaczego Twoja odpowiedź nie jest wystarczająca w tym konkretnym przypadku.
— Sven
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.