Comandos não encontrados: netstat, nmap no CentOS 7

66

Estou usando o seguinte CentOS:

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

Os comandos nmap, netstate lsofnão são encontrados em 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

O que devo fazer para fazê-los funcionar?

calma
fonte

Respostas:

61

O pacote net-toolsfoi descontinuado no CentOS7 em favor do iproute2conjunto. Você pode instalá-lo manualmente ou confira este post do blog para obter comandos de substituição:

EDITAR

Aqui está o URL do Bugzilla da Red Hat para RHEL7 que aborda a descontinuação netstatem mais detalhes: https://bugzilla.redhat.com/show_bug.cgi?id=1119297

Excerto

Como afirmado anteriormente, as ferramentas de rede estão obsoletas, portanto, não devem ser usadas, a menos que seja necessário. O comportamento no RHEL 7 é o mesmo que no Fedora - o net-tools está ausente na instalação mínima, mas está no @base (~ = @standard no Fedora), que é instalado em todas as configurações não mínimas.

Também existem outros tickets que lidam com isso, como IDs 682308 e 687920. Observe que eles são atribuídos ao projeto Fedora e são bastante antigos.

Dan Keder
fonte
3
lsof não está listado no seu link de substituições
mist
Seria muito mais útil se você colocar a substituição lsofdiretamente na sua resposta
ericn
3
Eu não acho que isso lsoffoi preterido. Apenas não é instalado por padrão. Você pode obtê-lo yum install lsof.
Dan Keder
32

apenas faça:

yum install net-tools
alex
fonte
10
Levou apenas alguns minutos para determinar que netstat -plntfoi substituído ss -plntusando esse link da resposta de @ DanKeder acima. Acho que devemos primeiro tentar fazer com que as soluções recomendadas da distribuição funcionem, em vez de reverter para abordagens obsoletas.
CodeMed 16/05/19
12

Sempre que você não conseguir encontrar executáveis ​​em uma distribuição baseada no Red Hat e souber o nome deles, você deve executar 1 das 2 coisas a seguir.

Usar repoquery

Você pode procurar os repositórios YUM que estão disponíveis para seu sistema usando o comando repoquery. Se não estiver instalado, faça um yum install yum-utils.

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

A partir daqui, você pode ver quais pacotes têm um executável com esses nomes. Aqui estão todos eles de uma 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

Agora basta fazer um sudo yum install lsofou sudo yum install nmappara instalar esses pacotes ausentes.

Use a pesquisa yum

Você também pode fazer uma pesquisa semelhante 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

Com essa abordagem, você precisará pesquisar um pouco para confirmar que os pacotes resultantes incluem o executável que você está procurando. Normalmente, olho para lá, iluminado por arquivos, para o que eu quero, mas para isso você terá 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

Portanto, usar minha primeira abordagem economiza as etapas extras.

depreciação do netstat

Aparentemente, no CentOS 7 netstat, que faz parte do pacote net-tools, foi oficialmente descontinuado, então você deve usar ss(parte do pacote iproute2) daqui para frente.

slm
fonte
11
+1 para os comandos repoquerye yum search.
Fduff # 8/16
4

Resposta do slm votada, facilitando a localização das informações que usei. Eu queria fazer:

netstat -nlp | grep httpd

Em vez disso, no CentOS 7, acabei de fazer:

ss -nlp | grep httpd

O que funciona, nem foi necessário instalá-lo no mínimo no CentOS 7.

Faça "man ss" para obter detalhes de uso.

Nagev
fonte
2

Parece que você simplesmente não possui essas ferramentas instaladas. No CentOS, você poderá instalá-los facilmente com yum. Tente o seguinte:

$ yum install nmap netstat
KidElephant
fonte
11
Na verdade, isso parece uma resposta bastante válida. Mas, para constar, não leva muito tempo nem trabalho para obter 50 representantes; se você realmente acha que algo deve ser publicado como um comentário, aguarde até poder publicá-lo como um só. (não vai demorar muito tempo)
HalosGhost
9
Observe também netstatque foi preterido em favor de ss. Duvido que isso desapareça tão cedo, mas apenas para você. Aposto que ssjá está instalado.
23414 Patrick Patrick
@HalosGhost: Pode demorar muito mais do que isso, e você também deve fazer ou responder algumas perguntas.
Guido van Steen
11
O OP especificou o CentOS 7. netstat não é um pacote válido nessa distribuição.
18720 David