Apesar de as pessoas se acostumarem a netstat
esse tipo de operação, é bom saber que o Linux tem outra ótima (e, na verdade superior) ferramenta de rede - ss
. Por exemplo, para descobrir qual processo abriu a porta 80, você a executa:
sudo ss -pt state listening 'sport = :80'
portanto, não há necessidade de passar por filtros externos. Certamente ele tem muito mais botões úteis, então familiarize-se com ele.
Por uma questão de completude, e desde que me deparei recentemente man fuser
, também posso mencionar:
sudo fuser 80/tcp
- este também evita que você mexa em cut
/ grep
/ awk
… lembre-se de que essa notação é um atalho, caso exista uma ambiguidade, você deve usar um dos espaços para nome permitidos -n …
, comosudo fuser -n tcp 80
sudo lsof -n -sTCP:LISTEN -i:80
- foi apontado por @ wallenborn . Enquanto isso -n
não é estritamente necessário, é altamente recomendável, pois caso contrário, ele usa a resolução de DNS, o que geralmente diminui enormemente a produção.
ls -l /proc/PID/exe
faria. E você quer dizer o diretório de trabalho atual, veja…/cwd
.Address already in use
significa que outro processo já está escutando na porta 80. Somente um processo pode escutar em uma determinada porta por vez.Para encontrar o processo, execute como root:
O processo incorreto será listado.
fonte
Outra opção com menos pressionamentos de tecla é lsof:
fonte
lsof -n -sTCP:LISTEN -i:22
sudo lsof -n -sTCP:LISTEN -i:80
. E é melhor usarsudo
explicitamente para enfatizar que, a menos que o usuário tenha permissões superiores, ele poderá não ser capaz de obter resultados corretos.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
Isso causou um conflito com o próprio Apache! Porque ele 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.
fonte