未找到命令:CentOS 7 上的 netstat、nmap

未找到命令:CentOS 7 上的 netstat、nmap

我使用的是以下 CentOS:

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

CentOS7 上找不到命令nmapnetstat和。lsof为什么?

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

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

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

我应该做什么才能让它们发挥作用?

答案1

该软件包net-tools在 CentOS7 中已被弃用,取而代之的是该iproute2套件。您可以手动安装它或查看此博客文章以获取替换命令:

编辑

以下是 Red Hat 针对 RHEL7 的 Bugzilla 的 URL,netstat其中更详细地介绍了弃用的内容:https://bugzilla.redhat.com/show_bug.cgi?id=1119297

摘抄

如前所述,网络工具已被弃用,因此除非必要,否则不应使用。 RHEL 7 中的行为与 Fedora 中的行为相同 - 最小安装中缺少 net-tools,但 @base(Fedora 中 ~= @standard)中存在 net-tools,该工具安装在所有非最小配置中。

还有其他处理此问题的票证,例如 ID 682308 和 687920。请注意,它们已分配给 Fedora 项目并且相当旧。

答案2

做就是了:

yum install net-tools

答案3

每当您在基于 Red Hat 的发行版上找不到可执行文件并且您知道它们的名称时,您应该执行以下 2 件事中的 1 件事。

使用repoquery

您可以使用命令搜索系统可用的 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 lsofsudo 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 的一部分)。

答案4

看来您根本没有安装这些工具。在 CentOS 上,您应该能够使用yum.尝试这个:

$ yum install nmap netstat

相关内容