Befehle nicht gefunden: netstat, nmap unter CentOS 7

66

Ich benutze das folgende CentOS:

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

Die Befehle nmap, netstatund lsofsind nicht auf CentOS7 gefunden. Warum?

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

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

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

Was soll ich tun, damit sie funktionieren?

Ruhe
quelle

Antworten:

61

Das Paket net-toolswurde in CentOS7 zugunsten der iproute2Suite verworfen . Sie können es entweder manuell installieren oder in diesem Blogpost nach Ersatzbefehlen suchen:

BEARBEITEN

Hier ist die URL zu Red Hats Bugzilla für RHEL7, die den Verfall netstatausführlicher behandelt: https://bugzilla.redhat.com/show_bug.cgi?id=1119297

Auszug

Wie bereits erwähnt, sind Net-Tools veraltet und sollten nicht verwendet werden, es sei denn, dies ist erforderlich. Das Verhalten in RHEL 7 ist dasselbe wie in Fedora - net-tools fehlt bei der Minimalinstallation, befindet sich jedoch in @base (~ = @standard in Fedora), das in allen nicht-minimalen Konfigurationen installiert ist.

Es gibt auch andere Tickets, die sich damit befassen, wie z. B. die IDs 682308 und 687920. Beachten Sie, dass sie dem Fedora-Projekt zugewiesen sind und ziemlich alt sind.

Dan Keder
quelle
3
lsof ist in Ihrem Link von Ersetzungen aufgelistet
Nebel
Es wäre viel nützlicher, wenn Sie die Ersetzung von lsofdirekt in Ihre Antwort aufnehmen
ericn
3
Ich glaube nicht, dass lsofdas veraltet war. Es ist nur nicht standardmäßig installiert. Sie können es mit bekommen yum install lsof.
Dan Keder
32

mach einfach:

yum install net-tools
Alex
quelle
10
Es dauerte nur ein paar Minuten für mich , dass zur Bestimmung netstat -plntersetzt wurde ss -plntmit diesem Link von @ DanKeder Antwort oben. Ich denke, wir sollten zuerst versuchen, die von der Distribution empfohlenen Lösungen zum Laufen zu bringen, anstatt zu veralteten Ansätzen zurückzukehren.
CodeMed
12

Wenn Sie auf einer Red Hat-basierten Distribution keine ausführbaren Dateien finden und deren Namen kennen, sollten Sie eine der folgenden zwei Aktionen ausführen.

Repoquery verwenden

Mit dem Befehl können Sie die für Ihr System verfügbaren YUM-Repositorys durchsuchen repoquery. Wenn es nicht installiert ist, machen Sie a yum install yum-utils.

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

Hier können Sie sehen, welche Pakete eine ausführbare Datei mit diesen Namen haben. Hier sind alle auf einmal.

$ 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

Führen Sie jetzt einfach ein sudo yum install lsofoder aus sudo yum install nmap, um diese fehlenden Pakete zu installieren.

Nutze die Yum-Suche

Sie können eine ähnliche Suche auch mit durchführen 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

Bei diesem Ansatz müssen Sie ein wenig graben, um zu bestätigen, dass die resultierenden Pakete die ausführbare Datei enthalten, nach der Sie suchen. Normalerweise schaue ich dort mit Dateien nach, was ich will, aber dafür musst du verwenden 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

Wenn Sie also meinen ersten Ansatz verwenden, sparen Sie sich die zusätzlichen Schritte.

die abwertung von netstat

Offensichtlich wurde CentOS 7 netstat, das Teil des Pakets net-toolsist, offiziell als veraltet eingestuft, daher sollten Sie zukünftig ss(Teil des Pakets iproute2) verwenden.

slm
quelle
1
+1 für die Befehle repoqueryund yum search.
Fduff
4

Die Antwort von slm wurde hochgestuft, um das Auffinden der von mir verwendeten Informationen zu erleichtern. Ich wollte tun:

netstat -nlp | grep httpd

Stattdessen habe ich unter CentOS 7 Folgendes getan:

ss -nlp | grep httpd

Was funktioniert, musste nicht einmal auf CentOS 7 Minimal installiert werden.

Machen Sie "man ss" für Details zur Nutzung.

Nagev
quelle
2

Es scheint, dass Sie diese Tools einfach nicht installiert haben. Unter CentOS sollten Sie sie problemlos installieren können yum. Versuche dies:

$ yum install nmap netstat
KidElephant
quelle
1
Eigentlich scheint dies eine ziemlich gültige Antwort zu sein. Aber für den Rekord, es braucht weder viel Zeit noch Arbeit, um 50 Wiederholungen zu bekommen; Wenn Sie wirklich der Meinung sind, dass etwas als Kommentar veröffentlicht werden sollte, warten Sie einfach, bis Sie es tatsächlich als einen Kommentar veröffentlichen können. (Es wird nicht lange dauern)
HalosGhost
9
Beachten Sie auch, netstatwurde zu Gunsten von veraltet ss. Zweifel, es wird bald verschwinden, aber nur zu Ihrer Information. Ich wette, das ssist schon installiert.
Patrick
@HalosGhost: Es kann wesentlich länger dauern, und Sie müssen auch einige Fragen dazu stellen oder beantworten.
Guido van Steen
1
OP-spezifiziertes CentOS 7. netstat ist kein gültiges Paket in dieser Distribution.
David Newcomb