lsof 和监听端口

Mat*_*teo 67 osx lsof

我正在尝试让所有进程在 Mac OS X 上侦听网络连接。netstat没有-p选项,我正在尝试使用 lsof

lsof -i -sTCP:LISTEN
Run Code Online (Sandbox Code Playgroud)

给了我一个公平的聆听过程清单,但不是全部。例如,我可以 telnet 到端口 10080,在那里我有一个进程正在侦听连接,但这未显示在lsof. 我错过了什么?

$ telnet localhost 10080
Trying ::1...
Connected to localhost.
Escape character is '^]'.
^]
telnet> Connection closed.
Run Code Online (Sandbox Code Playgroud)

$ sudo lsof -n -i | grep 10080
$
Run Code Online (Sandbox Code Playgroud)

小智 101

sudo lsof -iTCP -sTCP:LISTEN
sudo lsof -iTCP -sTCP:LISTEN -P
sudo lsof -iTCP -sTCP:LISTEN -P -n
sudo lsof -iTCP -sTCP:LISTEN -n
Run Code Online (Sandbox Code Playgroud)

... | wc -l在我经常使用的 Lion MBP 上,所有条目都返回相同的 32 个条目 ( )。

-P -n阻止lsof进行名称解析,并且不会阻止。缺少其中之一,它可能会非常慢。

对于UDP: sudo lsof -iUDP -P -n | egrep -v '(127|::1)'。没有-n-P,需要很长时间。

提醒:这不包括防火墙设置。

  • 是的,问题是缺少`-P`。我错误地认为 `-n` 不仅适用于 IP,也适用于端口号。 (3认同)

mtk*_*mtk 7

sudo lsof -nP -iTCP -sTCP:监听

此命令显示所有网络文件,并在所有开放端口上使用 TCP 协议进行侦听。

sudo lsof -nP -iTCP: 5432-sTCP:LISTEN

此命令仅显示正在侦听的端口5432