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ć?

Ilya I
źródło
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
Eddie C.
źródło
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ę .

Jenny D.
źródło
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
RSH
źródło
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.

Anioł
źródło
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

Ronald Gutierrez
źródło
Przeczytaj pytanie i już dostarczone odpowiedzi, aby dowiedzieć się, dlaczego Twoja odpowiedź nie jest wystarczająca w tym konkretnym przypadku.
Sven