Debian – 80端口被阻塞,但我不知道是什么

我不能让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! 

其实我也有我的服务器上安装apache2(听80端口),但它不活跃。

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

我怎样才能找出什么是使用端口?

    在人们习惯了netstat进行这种操作的情况下,很高兴知道Linux有另一个伟大的networking工具 – ss 。 例如, 要找出哪个进程打开了80端口,请运行它:

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

    所以不需要通过外部filter。 当然,它有更多有用的旋钮,所以让自己熟悉它。

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

    • sudo fuser 80/tcp – 这个也可以让你免于在cut / grep / awk …记住这个符号是一个捷径,如果有歧义,你应该使用-n …允许的命名空间之一sudo fuser -n tcp 80

    • sudo lsof -n -sTCP:LISTEN -i:80 – 被@ wallenborn 指出 。 同时-n不是严格要求强烈build议,因为否则它使用DNSparsing哪些通常减慢输出非常。

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

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

     netstat -tnlp | grep -w 80 

    违规过程将被列出。

    另一个selectless击键是lsof:

     lsof -i :80 

    老线索,但谁知道,有人有我一样的问题。 在Apache2中,我启用了多个站点。 在其中一个站点configuration(/ etc / apache2 / sites-available)中,第一行是

     listen 80 

    这导致与Apache本身的冲突! 因为它已经作为全局configuration在端口80上侦听。 如果Apache将端口80作为默认端口,只需从yoursite.conf中删除“listen 80”即可。