Perintah tidak ditemukan: netstat, nmap di CentOS 7

66

Saya menggunakan CentOS berikut:

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

Perintah nmap, netstatdan lsoftidak ditemukan di CentOS7. Mengapa?

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

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

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

Apa yang harus saya lakukan untuk membuatnya bekerja?

tenang
sumber

Jawaban:

61

Paket net-toolsitu ditinggalkan dalam CentOS7 untuk iproute2suite. Anda dapat menginstalnya secara manual atau melihat posting blog ini untuk perintah penggantian:

SUNTING

Berikut adalah URL Bugzilla Red Hat untuk RHEL7 yang mencakup penghentian netstatlebih detail: https://bugzilla.redhat.com/show_bug.cgi?id=1119297

Kutipan

Seperti yang dinyatakan sebelumnya, net-tools sudah usang sehingga tidak boleh digunakan kecuali diperlukan. Perilaku di RHEL 7 sama dengan di Fedora - net-tools hilang dari instalasi minimal, tetapi di @base (~ = @standard di Fedora) yang diinstal di semua konfigurasi non-minimal.

Ada juga tiket lain yang berurusan dengan ini seperti ID 682308 dan 687920. Perhatikan bahwa mereka ditugaskan untuk proyek Fedora dan sudah cukup tua.

Dan Keder
sumber
3
lsof tidak tercantum dalam tautan pergantian Anda
mist
Akan jauh lebih berguna jika Anda memasukkan lsofjawaban langsung ke dalam jawaban Anda
ericn
3
Saya tidak berpikir itu lsofsudah usang. Hanya saja tidak diinstal secara default. Anda bisa mendapatkannya yum install lsof.
Dan Keder
32

kerjakan saja:

yum install net-tools
alex
sumber
10
Hanya perlu beberapa menit bagi saya untuk menentukan yang netstat -plntdiganti dengan ss -plntmenggunakan tautan ini dari jawaban @ DanKeder di atas. Saya pikir kita pertama-tama harus mencoba untuk membuat solusi yang direkomendasikan distribusi bekerja alih-alih kembali ke pendekatan yang sudah usang.
CodeMed
12

Setiap kali Anda tidak dapat menemukan executable di distro berbasis Red Hat dan Anda tahu namanya, Anda harus melakukan 1 dari 2 hal berikut.

Gunakan repoquery

Anda dapat mencari repositori YUM yang tersedia untuk sistem Anda dengan menggunakan perintah repoquery. Jika tidak diinstal, maka lakukan a yum install yum-utils.

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

Dari sini Anda dapat melihat paket mana yang dapat dieksekusi dengan nama-nama itu. Ini semuanya sekaligus.

$ 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

Sekarang lakukan a sudo yum install lsofatau sudo yum install nmapuntuk menginstal paket-paket yang hilang ini.

Gunakan pencarian yum

Anda juga dapat melakukan pencarian serupa menggunakan 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

Dengan pendekatan ini, Anda harus melakukan sedikit penggalian untuk mengonfirmasi bahwa paket yang dihasilkan menyertakan executable yang Anda cari. Saya biasanya melihat di sana menyala file untuk apa yang saya inginkan, tetapi untuk itu Anda harus menggunakan 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

Jadi menggunakan pendekatan pertama saya menghemat langkah-langkah tambahan.

penghentian netstat

Rupanya dalam CentOS 7 netstat, yang merupakan bagian dari paket net-toolstelah secara resmi ditinggalkan, jadi Anda harus menggunakan ss(bagian dari paket iproute2), maju.

slm
sumber
1
+1 untuk repoquerydan yum searchperintah.
fduff
4

Jawaban slm terbalik, hanya membuatnya lebih mudah untuk menemukan info yang saya gunakan. Saya ingin melakukan:

netstat -nlp | grep httpd

Sebaliknya, pada CentOS 7 saya hanya melakukan:

ss -nlp | grep httpd

Yang berfungsi, bahkan tidak harus menginstalnya pada CentOS 7 minimal.

Lakukan "man ss" untuk detail penggunaan.

Nagev
sumber
2

Tampaknya Anda tidak menginstal alat-alat ini. Pada CentOS, Anda harus dapat menginstalnya dengan mudah yum. Coba ini:

$ yum install nmap netstat
KidElephant
sumber
1
Sebenarnya, ini sepertinya jawaban yang cukup valid. Tapi, sebagai catatan, tidak butuh banyak waktu atau kerja untuk mendapatkan 50 rep; jika Anda benar-benar merasa sesuatu harus diposting sebagai komentar, tunggulah sampai Anda benar-benar dapat mempostingnya sebagai satu. (tidak akan lama)
HalosGhost
9
Juga perhatikan, netstattelah usang mendukung ss. Keraguan itu akan hilang dalam waktu dekat, tetapi hanya fyi. Saya yakin itu sssudah diinstal.
Patrick
@HalosGhost: Mungkin butuh waktu lebih lama dari itu, dan Anda harus bertanya atau menjawab beberapa pertanyaan untuk itu juga.
Guido van Steen
1
OP menentukan CentOS 7. netstat bukan paket yang valid dalam distribusi itu.
David Newcomb