Saber como verificar portas abertas no Linux é uma habilidade fundamental para quem gerencia servidores, resolve problemas de rede ou quer reforçar a segurança do sistema. Uma porta aberta é basicamente uma entrada para o seu sistema - e se você não sabe quais entradas estão abertas, não consegue protegê-las adequadamente. Seja rodando um servidor web no Ubuntu, administrando um VPS ou diagnosticando um problema de conectividade, listar as portas abertas dá uma visão clara do que seu sistema está expondo para a rede. Este guia apresenta quatro métodos práticos, explica como filtrar os resultados e mostra como fechar as portas que você não precisa.
Pontos principais:
- O comando
ssé a forma mais moderna e rápida de listar portas abertas no Linux. - O
nmappermite escanear portas de uma perspectiva externa, revelando o que um atacante realmente enxerga. - Use o
lsofpara identificar imediatamente qual processo está usando uma porta específica. - Fechar portas desnecessárias com
ufwouiptablesé a forma mais direta de reduzir sua superfície de ataque.
Índice
- Por que verificar portas abertas no Linux é importante
- Método 1: Comando ss (Moderno, Recomendado)
- Método 2: Comando netstat (Legado, mas ainda comum)
- Método 3: Scan de portas com nmap (Perspectiva externa)
- Método 4: Comando lsof (Mapeamento de processo por porta)
- Como filtrar resultados por porta, TCP ou UDP
- Como fechar ou bloquear uma porta com ufw ou iptables
- Conclusão
- FAQ - Perguntas frequentes
Por que verificar portas abertas no Linux é importante
Todo serviço rodando na sua máquina Linux escuta em uma ou mais portas. O SSH escuta na porta 22, HTTP na porta 80, HTTPS na porta 443. Mas após meses instalando e removendo softwares, servidores costumam acabar com portas abertas que ninguém configurou intencionalmente. Um daemon de banco de dados esquecido escutando na porta 5432 sem uma regra de firewall é um risco real que já causou vazamentos de dados no mundo todo.
Verificar portas abertas no Linux ajuda você a:
- Auditar quais serviços estão realmente rodando e expostos.
- Identificar por que uma aplicação não consegue se conectar a outro serviço.
- Confirmar que as regras de firewall estão funcionando conforme o esperado.
- Preparar o ambiente para uma auditoria de segurança ou teste de penetração.
Os métodos abaixo cobrem tanto a inspeção local (o que a própria máquina reporta) quanto o escaneamento externo (o que um host remoto consegue ver). As duas perspectivas são importantes.
Método 1: Comando ss (Moderno, Recomendado)
O comando ss (estatísticas de sockets) substituiu o netstat na maioria das distribuições Linux modernas. É mais rápido, mais detalhado e já vem incluído no pacote iproute2, que é instalado por padrão no Ubuntu, Debian, CentOS e Fedora.
Para listar todas as portas abertas com os nomes dos processos, execute:
sudo ss -tulnpExplicação das flags:
-t- exibe sockets TCP-u- exibe sockets UDP-l- exibe apenas sockets em estado de escuta-n- exibe portas numéricas em vez de nomes de serviço-p- exibe o processo que usa cada socket
Exemplo prático: Em um servidor Ubuntu recém-configurado rodando Nginx e PostgreSQL, a saída pode ser parecida com esta:
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
tcp LISTEN 0 128 0.0.0.0:80 0.0.0.0:* users:(("nginx",pid=1234,fd=6))
tcp LISTEN 0 128 127.0.0.1:5432 0.0.0.0:* users:(("postgres",pid=5678,fd=5))
tcp LISTEN 0 128 0.0.0.0:22 0.0.0.0:* users:(("sshd",pid=910,fd=3))Repare que o PostgreSQL está vinculado apenas ao 127.0.0.1, o que significa que não é acessível de fora. Já o SSH e o Nginx estão vinculados ao 0.0.0.0, ou seja, aceitam conexões de qualquer IP. Essa única saída já diz muito sobre o nível de exposição do servidor.
Para uma referência completa de todas as opções do ss, consulte a página de manual oficial do ss.
Método 2: Comando netstat (Legado, mas ainda comum)
O comando netstat faz parte do pacote mais antigo net-tools. Ele não é mais instalado por padrão em muitas distribuições, mas ainda é bastante utilizado e vale a pena conhecer - especialmente ao trabalhar em sistemas mais antigos.
Instale se necessário:
sudo apt install net-tools # Debian/Ubuntu
sudo yum install net-tools # CentOS/RHELPara listar portas abertas no Linux com o netstat:
sudo netstat -tulnpAs flags têm o mesmo significado que no ss. O formato de saída é ligeiramente diferente, mas traz as mesmas informações essenciais: protocolo, endereço local, porta e o processo responsável.
Uma limitação prática: em servidores muito ocupados com milhares de conexões, o netstat pode ser visivelmente mais lento que o ss. Para tarefas do dia a dia em um servidor típico, a diferença é insignificante.
Método 3: Scan de portas com nmap (Perspectiva externa)
As ferramentas anteriores mostram o que sua máquina reporta internamente. O nmap adota uma abordagem diferente - ele escaneia portas pela rede, simulando o que um atacante externo ou cliente remoto enxergaria. Isso é fundamental porque um firewall pode estar bloqueando uma porta que o ss ainda mostra como aberta.
Instale o nmap:
sudo apt install nmap # Debian/Ubuntu
sudo yum install nmap # CentOS/RHELEscaneie um servidor a partir de outra máquina na mesma rede:
nmap -sT -p 1-1024 192.168.1.10Para escanear as 1000 portas mais comuns com detecção de versão de serviço:
nmap -sV 192.168.1.10A flag -sV tenta detectar a versão do software rodando em cada porta aberta. Isso é útil para identificar serviços desatualizados que precisam de atualização.
Importante: Execute o nmap apenas em servidores que você possui ou para os quais tem permissão explícita de escaneamento. Escanear sistemas de terceiros sem autorização pode ser ilegal na sua jurisdição.
Se você precisa verificar se uma porta específica está acessível de fora da sua rede sem instalar o nmap, nossa ferramenta gratuita de verificação de portas resolve isso na hora - sem instalação nem configuração.
Método 4: Comando lsof (Mapeamento de processo por porta)
O comando lsof (listar arquivos abertos) trata sockets de rede como arquivos, o que é coerente com a filosofia do Linux de que "tudo é um arquivo". Ele é especialmente útil quando você precisa responder à pergunta: "Qual processo está usando a porta 8080?"
Liste todas as conexões de rede:
sudo lsof -iEncontre o processo usando uma porta específica (por exemplo, a porta 3000):
sudo lsof -i :3000Isso é muito útil quando uma aplicação Node.js de um desenvolvedor está bloqueando uma porta e você precisa identificar e encerrar o processo antes de reiniciar um serviço.
Como filtrar resultados por porta, TCP ou UDP
A saída bruta de qualquer uma dessas ferramentas pode ser extensa. Veja os padrões de filtragem mais úteis:
Exibir apenas portas TCP em escuta (ss):
sudo ss -tlnpExibir apenas portas UDP (ss):
sudo ss -ulnpVerificar se uma porta específica está aberta (grep com ss):
sudo ss -tulnp | grep :443Filtrar por porta com nmap:
nmap -p 80,443,8080 192.168.1.10Esses padrões cobrem a grande maioria das necessidades de filtragem do dia a dia. Para solução de problemas específicos de HTTP na porta 80, consulte nosso Guia de solução de problemas HTTP na Porta 80.
Se você está no Windows e precisa de um guia equivalente, confira nosso Guia completo para verificar portas abertas no Windows 2026.
Como fechar ou bloquear uma porta com ufw ou iptables
Encontrar uma porta aberta que você não precisa é apenas metade do trabalho. Veja como fechá-la usando as duas ferramentas de firewall mais comuns no Linux.
Usando ufw (Uncomplicated Firewall) - Recomendado para Ubuntu
Bloquear tráfego de entrada na porta 8080:
sudo ufw deny 8080/tcpPermitir apenas SSH e HTTPS, bloqueando todo o restante:
sudo ufw default deny incoming
sudo ufw allow 22/tcp
sudo ufw allow 443/tcp
sudo ufw enableVerificar o status atual do firewall:
sudo ufw status verboseUsando iptables - Para controle avançado
Descartar todo o tráfego de entrada na porta 3306 (MySQL):
sudo iptables -A INPUT -p tcp --dport 3306 -j DROPSalvar as regras para que persistam após a reinicialização:
sudo iptables-save | sudo tee /etc/iptables/rules.v4Para uma referência mais aprofundada sobre sintaxe e ordenação de regras do iptables, a documentação oficial do Netfilter é a fonte mais completa.
Dica: Bloquear uma porta com ufw ou iptables não interrompe o serviço que está rodando nela - apenas impede que conexões externas o alcancem. Se quiser parar o serviço completamente, use sudo systemctl stop servicename. Para desativá-lo permanentemente, execute também sudo systemctl disable servicename para evitar que ele inicie na próxima reinicialização.
Conclusão
Verificar portas abertas no Linux não exige ferramentas complexas nem conhecimento avançado. O comando ss oferece uma visão local rápida e confiável. O nmap mostra o que o mundo externo consegue acessar. O lsof identifica com precisão qual processo está usando uma porta. E o ufw ou iptables permite fechar tudo o que não deveria estar exposto. Executar essas verificações regularmente - especialmente após instalar novos softwares ou alterar configurações de rede - é um dos hábitos mais simples que você pode adotar para manter seus servidores Linux seguros. Comece agora com sudo ss -tulnp e veja o que seu servidor está realmente expondo.
Verifique qualquer porta no seu servidor Linux - na hora
Não tem certeza se uma porta está realmente acessível de fora? Nossa ferramenta gratuita de verificação de portas escaneia seu servidor de uma perspectiva externa em segundos - sem instalação nem configuração necessária.
Experimente nossa ferramenta gratuita de verificação de portas →
FAQ - Perguntas frequentes
Execute sudo ss -tulnp no terminal. Esse comando usa o moderno ss para exibir todas as portas TCP e UDP em escuta junto com o nome do processo. É mais rápido que o netstat e está disponível por padrão na maioria das distribuições Linux atuais, incluindo Ubuntu e Debian.
Os dois comandos exibem portas abertas e informações de socket, mas o ss é o substituto moderno do netstat. Ele lê os dados diretamente do kernel, sendo mais rápido e preciso em sistemas com alto volume de conexões. O netstat exige o pacote separado net-tools, que não é mais instalado por padrão em muitas distribuições.
Use nmap -p PORT TARGET_IP a partir de outra máquina na rede. Para uma verificação externa rápida sem instalar nada, utilize uma ferramenta de verificação de portas online. Essa abordagem testa se a porta é acessível de fora, levando em conta as regras de firewall que ferramentas locais como o ss não conseguem refletir.
Use sudo lsof -i :PORTA ou sudo ss -tulnp | grep :PORTA. Os dois comandos exibem o nome do processo e o PID associado àquela porta. O método com lsof é especialmente claro porque lista o comando, o PID e o usuário em um formato de fácil leitura.
Não. Bloquear uma porta com ufw ou iptables impede que conexões externas alcancem o serviço, mas o serviço em si continua rodando. Para encerrá-lo completamente, use sudo systemctl stop servicename. Para uma remoção permanente, execute também sudo systemctl disable servicename para evitar que ele inicie na reinicialização.