如何找出进程正在使用哪个端口号

4

我希望能够查找进程所在的端口号,并使用关键字过滤结果。

例如,我可能想快速找出 "node" js 应用程序正在使用哪些端口号。

但这个方法并不起作用:

netstat tulnap | grep "node"

这没有返回端口号:

ps aux | grep node

1
你试过只用 netstat -anp | grep node 吗? - Pierre Alex
顺便说一下,我注意到在OSX上该命令没有连字符。这是我得到的结果,没有用处: 地址 类型 接收-Q 发送-Q 节点号 连接 引用数 下一个引用地址 - Timothy
3个回答

6

这是我找到解决方案的方法:

     » lsof -i -P  | grep node
    node      14489 me   12u  IPv4 0x...      0t0    TCP *:4000 (LISTEN)

如果我知道端口号,需要查找进程名称,我会做以下操作:
     » lsof -i :4000
    COMMAND   PID       USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
    node    14489 me   12u  IPv4 0x...      0t0  TCP *:terabase (LISTEN)

1
活动的互联网连接(无服务器)
netstat -pnt 

活动的互联网连接(仅限服务器)

netstat -pntl

-2

你所做的事情可能永远不会成功,因为GREP不能保证只返回0个、1个或多个结果。

但是,在你特定的情况下,任何进程都是唯一的,并且有一个唯一的编号。因此,你必须先进行搜索以找到进程编号。

简单的grep仍然可能会给出0个、1个或多个进程编号。但你需要找到一个额外的过滤器,以便最终得到1个进程编号。

如果你有1个进程编号,就可以检查该进程正在使用的端口。

你认为“node”在PS中报告了吗?这也可能不是这样。


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