Debian - A porta 80 está bloqueada, mas não sei por que

8

Não consigo fazer o lighttpd ouvir a porta 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!

Na verdade, eu tenho o apache2 instalado no meu servidor também (escutando a porta 80), mas ele não está ativo.

Eu usei netstat / netstat -npl, mas não foi útil

Como posso descobrir o que está usando a porta?

    
por Goot 16.03.2013 / 20:27

4 respostas

26

No depsite de pessoas se acostumaram a netstat para esse tipo de operação, é bom saber, que o Linux tem outra ótima ferramenta de rede (e, na verdade, superior) - ss . Para e. g., para descobrir qual processo abriu a porta 80 você o executa assim:

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

por isso não há necessidade de canalizar através de filtros externos. Certamente tem muitos botões mais úteis, então familiarize-se com isso.

Por questões de integridade e, desde então, me deparei com man fuser , também posso mencionar:

  • sudo fuser 80/tcp - este também evita que você faça alterações em cut / grep / awk … tenha em mente que essa notação é um atalho, caso haja uma ambigüidade, você deve usar um dos namespaces permitidos com -n … , como sudo fuser -n tcp 80

  • sudo lsof -n -sTCP:LISTEN -i:80 - foi destacado por @ wallenborn Enquanto isso, -n não é estritamente necessário, é altamente recomendado, já que de outra forma, ele usa a resolução de DNS, o que normalmente reduz a produção terrivelmente.

por 16.03.2013 / 20:37
5

Address already in use significa que outro processo já está escutando na porta 80. Apenas um processo pode escutar em uma determinada porta por vez.

Para encontrar o processo, execute como root:

netstat -tnlp | grep -w 80

O processo ofensivo será listado.

    
por 16.03.2013 / 20:29
4

Outra opção com menos pressionamentos de teclas é lsof:

lsof -i :80
    
por 17.03.2013 / 02:03
0

Tópico antigo, mas quem sabe, alguém tem o mesmo problema que eu tive. No Apache2, eu tinha mais de um site ativado. Em uma das configurações do site (/ etc / apache2 / sites-available) a primeira linha foi

listen 80

Isso causou um conflito com o próprio Apache! Porque já estava escutando na porta 80 como uma configuração global. Apenas remova o 'listen 80' do yoursite.conf se o Apache tiver a porta 80 como porta padrão.

    
por 25.10.2016 / 08:36