Base de Conhecimento

Portas abertas no Linux: como ver com ss e lsof na VPS

  • portas abertas no linux, ss, lsof, netstat, vps, porta em uso
  • Usuários acharam útil: 0

Veja como listar as portas em escuta na VPS com ss e lsof, descobrir qual programa usa cada porta e lidar com o erro Address already in use.

Por Redação Eleven Host · @robson.direitodigital · 31 de outubro de 2026 · 9 min de leitura

Arte da Eleven Host: janela de terminal com o título: Portas abertas no Linux: como ver com ss e lsof na VPS

Capa da Redação Eleven Host para o guia: Portas abertas no Linux: como ver com ss e lsof na VPS Arte: Eleven Host

Para ver as portas abertas no Linux, o comando ss lista os sockets em escuta e, com as opções certas, mostra também qual programa usa cada porta. O lsof faz o caminho inverso: você informa a porta e ele diz quem a mantém.

Aqui você vê o que é uma porta em escuta, como achar o programa de uma porta, como filtrar a 80, a 443 ou a 8080, a diferença entre 0.0.0.0 e 127.0.0.1 e o que fazer com o erro "Address already in use". Se a VPS ainda é novidade para você, comece pelo guia de servidor VPS para iniciantes. As portas dos exemplos são fictícias.

O que é uma porta em escuta e por que olhar

Um programa que atende conexões, como um servidor web ou um banco de dados, abre uma porta e fica esperando. No vocabulário do ss, isso é um socket listening. Na página do netstat, LISTEN é o estado em que o socket espera conexões que chegam.

Olhar essa lista responde a perguntas práticas: o serviço que você instalou subiu na porta esperada? Há algum programa escutando que você não reconhece? A porta que o seu aplicativo precisa já está ocupada?

Porta "aberta", neste guia, quer dizer que existe um programa em escuta nela. O que o firewall permite passar é uma conferência separada.

ss: o comando principal para listar portas

Segundo a página de manual, o ss serve para exibir estatísticas de sockets. Ele faz parte do projeto iproute2; no Ubuntu noble, a página aparece como fornecida pelo pacote iproute2. As opções que interessam aqui, com a descrição da página:

  • -t: mostra sockets TCP.
  • -u: mostra sockets UDP.
  • -l: mostra só os sockets em escuta, que ficam de fora por padrão.
  • -n: não tenta resolver nomes de serviços, então as portas aparecem como número.
  • -p: mostra o processo que usa o socket.
  • -a: mostra sockets em escuta e fora de escuta (no TCP, isso inclui as conexões estabelecidas).
  • -4 e -6: limitam a saída a IPv4 ou a IPv6.
  • -s: imprime um resumo estatístico.

Juntando as opções, ficam estes comandos. Eles são montados a partir das opções documentadas, e não copiados de um exemplo pronto da página:

sudo ss -tlnp

sudo ss -ulnp

sudo ss -tulnp

O primeiro lista as portas TCP em escuta, o segundo as UDP e o terceiro as duas juntas, com o programa de cada porta por causa do -p. A página do ss não diz qual permissão o -p pede. Os exemplos usam sudo por precaução.

Para separar por versão do IP, acrescente -4 ou -6 no fim, como em ss -tln -4. Para ver as conexões TCP estabelecidas e um resumo geral:

ss -tn state established

ss -s

Em cada linha, leia o endereço que vem antes da porta; mais abaixo está o que ele significa.

Ver qual programa usa a porta

Com a opção -p, o ss acrescenta o programa que mantém o socket. Na página de manual do Ubuntu, a descrição é "Show process using socket". Em outras versões da página, o texto está no plural, e a opção é a mesma.

sudo ss -tlnp

O lsof chega ao mesmo ponto por outro caminho. A página dele diz que o programa lista informações sobre arquivos abertos por processos. A opção -i seleciona os arquivos de rede e, sem endereço, lista os de Internet. A mesma página explica como restringir:

  • -i :8080: a porta 8080.
  • -iTCP: só TCP.
  • -sTCP:LISTEN: só sockets TCP no estado LISTEN.
  • -P: não converte números de porta em nomes.
  • -n: não converte números de rede em nomes de host, o que, segundo a página, pode deixar o lsof mais rápido.
  • -t: saída enxuta, só com os números dos processos (PID), sem cabeçalho.

Para listar as portas TCP em escuta:

sudo lsof -iTCP -sTCP:LISTEN -P -n

Sobre permissão, a página do lsof diz que, conforme a compilação, ou a listagem completa é liberada a usuários comuns, ou só o root a faz. Ela não informa o caso do pacote do Ubuntu. Por isso os exemplos usam sudo: sem ele, a lista pode não mostrar processos de outros usuários.

As páginas lidas não dizem se o lsof ou o iproute2 já estão instalados na sua VPS; se o comando não for encontrado, instale o pacote correspondente.

Quer conhecer a VPS da Eleven Host? VPS a partir de R$ 17,00/mês no Plano Bronze; confira na loja o que cada plano inclui. Ver os planos de VPS

Descobrir quem está na porta 80, 443 ou 8080

Quando você já sabe a porta, filtre em vez de ler a lista inteira. O ss aceita filtros entre parênteses e aspas; um exemplo oficial usa o formato ( sport = :http or sport = :https ). Aplicado a uma porta de aplicativo:

ss -tln '( sport = :8080 )'

Para olhar duas portas ao mesmo tempo, como a 80 e a 443 de um site, o or do exemplo oficial serve de modelo:

