Aplicação bloqueando porta TCP no Linux

As vezes temos alguma aplicação web bloqueando uma porta no nosso sistema operacional, pessoas inexperientes podem achar que a única solução é reiniciar o sistema, mas ao invés disso você pode simplesmente desbloquear a porta TCP.

Isso pode acontecer muito com programadores quando estão desenvolvendo alguma aplicação web, ou quando estão testando, se a aplicação por algum motivo se comportar de uma forma inesperada, pode acabar bloqueando a porta em que ela estava executando.

Quando você precisa recorrer a isso e está usando o sistema operacional Windows, recorremos ao gerenciador de tarefas, para tentar parar esse processo, mas e quando estamos usando Linux? Alguns usuários que tem pouca afinidade com esse sistema operacional pode ter dificuldades.

Sabendo disso criamos um tutorial simples que vai te ajudar a resolver esse problema, com alguns poucos comandos no terminal vai conseguir parar a execução dessa aplicação e deixar a porta disponível novamente para que sua aplicação seja reiniciada.

Listando as aplicações em execução

Para listar todas as aplicações sendo executada em sua maquina, pode utilizar esse comando abaixo.

lsof -w -n -i
Terminal

Como saída no nosso terminal é exibido as informações das aplicações em execução no momento, segue o exemplo.

lsof -w -n -i         
COMMAND      PID     USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
code        7524 artefatox  109u  IPv4   55488      0t0  TCP 127.0.0.1:34725 (LISTEN)
java       27512 artefatox   38u  IPv6   96664      0t0  TCP 192.168.0.25:56314->198.41.30.198:https (CLOSE_WAIT)
firefox   170202 artefatox   43u  IPv4 1522092      0t0  TCP 192.168.0.25:57118->35.163.49.154:https (ESTABLISHED)
chrome    341888 artefatox  187u  IPv4 1492826      0t0  UDP 224.0.0.251:mdns 
Terminal

No nosso exemplo aparece um lista bem curta de algumas aplicações em execução, mas quando você fizer esse comando será uma lista bem maior e com isso temos um problema, achar a aplicação que estamos procurando, não queremos interromper a aplicação errada correndo o risco de perder alguma informação.

Para não correr esse risco podemos executar o mesmo comando, mas filtrando para que nos mostre somente a aplicação que estamos procurando, garantindo que vamos parar o funcionamento da aplicação correta.

Listando as aplicações em execução com filtro da porta TCP

Para filtrar nas aplicações em execução, a maneira mais fácil nesse cenário é através da porta tcp, somente uma aplicação pode alocar essa porta por vez, e outros filtros como o usuário ou o comando pode trazer inúmeros resultados que é o que não queremos.

Para filtrar usando a porta tcp o nosso comando fica assim:

lsof -w -n -i tcp:<porta>
Terminal

Substituindo <porta> pelo valor da porque está buscando ele irá mostrar a aplicação que está alocando a porta TCP, para o exemplo de uma aplicação em Java que geralmente utilizamos a porta 8080, nosso comando ficaria assim:

lsof -w -n -i tcp:8080
Terminal

Como exemplo de saída teremos uma informação parecida com essa:

lsof -w -n -i tcp:8080
COMMAND     PID     USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
java     319619 artefatox   41u  IPv6 1407248      0t0  TCP *:http-alt (LISTEN)
Terminal

Agora com o filtro facilmente encontramos a aplicação que está bloqueando a porta, note que é nos mostrado várias informações como o comando, o usuário que está executando essa aplicação, mas a informação mais importante é o PID ele é o identificador da execução da aplicação, é com essa informação que vamos conseguir parar a aplicação em execução, copie o PID, pois vamos utilizá-lo no próximo comando onde vamos parar a aplicação.

kill -9 <pid>
Terminal

Aplicando ao nosso exemplo o comando ficaria assim:

kill -9 319619
Terminal

Após a execução do comando, a aplicação em execução travando a porta será removida desbloqueando a porta e permitindo a execução da sua aplicação novamente.

Para mais conteúdo sobre Linux acesse: Tutoriais de Linux.

Links úteis

Mauricio Lima
Mauricio Lima

Bacharel em Ciência da Computação, profissional dedicado ao desenvolvimento de software e entusiasta da tecnologia.

Artigos: 65