Comandi non trovati: netstat, nmap su CentOS 7


66

Sto usando il seguente CentOS:

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

I comandi nmap, netstate lsofnon si trovano sul CentOS7. Perché?

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

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

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

Cosa devo fare per farli funzionare?

Risposte:


61

Il pacchetto è net-toolsstato deprecato in CentOS7 a favore della iproute2suite. Puoi installarlo manualmente o consultare questo post di blog per i comandi di sostituzione:

MODIFICARE

Ecco l'URL di Bugzilla di Red Hat per RHEL7 che copre la deprecazione netstatin modo più dettagliato: https://bugzilla.redhat.com/show_bug.cgi?id=1119297

Estratto

Come affermato in precedenza, gli strumenti di rete sono deprecati, pertanto non dovrebbero essere utilizzati se non in caso di necessità. Il comportamento in RHEL 7 è lo stesso di Fedora - net-tools manca dall'installazione minima, ma è in @base (~ = @standard in Fedora) che è installato in tutte le configurazioni non minimali.

Ci sono anche altri biglietti che trattano questo come gli ID 682308 e 687920. Nota che sono assegnati al progetto Fedora e sono piuttosto vecchi.


3
lsof non è elencato nel tuo link di sostituzioni
mist

Sarebbe molto più utile se metti la sostituzione lsofdirettamente nella tua risposta
ericn

3
Non penso che sia lsofstato deprecato. Non è installato per impostazione predefinita. Puoi ottenerlo con yum install lsof.
Dan Keder,

32

basta fare:

yum install net-tools

10
Ci sono voluti solo pochi minuti per determinare che è netstat -plntstato sostituito ss -plntutilizzando questo link dalla risposta di @ DanKeder sopra. Penso che dovremmo prima provare a far funzionare le soluzioni consigliate della distribuzione invece di tornare ad approcci deprecati.
CodeMed

12

Ogni volta che non riesci a trovare eseguibili su una distribuzione basata su Red Hat e conosci i loro nomi, dovresti fare 1 delle seguenti 2 cose.

Usa repoquery

È possibile cercare i repository YUM che sono disponibili per il sistema usando il comando repoquery. Se non è installato, quindi eseguire un yum install yum-utils.

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

Da qui puoi vedere quali pacchetti hanno un eseguibile con quei nomi. Eccoli tutti in una volta.

$ 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

Ora basta fare un sudo yum install lsofo sudo yum install nmapper installare questi pacchetti mancanti.

Usa la ricerca di yum

Puoi anche fare una ricerca simile usando 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

Con questo approccio dovrai scavare un po 'per confermare che i pacchetti risultanti includono l'eseguibile che stai cercando. Di solito cerco file di ciò che voglio, ma per quello dovrai usare 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

Quindi usare il mio primo approccio ti fa risparmiare i passaggi extra.

deprecazione di netstat

Apparentemente in CentOS 7 netstat, che fa parte del pacchetto net-toolsè stato ufficialmente deprecato, quindi dovresti usare ss(parte del pacchetto iproute2), andando avanti.


1
+1 per i comandi repoquerye yum search.
fduff,

4

Ho migliorato la risposta di slm, semplicemente rendendo più facile trovare le informazioni che ho usato. Volevo fare:

netstat -nlp | grep httpd

Invece, su CentOS 7 ho appena fatto:

ss -nlp | grep httpd

Che funziona, non è nemmeno necessario installarlo su CentOS 7 minimal.

Fai "man ss" per i dettagli di utilizzo.


2

Sembra che semplicemente non hai questi strumenti installati. Su CentOS, dovresti essere in grado di installarli facilmente con yum. Prova questo:

$ yum install nmap netstat

1
In realtà, questa sembra una risposta abbastanza valida. Ma, per la cronaca, non ci vuole molto tempo né lavoro per ottenere 50 rappresentanti; se ritieni che qualcosa debba essere pubblicato come commento, aspetta solo di poterlo pubblicare come tale. (non ci vorrà molto)
HalosGhost

9
Inoltre, netstatè stato deprecato a favore di ss. Dubbio che andrà via presto in qualsiasi momento, ma solo fyi. Scommetto che ssè già installato.
Patrick,

@HalosGhost: potrebbe richiedere molto più tempo di quello, e anche tu devi fare o rispondere ad alcune domande.
Guido van Steen,

1
OP specificato CentOS 7. netstat non è un pacchetto valido in quella distribuzione.
David Newcomb,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.