LSOF打印数字端口

88
如何让lsof生成数字端口信息而不是尝试解析端口到服务名称?
例如,我希望TCP *:http (LISTEN)给出TCP *:80 (LISTEN)。如果可能的话,我希望在lsof的输出中永远不再看到其他服务名称。因此,如果有一种方法可以使数字端口成为默认设置,我也想了解如何操作。
2个回答

127

运行 lsof -P 命令。

如果你将选项与-i组合使用,请确保P在i之前:

lsof -Pi

根据man lsof-P 抑制网络文件端口号转换为端口名称。抑制转换可以使 lsof 运行速度稍快。当端口名称查找无法正常工作时也很有用。


6
从man手册中得知:-n:禁止将网络文件的网络数字转换为主机名。-P:禁止将网络文件的端口号转换为端口名。 - Kurt Zhong

17
有时候"handy"很方便:
lsof -Pi

当我尝试 losf -iP 时,它给了我一些垃圾,所以确保 P 先出现。


顺便说一下:lsof -3.14 会提供相同的垃圾,请不要尝试这个命令。


1
奇怪的是,即使在 macOS 的 lsof 上,顺序仍然很重要。 - rodorgas
从 man " -i [i] 选择文件列表,其中任何一个 Internet 地址与 i 指定的地址匹配",因此 -iP 表示选择与 P 匹配的 Internet 地址。另一件事是 lsof -P -i 的作用与 lsof -i -P 相同。 - kwarunek
1
这个命令 lsof -i :4444 -P 可以查找监听端口 4444 的进程。顺便提一下,3.14 版本的一个小技巧:试试这个命令 alias lsof-3.14='lsof -Pi' 然后执行 lsof-3.14 :4444 :) - jamesmortensen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接