Comandos no encontrados: netstat, nmap en CentOS 7

66

Estoy usando el siguiente CentOS:

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

Los comandos nmap, netstaty lsofno se encuentran en CentOS7. ¿Por qué?

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

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

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

¿Qué debo hacer para que funcionen?

calmatery
fuente

Respuestas:

61

El paquete net-toolsfue desaprobado en CentOS7 a favor de la iproute2suite. Puede instalarlo manualmente o consultar esta publicación de blog para ver los comandos de reemplazo:

EDITAR

Aquí está la URL de Bugzilla de Red Hat para RHEL7 que cubre la degradación de netstatmás detalles: https://bugzilla.redhat.com/show_bug.cgi?id=1119297

Extracto

Como se indicó anteriormente, las herramientas de red están en desuso, por lo que no deben usarse a menos que sea necesario. El comportamiento en RHEL 7 es el mismo que en Fedora: faltan las herramientas de red en la instalación mínima, pero está en @base (~ = @standard en Fedora) que está instalado en todas las configuraciones no mínimas.

También hay otros tickets que se ocupan de esto, como los ID 682308 y 687920. Tenga en cuenta que están asignados al proyecto Fedora y son bastante antiguos.

Dan Keder
fuente
3
lsof no figura en su enlace de sustituciones
niebla
Sería mucho más útil si coloca la sustitución de lsofdirectamente en su respuesta
ericn
3
No creo que lsofhaya quedado en desuso. Simplemente no está instalado por defecto. Puedes conseguirlo con yum install lsof.
Dan Keder
32

solo haz:

yum install net-tools
alex
fuente
10
Solo me tomó unos minutos determinar que netstat -plntfue reemplazado ss -plntusando este enlace de la respuesta de @ DanKeder anterior. Creo que primero deberíamos intentar hacer que las soluciones recomendadas de la distribución funcionen en lugar de volver a enfoques obsoletos.
CodeMed
12

Siempre que no pueda encontrar ejecutables en una distribución basada en Red Hat y conozca sus nombres, debe hacer 1 de las siguientes 2 cosas.

Usar repositorio

Puede buscar en los repositorios YUM que están disponibles para su sistema mediante el comando repoquery. Si no está instalado, entonces a yum install yum-utils.

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

Desde aquí puede ver qué paquetes tienen un ejecutable con esos nombres. Aquí están todos a la vez.

$ 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

Ahora solo haga una sudo yum install lsofo sudo yum install nmappara instalar estos paquetes faltantes.

Use yum search

También puede hacer una búsqueda similar 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 este enfoque, tendrá que investigar un poco para confirmar que los paquetes resultantes incluyen el ejecutable que está buscando. Normalmente busco allí archivos iluminados para lo que quiero, pero para eso tendrás que usar 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

Entonces, usar mi primer enfoque te ahorra los pasos adicionales.

desaprobación de netstat

Aparentemente, en CentOS 7 netstat, que es parte del paquete, net-toolsha quedado oficialmente en desuso, por lo que debería usarlo ss(parte del paquete iproute2) en adelante.

slm
fuente
1
+1 para los comandos repoqueryy yum search.
fduff
4

Respuesta de slm votada, simplemente haciendo más fácil encontrar la información que utilicé Yo queria hacer:

netstat -nlp | grep httpd

En cambio, en CentOS 7 acabo de hacer:

ss -nlp | grep httpd

Lo que funciona, ni siquiera tuvo que instalarlo en CentOS 7 minimal.

Haga "man ss" para detalles de uso.

Nagev
fuente
2

Parece que simplemente no tienes estas herramientas instaladas. En CentOS, debería poder instalarlos fácilmente con yum. Prueba esto:

$ yum install nmap netstat
KidElephant
fuente
1
En realidad, esto parece una respuesta bastante válida. Pero, para que conste, no lleva mucho tiempo ni trabajo obtener 50 repeticiones; Si realmente cree que algo debe publicarse como un comentario, espere hasta que pueda publicarlo como tal. (no tardará mucho)
HalosGhost
9
También tenga en cuenta, netstatha quedado en desuso a favor de ss. Dudo que desaparezca pronto, pero solo para tu información. Apuesto a que ssya está instalado.
Patrick
@HalosGhost: puede llevar mucho más tiempo que eso, y también debes hacer o responder algunas preguntas.
Guido van Steen
1
OP especificó CentOS 7. netstat no es un paquete válido en esa distribución.
David Newcomb