我知道我可以nmap
用来查看特定机器上打开了哪些端口。但我需要的是一种从主机端本身获取它的方法。
目前,如果我nmap
在其中一台机器上使用来检查另一台机器,我会举个例子:
smb:~# nmap 192.168.1.4
PORT STATE SERVICE
25/tcp open smtp
80/tcp open http
113/tcp closed ident
143/tcp open imap
443/tcp open https
465/tcp open smtps
587/tcp open submission
993/tcp open imaps
有没有办法在主机本身上做到这一点?不是从远程机器到特定主机。
我知道我能做到
nmap localhost
但这不是我想要做的,因为我会将命令放入通过所有机器的脚本中。
编辑:
这种方式,nmap
显示22 5000 5001 5432 6002 7103 7106 7201 9200
但lsof command
显示给我22 5000 5001 5432 5601 6002 7102 7103 7104 7105 7106 7107 7108 7109 7110 7111 7112 7201 7210 11211 27017
在 Linux 上,您可以使用:
或者
列出正在
l
侦听T
的CP 和U
DP 端口。如果要禁用从端口号和 IP 地址到服务和主机名的转换,请添加
-n
选项(对于ss
或)。netstat
添加
-p
选项以查看正在侦听的进程(如果有,某些端口可能被内核绑定,例如 NFS)(如果您没有超级用户权限,则只会为以您的名义运行的进程提供该信息)。这将列出应用程序正在侦听的端口(对于 UDP,它绑定了一个套接字)。请注意,有些可能只侦听给定地址(IPv4 和/或 IPv6),这将显示在
ss
/的输出中netstat
(0.0.0.0
表示侦听任何IPv4 地址,[::]
任何 IPv6 地址)。即使那样,这并不意味着网络上的给定其他主机可以与该端口上的系统联系,并且该地址作为任何防火墙,包括主机防火墙可能会基于或多或少地阻止或屏蔽/重定向该端口上的传入连接复杂的规则(比如只允许来自这个或那个主机、这个或那个源端口、在这个或那个时间以及每分钟最多这个或那个时间等)。对于主机防火墙配置,您可以查看
iptables-save
.另请注意,如果一个或多个进程正在/正在侦听 TCP 套接字但不接受那里的连接,一旦待处理的传入连接数大于最大积压,连接将不再被接受,并且来自远程主机,它将显示为好像端口被阻止了。观察/
Recv-Q
输出中的列以发现这些情况(传入连接未被接受并填满队列)。ss
netstat
你也可以使用
这将显示当前正在侦听的所有端口。
只是做
nmap localhost
或nmap 127.0.0.1
编辑:
还有
ss -lntu
来自https://superuser.com/questions/529830/get-a-list-of-open-ports-in-linux#529844或者,对于任何特定端口,
要查看应用程序/端口组合的列表,请使用
在终端中查看打开的 TCP/UDP 端口类型:
或者
ss -lntu
您可以通过这种方式检查包含所有详细信息的完整列表 tpc:
适用于所有端口
或者,对于任何特定端口,