在Mac OSX上找出占用端口80的程序

9

我正在尝试在我的 Mac OS X 上使用 Node.js 构建的 hello-world 容器应用程序。

docker run -p 80:80 --name web -d node-hello

请注意,以上命令会启动容器并将其绑定到主机的端口80。请确保已经安装并正确配置了 Docker。
343503e8a29ac207c821caa7990373580dd6a1951e1e4936bbf9c71b0eff2213
docker: Error response from daemon: driver failed programming external connectivity on endpoint web (e6035cf3ae4df37f1a96a5a7ed321e6a0ae7ad484c05aae8d7b67f3d86fa3a76): Error starting userland proxy: Bind for 0.0.0.0:80: unexpected error (Failure EADDRINUSE). 

调试步骤

我访问了该地址

在这里输入图片描述

然后运行了此命令

lsof -i ":80"

得到的结果是

COMMAND   PID  USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
Google    956 bheng  225u  IPv6 0x5bed1c283af57fa7      0t0  TCP [2607:f518:15e:9540:3105:c54f:bd3c:14ed]:63120->yul02s04-in-x10.1e100.net:http (ESTABLISHED)


(netstat -an | grep LISTEN | grep 80) 
tcp4       0      0  127.0.0.1.4380         *.*                    LISTEN                                                                
tcp46      0      0  *.80                   *.*                    LISTEN 

我该如何查找当前在我的80端口上运行的具体内容?


端口80是否在监听中(netstat -an | grep LISTEN | grep 80)?如果是,请切换到管理员帐户并执行lsof | grep LISTEN,它将给出PID。 - Nic3500
你需要使用80端口吗? - OneCricketeer
@cricket_007:我在我的帖子中留下了一个结果,但这里还有另一个基于Nic3500的评论的结果:https://i.imgur.com/RlyIZtk.png - code-8
1
在这里回答了 https://dev59.com/EmAf5IYBdhLWcg3wqUWN#24388281 - Mark Setchell
1个回答

14

在lsof前加上sudo以查看您不拥有的进程ID。

sudo lsof -i:80

我已经这样做了,但我没有看到任何可能导致403错误的有用信息。 - code-8
1
如果有人遇到麻烦,请使用此链接 https://superuser.com/questions/597398/no-idea-what-is-listening-on-port-80-in-os-x - Paul Burilichev

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