Solaris 10 - 查找附加到侦听端口的服务

pop*_*nuk 1 networking solaris netstat

我正在诊断旧的 Solaris 10 版本,在端口扫描期间我发现一个开放端口不在此服务器的批准列表中。

我尝试了各种netstat开关组合,但似乎无法获得正确的输出,该输出为我提供了相关服务名称或开放端口的 PID。

与后来的 Solaris 版本和其他 Unix 操作系统相比,此版本中的 netstat 功能集似乎受到限制。netstat -tulpn例如不起作用。

lsof由于安全限制,我也无法安装。

有任何想法吗?

Lam*_*ert 7

对于 Solaris,您可以使用pfiles <pid>查看某个进程打开了哪些网络端口。使用 for 循环,/proc/*您可以pfiles在每个正在运行的进程上使用来查找您要查找的端口。缺点是您需要root在 Solaris 10 上,或者能够pfexec pfiles在 Solaris 11 上获得特权 ( ) 才能获取信息。

如果您能够成为rootSolaris 主机,您应该能够使用以下内容:

PORT=22; for PID in /proc/*; do pfiles ${PID} |grep "port: ${PORT}" && echo ${PID}; done
Run Code Online (Sandbox Code Playgroud)

这将迭代/proc/*,过滤指定的端口,如果找到匹配项,进程 ID ( /proc/####) 将显示在下一行。