Nie znaleziono poleceń: netstat, nmap na CentOS 7

66

Korzystam z następującego CentOS:

$ cat /etc/centos-release 
CentOS Linux release 7.0.1406 (Core) 

Polecenia nmap, netstata lsofnie znajdują się na CentOS7. Dlaczego?

$ type -a nmap
bash: type: nmap: not found

$ type -a netstat
bash: type: netstat: not found

$ type -a lsof   
bash: type: lsof: not found

Co powinienem zrobić, aby działały?

uspokajający
źródło

Odpowiedzi:

61

Pakiet net-toolszostał wycofany z CentOS7 na rzecz iproute2pakietu. Możesz zainstalować go ręcznie lub sprawdzić w blogu komendy zastępcze:

EDYTOWAĆ

Oto adres URL Bugzilli RedHata dla RHEL7, który obejmuje netstatbardziej szczegółowo wycofanie : https://bugzilla.redhat.com/show_bug.cgi?id=1119297

Fragment

Jak wspomniano wcześniej, narzędzia sieciowe są przestarzałe, dlatego nie należy ich używać, chyba że jest to konieczne. Zachowanie w RHEL 7 jest takie samo jak w Fedorze - brakuje narzędzi sieciowych w minimalnej instalacji, ale jest w @base (~ = @standard w Fedorze), który jest zainstalowany we wszystkich konfiguracjach innych niż minimalne.

Istnieją również inne zgłoszenia, które sobie z tym radzą, takie jak identyfikatory 682308 i 687920. Zauważ, że są one przypisane do projektu Fedora i są dość stare.

Dan Keder
źródło
3
lsof nie jest wymieniony w twoim linku do podstawień
mg
Byłoby o wiele bardziej przydatne, gdybyś podał podstawienie lsofbezpośrednio w swojej odpowiedzi
ericn
3
Nie sądzę, żeby to lsofbyło przestarzałe. Po prostu nie jest domyślnie instalowany. Możesz to zdobyć yum install lsof.
Dan Keder,
32

po prostu zrób:

yum install net-tools
alex
źródło
10
Zajęło mi to tylko kilka minut, aby stwierdzić, że netstat -plntzostał zastąpiony przez ss -plntużycie tego linku z powyższej odpowiedzi @ DanKeder. Myślę, że powinniśmy najpierw spróbować sprawić, by zalecane rozwiązania dystrybucji działały, zamiast wracać do przestarzałych podejść.
CodeMed
12

Ilekroć nie możesz znaleźć plików wykonywalnych w dystrybucji opartej na Red Hacie i znasz ich nazwy, powinieneś zrobić 1 z następujących 2 rzeczy.

Użyj repoquery

Możesz przeszukać repozytoria YUM, które są dostępne w twoim systemie za pomocą polecenia repoquery. Jeśli nie jest zainstalowany, zrób to yum install yum-utils.

$ repoquery -qf */nmap
nmap-2:6.40-4.el7.x86_64

Stąd możesz zobaczyć, które pakiety mają plik wykonywalny o tych nazwach. Oto wszystkie z nich na raz.

$ repoquery -qf */netstat */lsof */nmap
net-tools-0:2.0-0.17.20131004git.el7.x86_64
ctdb-tests-0:2.5.1-2.el7.x86_64
lsof-0:4.87-4.el7.x86_64
nmap-2:6.40-4.el7.x86_64
ctdb-tests-0:2.5.1-2.el7.x86_64

Teraz po prostu zrób sudo yum install lsoflub, sudo yum install nmapaby zainstalować brakujące pakiety.

Użyj wyszukiwania yum

Możesz także przeprowadzić podobne wyszukiwanie za pomocą yum search <executable>.

$ yum search netstat     
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.advancedhosters.com
 * extras: mirror.cisp.com
 * updates: centos-mirror.jchost.net
================================================================== Matched: netstat ==================================================================
dstat.noarch : Versatile resource statistics tool
net-snmp.x86_64 : A collection of SNMP protocol tools and libraries
net-tools.x86_64 : Basic networking tools

Dzięki takiemu podejściu musisz trochę kopać, aby potwierdzić, że otrzymane pakiety zawierają plik wykonywalny, którego szukasz. Zwykle szukam tam wielu plików w poszukiwaniu tego, czego chcę, ale do tego będziesz musiał użyć repoquery.

$ repoquery -ql net-tools.x86_64  | grep netstat
/bin/netstat
/usr/share/man/de/man8/netstat.8.gz
/usr/share/man/fr/man8/netstat.8.gz
/usr/share/man/man8/netstat.8.gz
/usr/share/man/pt/man8/netstat.8.gz

Tak więc zastosowanie mojego pierwszego podejścia pozwala zaoszczędzić dodatkowe kroki.

rezygnacja z netstat

Najwyraźniej w CentOS 7 netstat, który jest częścią pakietu net-tools, został oficjalnie uznany za przestarzały, więc powinieneś używać ss(część pakietu iproute2), kontynuując.

slm
źródło
1
+1 dla poleceń repoqueryi yum search.
fduff,
4

Uznano odpowiedź SLM, po prostu ułatwiając znalezienie informacji, których użyłem. Chciałem zrobić:

netstat -nlp | grep httpd

Zamiast tego w CentOS 7 właśnie:

ss -nlp | grep httpd

Co działa, nawet nie musiałem instalować go na CentOS 7 minimal.

Wykonaj „man ss”, aby uzyskać szczegółowe informacje o użyciu.

Nagev
źródło
2

Wygląda na to, że po prostu nie masz zainstalowanych tych narzędzi. W CentOS powinieneś być w stanie łatwo je zainstalować yum. Spróbuj tego:

$ yum install nmap netstat
KidElephant
źródło
1
W rzeczywistości wydaje się to dość poprawną odpowiedzią. Ale, dla przypomnienia, uzyskanie 50 powtórzeń nie zajmuje dużo czasu ani pracy; jeśli naprawdę uważasz, że coś powinno zostać opublikowane jako komentarz, po prostu poczekaj, aż rzeczywiście możesz to opublikować jako komentarz. (to nie potrwa długo)
HalosGhost
9
Uwaga: netstatzostał wycofany na korzyść ss. Wątpię, że to zniknie w najbliższym czasie, ale tylko fyi. Założę się, że ssjest już zainstalowany.
Patrick
@HalosGhost: Może to potrwać znacznie dłużej i musisz zadać lub odpowiedzieć na kilka pytań.
Guido van Steen,
1
Określony przez OP CentOS 7. netstat nie jest poprawnym pakietem w tej dystrybucji.
David Newcomb,