Các lệnh không được tìm thấy: netstat, nmap trên CentOS 7


66

Tôi đang sử dụng các CentOS sau:

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

Các lệnh nmap, netstatlsofkhông được tìm thấy trên CentOS7. Tại sao?

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

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

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

Tôi nên làm gì để khiến chúng hoạt động?

Câu trả lời:


61

Gói net-toolsnày không được dùng trong CentOS7 để ủng hộ bộ sản phẩm iproute2này. Bạn có thể cài đặt thủ công hoặc kiểm tra blogpost này để biết các lệnh thay thế:

BIÊN TẬP

Đây là URL tới Bugzilla của Red Hat cho RHEL7 bao gồm sự phản đối netstatchi tiết hơn: https://bugzilla.redhat.com/show_orms.cgi?id=1119297

Trích

Như đã nêu trước đây, các công cụ mạng không được sử dụng vì vậy không nên sử dụng trừ khi cần thiết. Hành vi trong RHEL 7 giống như trong Fedora - các công cụ mạng bị thiếu trong cài đặt tối thiểu, nhưng ở @base (~ = @st Chuẩn trong Fedora) được cài đặt trong tất cả các cấu hình không tối thiểu.

Ngoài ra còn có các vé khác giải quyết vấn đề này như ID 682308 và 687920. Lưu ý rằng chúng được gán cho dự án Fedora và khá cũ.


3
lsof không được liệt kê trong liên kết thay thế của bạn
sương mù

Sẽ hữu ích hơn rất nhiều nếu bạn đặt sự thay thế lsoftrực tiếp vào câu trả lời của mình
ericn

3
Tôi không nghĩ rằng điều đó lsofđã bị phản đối. Nó chỉ không được cài đặt theo mặc định. Bạn có thể lấy nó với yum install lsof.
Dan Keder

32

cứ làm đi:

yum install net-tools

10
Tôi chỉ mất vài phút để xác định rằng nó netstat -plntđã được thay thế bằng ss -plntcách sử dụng liên kết này từ câu trả lời của @ DanKeder ở trên. Tôi nghĩ rằng trước tiên chúng ta nên cố gắng làm cho các giải pháp được đề xuất của phân phối hoạt động thay vì hoàn nguyên các phương pháp không dùng nữa.
CodeMed

12

Bất cứ khi nào bạn không thể tìm thấy các tệp thực thi trên bản phân phối dựa trên Red Hat và bạn biết tên của chúng, bạn nên thực hiện 1 trong 2 điều sau đây.

Sử dụng repoquery

Bạn có thể tìm kiếm các kho YUM có sẵn cho hệ thống của bạn bằng cách sử dụng lệnh repoquery. Nếu nó không được cài đặt, sau đó làm một yum install yum-utils.

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

Từ đây bạn có thể thấy gói nào có thể thực thi được với các tên đó. Đây là tất cả chúng cùng một lúc.

$ 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

Bây giờ chỉ cần làm một sudo yum install lsofhoặc sudo yum install nmapđể cài đặt các gói bị thiếu.

Sử dụng tìm kiếm yum

Bạn cũng có thể thực hiện một tìm kiếm tương tự bằng cách sử dụng 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

Với phương pháp này, bạn sẽ cần thực hiện một chút công việc đào bới để xác nhận rằng các gói kết quả bao gồm thực thi mà bạn đang tìm kiếm. Tôi thường tìm trong đó các tập tin cho những gì tôi muốn, nhưng cho điều đó bạn sẽ phải sử dụng 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

Vì vậy, sử dụng phương pháp đầu tiên của tôi giúp bạn tiết kiệm các bước bổ sung.

khấu hao của netstat

Rõ ràng trong CentOS 7 netstat, một phần của gói net-toolsđã không còn chính thức, vì vậy bạn nên sử dụng ss(một phần của gói iproute2), trong tương lai.


1
+1 cho các lệnh repoqueryyum search.
fduff

4

Câu trả lời nâng cao của slm, chỉ giúp dễ dàng tìm thấy thông tin tôi đã sử dụng. Tôi muốn làm:

netstat -nlp | grep httpd

Thay vào đó, trên CentOS 7 tôi mới làm:

ss -nlp | grep httpd

Mà hoạt động, thậm chí không phải cài đặt nó trên CentOS 7 tối thiểu.

Làm "man ss" để biết chi tiết sử dụng.


2

Có vẻ như bạn không cài đặt những công cụ này. Trên CentOS, bạn sẽ có thể cài đặt chúng dễ dàng yum. Thử đi:

$ yum install nmap netstat

1
Trên thực tế, đây có vẻ như là một câu trả lời khá hợp lệ. Nhưng, đối với hồ sơ, không mất nhiều thời gian và cũng không mất 50 đại diện; Nếu bạn thực sự cảm thấy một cái gì đó nên được đăng dưới dạng một bình luận, chỉ cần đợi cho đến khi bạn thực sự có thể đăng nó như một bình luận. (sẽ không mất nhiều thời gian)
HalosGhost

9
Cũng lưu ý, netstatđã được phản đối ủng hộ ss. Nghi ngờ nó sẽ biến mất bất cứ lúc nào sớm, nhưng chỉ là fyi. Tôi cá sslà đã cài đặt rồi.
Patrick

@HalosGhost: Có thể mất nhiều thời gian hơn thế và bạn cũng phải hỏi hoặc trả lời một số câu hỏi cho nó.
Guido van Steen

1
OP chỉ định CentOS 7. netstat không phải là gói hợp lệ trong phân phối đó.
David Newcomb
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.