查找在Linux中使用特定端口的进程


139

我希望能够找出哪个进程当前正在使用Linux中的某个端口。有什么办法吗?


3
在Windows上,命令为: netstat -anb
djangofan

Answers:


144

您有两种选择:

lsof -i tcp:80

将为您提供使用TCP端口80的进程列表。

或者,

sudo netstat -nlp

将为您提供所有开放的网络连接。


2
lsof -i | grep {username}也非常有用,例如lsof -i | grep apache
LawrenceC

1
对于任何想知道的人-n::不解析名称;-l:显示监听服务器套接字;-p:显示套接字的PID /程序名称。
yellavon 2014年

我通常会添加-P到,lsof -i tcp:$PORTNUMBER这样端口就可以打印回给我。
js。

9
netstat -lp

4
在Mac上,您必须向-p添加协议选项。就像这样:netstat -lp tcp。
vrish88

8

我正在使用netstat既没有也没有的“ CentOS 7 minimal” lsof。但是很多Linux发行版都有socket statistics命令(即ss)。

这是执行示例:

# ss -tanp | grep 6379
LISTEN   0    128  127.0.0.1:6379   *:*   users:(("redis-server",pid=2531,fd=4))

2

在Linux中,要查找端口上运行的进程,请执行以下操作:

lsof -i :<port_number>

例:

lsof -i :8080

感谢您的帮助。已接受的答案中提到了此命令。如果您有新内容,请编辑您的帖子。
本N
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.