找不到命令:netstat,CentOS 7上的nmap


66

我正在使用以下CentOS:

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

该命令nmapnetstatlsof没有在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

我应该怎么做才能使其工作?

Answers:


61

该套件net-tools已在CentOS7中弃用,以支持该iproute2套件。您可以手动安装它,也可以查看此博客文章中的替换命令:

编辑

这是Red Hat适用于RHEL7的Bugzilla的URL,其中包含netstat更详细的弃用信息:https : //bugzilla.redhat.com/show_bug.cgi?id=1119297

摘抄

如前所述,不推荐使用net-tools,因此除非有必要,否则不应使用它。RHEL 7中的行为与Fedora中的行为相同-最小安装中缺少net-tools,但在所有非最小配置中都安装的@base(在Fedora中为〜= @standard)中。

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


3
lsof没有出现在您的换人链接中

如果您lsof直接在答案中添加替换,
则将大有用处

3
我不认为那lsof是过时的。默认情况下未安装。你可以用得到它yum install lsof
丹·凯德

32

做就是了:

yum install net-tools

10
我只用了几分钟就确定使用上面@DanKeder的答案中的此链接netstat -plnt替换了该链接。我认为我们应该首先尝试使发行版推荐的解决方案起作用,而不是恢复使用已弃用的方法。ss -plnt
CodeMed

12

每当在基于Red Hat的发行版上找不到可执行文件并且知道其名称时,都应执行以下2件事中的一项。

使用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软件包的一部分)。


1
repoqueryyum search命令+1 。
fduff

4

支持slm的答案,只是使查找我使用的信息更加容易。我想做:

netstat -nlp | grep httpd

相反,在CentOS 7上,我做了:

ss -nlp | grep httpd

哪个可行,甚至不必在CentOS 7 Minimum上安装它。

使用“ man ss”获取用法详细信息。


2

看来您根本没有安装这些工具。在CentOS上,您应该可以使用轻松地安装它们yum。尝试这个:

$ yum install nmap netstat

1
实际上,这似乎是一个相当有效的答案。但是,据记录,获得50个代表并不需要花费很多时间和精力。如果您真的觉得应该将某条内容发布为评论,请稍等,直到您可以将其实际发布为评论为止。(时间不会太长)
HalosGhost 2014年

9
另请注意,netstat已弃用,而赞成ss。怀疑它会很快消失,但仅供参考。我打赌那ss已经安装了。
Patrick

@HalosGhost:可能要花更长的时间,您也必须为此提出或回答一些问题。
Guido van Steen 2014年

1
OP指定的CentOS7。netstat在该发行版中不是有效的软件包。
David Newcomb 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.