Команди не знайдено: netstat, nmap на CentOS 7


66

Я використовую наступний CentOS:

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

Команди nmap, netstatі lsofНЕ будуть знайдені на CentOS7. Чому?

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

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

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

Що мені робити, щоб вони працювали?

Відповіді:


61

Пакет net-toolsбув знятий у CentOS7 на користь iproute2пакету. Ви можете встановити його вручну або ознайомитись з цим блогом на предмет команд заміни:

EDIT

Ось URL-адреса Bugzilla Red Hat's Bugzilla для RHEL7, яка детальніше висвітлює старіння netstat: https://bugzilla.redhat.com/show_bug.cgi?id=1119297

Уривок

Як було сказано раніше, інструменти net-інструменти застарілі, тому не слід використовувати, якщо не потрібно. Поведінка в RHEL 7 така сама, як і у Fedora - net-tools відсутня при мінімальній установці, але є у @base (~ = @standard у Fedora), який встановлюється у всіх не мінімальних конфігураціях.

Існують також інші квитки, які стосуються цього, такі як ідентифікатори 682308 та 687920. Зауважте, що вони призначені для проекту Fedora і досить давні.


3
lsof не вказаний у вашому посиланні на заміну
туман

Було б набагато корисніше, якби ви замінили lsofпрямо у своїй відповіді
ericn

3
Я не думаю, що lsofце застаріло. Він просто не встановлений за замовчуванням. Ви можете отримати це yum install lsof.
Дан Кедер

32

просто роби:

yum install net-tools

10
Мені знадобилося лише кілька хвилин, щоб визначити, що netstat -plntбуло замінено за ss -plntдопомогою цього посилання з відповіді @ DanKeder вище. Я думаю, що спершу слід спробувати змусити працювати рекомендовані рішення для дистрибуції, а не повертатися до застарілих підходів.
CodeMed

12

Кожен раз, коли ви не можете знайти виконувані файли в дистрибутиві Red Hat і знаєте їхні імена, вам слід зробити 1 з наступних 2 речей.

Використовуйте запит

Ви можете здійснити пошук у сховищах YUM, доступних вашій системі, за допомогою команди repoquery. Якщо він не встановлений, зробіть це yum install yum-utils.

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

Звідси ви можете побачити, які пакети мають виконуваний файл з тими іменами. Ось усі вони одразу.

$ 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

Тепер просто зробіть sudo yum install lsofабо sudo yum install nmapвстановіть ці відсутні пакети.

Використовуйте пошук yum

Ви також можете зробити подібний пошук, використовуючи 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

При такому підході вам потрібно буде трохи викопати, щоб підтвердити, що отримані пакети містять виконуваний файл, який ви шукаєте. Я, як правило, шукаю там запалені файли для того, що я хочу, але для цього вам доведеться скористатися 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

Тож використання мого першого підходу економить додаткові кроки.

знецінення netstat

Мабуть, у CentOS 7 netstat, який є частиною пакету net-tools, був офіційно застарілий, тому ви повинні використовувати ss(частина пакету iproute2), рухаючись вперед.


1
+1 для команд repoqueryі та yum search.
fduff

4

Відповідь, що підтверджується, дозволяє просто полегшити пошук інформації, яку я використав. Я хотів зробити:

netstat -nlp | grep httpd

Натомість на CentOS 7 я щойно зробив:

ss -nlp | grep httpd

Що працює, навіть не довелося встановлювати його на CentOS 7 мінімально.

Зробіть "man ss" для деталей використання.


2

Здається, що у вас просто не встановлено цих інструментів. У CentOS ви зможете їх легко встановити yum. Спробуйте це:

$ yum install nmap netstat

1
Насправді це здається досить вагомою відповіддю. Але для запису не потрібно багато часу, ані роботи, щоб отримати 50 повторень; якщо ви дійсно відчуваєте, що щось слід розмістити як коментар, просто зачекайте, поки ви дійсно можете опублікувати це як одне. (це не займе багато часу)
HalosGhost

9
Також зауважте, netstatприхильне на користь ss. Сумніваєтесь, що вона скоро піде, але просто фію. Б'юсь у заклад, що ssвже встановлено.
Патрік

@HalosGhost: Це може зайняти значно більше часу, і вам доведеться також задати або відповісти на деякі запитання.
Гвідо ван Стійн

1
Зазначений ОП CentOS 7. netstat не є дійсним пакетом у цьому дистрибутиві.
Девід Ньюкомб
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.