Portas abertas no Linux: como ver com ss e lsof na VPS
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

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).-4e-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 olsofmais 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:
- Descubra quem usa a porta, por exemplo com
sudo lsof -i :8080. - Se só o número do processo interessa,
sudo lsof -t -i :8080devolve apenas o PID, sem cabeçalho. - 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 -tlnpe as UDP comsudo ss -ulnp. - Filtre uma porta específica com
ss -tln '( sport = :8080 )'. - Descubra o programa da porta com
-pnossou comsudo 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 :8080antes de encerrar um processo. - Em portas abaixo de 1024, o erro pode ser de permissão.
- Use
ssno lugar donetstat.
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.