如何知道在给定端口上正在侦听的程序?

Modified on: Sat, 09 Jun 2018 02:18:53 +0800

我怀疑程序正在我的机器上侦听端口8000

当我运行以下命令时,出现此错误:

> python -m SimpleHTTPServer # Lots of python error socket.error: [Errno 98] Address already in use

如果我使用其他端口(8000是默认设置),则Web服务器运行正常。

如果我从命令行运行wget localhost:8000,它将返回404 Not Found

我可以做什么(或者有什么工具可用)来查找正在侦听端口8000的程序,以及从那里配置该程序的程序?

最佳答案

打开终端并输入

lsof -i :8000

该命令将列出该端口使用PID的应用程序。
(如果没有结果通过sudo运行,因为您可能无权访问某些进程。)

例如,使用端口8000(python3 -m http.server):

$ lsof -i :8000
COMMAND  PID USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
python3 3269 user    3u  IPv4 1783216      0t0  TCP *:8000 (LISTEN)

端口22(SSH):

$ sudo lsof -i :22
COMMAND  PID USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
sshd     998 root    3u  IPv4 1442116      0t0  TCP *:ssh (LISTEN)
sshd     998 root    4u  IPv6 1442118      0t0  TCP *:ssh (LISTEN)

希望有所帮助。

作者:muru,Ten-Coin

相关问答

添加新评论