Debian - 端口 80 被阻止,但我不知道是什么原因

Goo*_*oot 9 debian analysis port

我无法让 lighttpd 侦听端口 80。

~# /etc/init.d/lighttpd start
Starting web server: lighttpd2013-03-16 23:15:02: (network.c.379) can't bind to port:  80 Address already in use
 failed!
Run Code Online (Sandbox Code Playgroud)

实际上,我的服务器上也安装了 apache2(侦听端口 80),但它未处于活动状态。

我使用了 netstat / netstat -npl 但它没有帮助

我怎样才能弄清楚什么在使用端口?

poi*_*ige 28

尽管人们已经习惯netstat了这种操作,但很高兴知道,Linux 有另一个很棒的(实际上是卓越的)网络工具 — ss. 例如,要找出哪个进程打开了端口 80,您可以运行它:

sudo ss -pt state listening 'sport = :80'

因此无需通过外部过滤器进行管道传输。当然它有更多有用的旋钮,所以让自己熟悉它。

为了完整起见,自从最近我遇到了man fuser,我还可以提到:

  • sudo fuser 80/tcp— 这也可以避免您在cut/ grep/ 上进行修补awk……请记住,这种表示法是一种捷径,以防出现歧义,您应该使用 允许的命名空间之一-n …,例如sudo fuser -n tcp 80

  • sudo lsof -n -sTCP:LISTEN -i:80—由@wallenborn指出。同时不是严格要求它强烈建议因为否则它使用DNS解析通常会严重减慢输出速度。-n


Mic*_*ton 5

Address already in use 意味着另一个进程已经在侦听端口 80。一次只有一个进程可以侦听给定的端口。

要查找进程,请以 root 身份运行:

netstat -tnlp | grep -w 80
Run Code Online (Sandbox Code Playgroud)

违规过程将被列出。