Não faz ideia do que está escutando na porta 80 no OS X

32

Estou no OSX Mountain Lion 10.8.3 e reiniciei o meu Mac recentemente.

Eu quero iniciar um serviço (como o Apache na porta 80), mas já existe algo acontecendo com a porta 80:

telnet localhost 80

Trying ::1...
Connected to localhost.
Escape character is '^]'.

Espere, ouvi dizer que você pode encontrar isso com lsof ou netstat. Exceto que não há nada lá

netstat -an | grep LISTEN | grep '\.80'

*comes back blank*

lsof -i :80 | grep LISTEN

*comes back blank

Então, pelo que sei sobre sistemas unix, imagino que essa deve ser uma regra de encaminhamento de pacotes? Ou seja os pacotes estão sendo encaminhados da porta de entrada 80 para outra coisa, que está ouvindo naquele serviço.

ipfw show

65535 0 0 allow ip from any to any

Hmm, nada de anormal lá

pfctl -s nat

No ALTQ support in kernel
ALTQ related functions disabled

Nada incomum lá

A minha pergunta é, como eu posso exibir qualquer regra de encaminhamento de pacotes ... No Linux eu poderia fazer apenas iptables -L -t NAT, ou iptables -L. Ou, alternativamente, qualquer especialista da OSX pode me ajudar a diagnosticar esse problema?

    
por geoff 19.05.2013 / 19:45

3 respostas

39

Você precisa executar esses comandos como root para mostrar os processos de outros usuários, por exemplo:

sudo lsof -i ':80'

O Mac OS X inclui um servidor da Web Apache que pode ser controlado usando apachectl as root . Geralmente é iniciado via launchd , o arquivo de configuração correspondente é /System/Library/LaunchAgents/org.apache.httpd.plist . Se não é esse Apache rodando na porta 80, provavelmente é launchd , a implementação da Apple de um gerenciador de daemon. De acordo com Wikipedia :

When launchd scans through the job plists at boot time it reserves and listens on all of the ports requested by those jobs. If so indicated in the plist by the "OnDemand" key, the daemon is not actually loaded at the time. Rather, launchd will listen on the port, start the daemon when needed, and shut it down when it is not. After a daemon is loaded, launchd will keep track of it and make sure it is running if needed.

    
por 21.05.2013 / 22:25
7

Apenas para esclarecer a resposta real caso os usuários estejam procurando por isso.

  1. O launchd verifica o /System/Library/LaunchDaemons/ na inicialização e funciona a partir de org.apache.httpd.plist que, quando o apache é iniciado, ele precisa encaminhar a porta 80 para ele.

  2. sudo apachectl start foi concluído

  3. No entanto, houve um erro no arquivo httpd.conf , significando que o apache não foi iniciado, embora isso não tenha sido informado por meio do comando apachectl .

  4. O Launchd decidiu escutar na porta 80 porque achava que o apache estava funcionando.

  5. Mas o conteúdo de qualquer solicitação HTTP resultou em um fechamento imediato da conexão.

  6. sudo lsof -i :80 não obteve respostas

  7. sudo netstat -an | grep LISTEN não obteve respostas para a porta 80

  8. não havia informações até onde eu sabia em qualquer ferramenta de diagnóstico que mostrasse que a porta 80 estava em uso ou ouvindo.

  9. consertando o httpd.conf do apache e reiniciando o apache com sucesso, assim o httpd estava na tabela ps, o que levou solicitações HTTP a serem bem-sucedidas.

  10. Eu estava, portanto, confundindo que não consegui executar o apache porque já havia algo escutando na porta 80, em vez de o próprio conf do apache ser a causa

por 22.05.2013 / 13:55
0

Eu acabei de me deparar com o mesmo problema com o antivírus OSX El Capitan e Avast. sudo lsof -i ':80' mostrou uma conexão com o avast.com.

me@destop ~|master$ sudo lsof -i ':80'
Password:
COMMAND    PID USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
com.avast 7964 root   58u  IPv4 0xc4c1bba31fcc2c7f      0t0  TCP 192.168.100.111:52381->mia04-004.ff.avast.com:http (ESTABLISHED)

Eu tive que

  1. desinstalar o Avast com /Applications/Uninstall Avast.app
  2. sudo rm -rf "/Library/Application Support/Avast" "/Applications/Avast Business Security.app" "/Applications/Uninstall Avast.app"
  3. reiniciar

para impedir que ele use a porta 80.

    
por 04.08.2017 / 20:15