LSOF如何映射端口以在Solaris上处理?

时间:2015-07-31 21:00:27

标签: process mapping port solaris lsof

我知道它是如何在Linux上完成的,它们可能会通过/ proc // fd并显示每个进程使用的套接字。

不幸的是,它看起来不像Solaris上的/ proc // fd条目列表套接字。有谁知道lsof会如何在这个系统上做到这一点?或者一般人们怎么会这样做呢?

重述一下我需要的内容:我需要一些方法来查找哪些进程正在侦听哪些端口(当然不使用lsof)。

2 个答案:

答案 0 :(得分:0)

/proc/<pid>/fd列出所有打开的文件描述符,包括与套接字关联的描述符,例如:

# pwd
/proc/408/fd
# ls -l
total 4
c---------   1 root     sys       13,  2 Jul 31 23:12 0
c---------   1 root     sys       97,  1 Jul 31 23:06 1
p---------   0 root     root           0 Jul 31 23:06 10
p---------   0 root     root           0 Jul 31 23:06 11
c---------   1 root     sys       97,  1 Jul 31 23:06 2
-r--r--r--   1 root     root        1209 Jul 31 23:06 3
D---------   1 root     root           0 Jul 31 23:06 4
s---------   0 root     root           0 Jul 31 23:06 5
s---------   0 root     root           0 Jul 31 23:06 6
p---------   0 root     root           0 Jul 31 23:06 7
p---------   0 root     root           0 Jul 31 23:06 8
s---------   0 root     root           0 Jul 31 23:06 9

此处文件描述符569绝对是套接字,显示其s文件类型。

不确定lsof在封面下做了什么,但要获取套接字详细信息,pfiles正在阅读流程内部结构。请参阅其dosocket方法。

答案 1 :(得分:0)

如果您运行的是Solaris 11.2,则可以使用netstat -u。根据{{​​3}}:

  

-u

     

列出最初创建网络端点的用户,进程ID和程序,或者立即对其进行控制。