ss -tln '( sport = :80 or sport = :443 )'

Se a linha aparece, existe um programa em escuta naquela porta. Para saber qual, repita o comando com sudo e a opção -p, ou use o lsof:

sudo lsof -i :8080

sudo lsof -iTCP:8080 -sTCP:LISTEN -P -n

A forma -i :porta segue a sintaxe de endereço da página do lsof, que aceita [:serviço|porta]; lá, TCP:25 aparece como exemplo de protocolo mais porta.

Depois de mudar a porta do SSH, o mesmo método confirma a nova porta em escuta. O passo a passo da mudança está no guia Mudar a porta do SSH: passo a passo na VPS.

0.0.0.0 e 127.0.0.1: aberta para a rede ou só para a própria máquina

O endereço que aparece antes da porta diz onde o programa aceita conexões. Segundo a página ip(7) do manual do Linux, INADDR_ANY (0.0.0.0) significa qualquer endereço na hora de ligar o socket, e o socket fica ligado a todas as interfaces locais. Já o INADDR_LOOPBACK (127.0.0.1) se refere à máquina local, pela interface de loopback.

Na prática, a leitura é esta:

  • Porta em 0.0.0.0: o programa aceita conexões nas interfaces locais da máquina.
  • Porta em 127.0.0.1: o programa atende só a própria máquina, pela interface de loopback.

No lsof, a coluna NAME mostra um asterisco (*) para o endereço "qualquer" do IPv4 e do IPv6 e para porta zero. Em qual endereço o programa escuta é decisão da configuração dele; o ss só mostra como ele está.

"Address already in use": a porta já está ocupada

Ao subir um serviço, você pode receber uma mensagem dizendo que o endereço já está em uso. Esse é o erro EADDRINUSE, que na página do bind(2) significa que o endereço dado já está em uso.

O caminho de diagnóstico é o que você acabou de ver:

  1. Descubra quem usa a porta, por exemplo com sudo lsof -i :8080.
  2. Se só o número do processo interessa, sudo lsof -t -i :8080 devolve apenas o PID, sem cabeçalho.
  3. Decida: parar o serviço certo, mudar a porta do novo programa ou encerrar um processo preso.

sudo lsof -t -i :8080

Se o dono da porta é um processo travado, o guia Comando kill: como encerrar processos travados na VPS mostra como enviar o sinal certo ao PID. Se o dono é um serviço gerenciado pelo systemd, prefira parar o serviço pelo gerenciador; o guia systemctl: como iniciar, parar e ver serviços na VPS explica os comandos.

A página ip(7) traz mais dois detalhes. Um endereço TCP local já usado fica indisponível por algum tempo depois de fechado, a menos que o programa tenha ligado a opção SO_REUSEADDR; essa opção é do programa, e a página avisa que ela deixa o TCP menos confiável. E as portas abaixo de 1024 são privilegiadas: no Linux, ligar-se a elas pede a capacidade CAP_NET_BIND_SERVICE. Por isso, um erro ao subir um programa na porta 80 ou 443 pode ser de permissão (EACCES), e não de porta ocupada.

E o netstat?

O netstat -tulpn aparece nos exemplos da página de manual do netstat, e essa página diz que o programa é "mostly obsolete", em boa parte obsoleto, e que o substituto é o ss. Ela também informa que o netstat faz parte do projeto net-tools.

As opções são parecidas: -l mostra só os sockets em escuta, -n usa endereços numéricos e -p mostra o PID e o nome do programa. Sobre esse -p, a página adverte que a informação "não é confiável". As documentações lidas não dizem se o net-tools está instalado na sua VPS. Como o ss é o substituto indicado, use ele nos exemplos novos.

Checklist de portas da VPS

  • Liste as portas TCP em escuta com sudo ss -tlnp e as UDP com sudo ss -ulnp.
  • Filtre uma porta específica com ss -tln '( sport = :8080 )'.
  • Descubra o programa da porta com -p no ss ou com sudo lsof -i :8080.
  • Leia o endereço antes da porta: 0.0.0.0 atende nas interfaces locais, 127.0.0.1 só a própria máquina.
  • Lembre que porta em escuta não é regra de firewall; confira o firewall da própria VPS à parte.
  • No erro "Address already in use", ache o PID com sudo lsof -t -i :8080 antes de encerrar um processo.
  • Em portas abaixo de 1024, o erro pode ser de permissão.
  • Use ss no lugar do netstat.

Quer ver as opções de VPS da Eleven Host? VPS a partir de R$ 17,00/mês no Plano Bronze; confira na loja o que cada plano inclui. Conhecer a VPS

Perguntas frequentes

Qual comando mostra as portas abertas no Linux?

O ss lista os sockets em escuta. Com sudo ss -tlnp, você vê as portas TCP em escuta e o programa de cada uma. Para UDP, troque o -t por -u.

Como saber qual programa usa a porta 8080?

Use sudo lsof -i :8080 ou ss -tlnp com o filtro da porta. A opção -p do ss mostra o processo.

Qual a diferença entre 0.0.0.0 e 127.0.0.1?

0.0.0.0 é o endereço "qualquer", usado ao ligar o socket. 127.0.0.1 é o loopback e se refere à própria máquina.

O netstat ainda serve?

A página de manual o descreve como em boa parte obsoleto e indica o ss como substituto.

Esta resposta lhe foi útil?

Artigos Relacionados