Descobrir portas abertas no linux

Compartilhe:

terminal linux com os comandos ss e nmap mapeando portas abertas no linux

Por experiência, digo que é comum ao administrar servidores linux verificar quais portas estão abertas no servidor e quais serviços estão usando-as, seja, para identificar problemas (como: address already in use) ou como uma medida para prevenir ataques devido a portas expostas.

Os comandos ss, lsof e nmap podem ajudar a descobrir portas abertas no linux e saber qual processo está utilizando a porta em um servidor.

Neste artigo, você aprenderá a instalar esses três comandos em diferentes distribuições linux, entender sua sintaxe e utilizar exemplos práticos para descobrir portas abertas no linux.

Descobrir portas abertas no linux com o comando ss

O comando ss (abreviação para Socket Statistics) é uma ferramenta moderna e extremamente rápida usada para mostrar sockets de rede no sistema, sendo o substituto oficial em distribuições linux atuais do antigo comando netstat.

Para realizar sua instalação no Ubuntu/Debian, o comando já costuma vir presente, mas caso não esteja, usando o usuário root instale o pacote iproute2:

Nas distribuições RedHat, AlmaLinux e Rocky Linux, você utiliza o comando:

A sintaxe do comando ss é:

Explicação:

ss – É o próprio comando, usado para exibir informações sobre sockets de rede no linux, como conexões TCP/UDP, portas em escuta e o estado das conexões.

opções – representa parâmetros opcionais que modificam o comportamento e o formato da saída do comando ss.

filtro – Uma expressão opcional usada para selecionar quais sockets serão exibidos. Em vez de mostrar todas as conexões, é possível restringir a consulta utilizando critérios.

Para facilitar o aprendizado, abaixo tem uma lista com as opções mais comuns do comando ss:

OpçãoDescriçãoExemplos de Uso
-tMostra apenas sockets TCP do sistema.ss -ta
-lLista sockets no estado “listening” (ouvindo).ss -lt
-nNão resolve nomes de serviços, mostrando apenas números das portas.ss -n
-uExibe apenas sockets UDP do sistema.ss -ua
-pExibe o processo (PID) que está usando o respectivo socket.ss -p

A seguir será ensinado alguns exemplos práticos de uso do comando ss para descobrir quais portas estão abertas no linux.

Exemplo 1: Para listar todas as portas TCP ativas no estado LISTEN, aguardando conexões em um servidor linux, execute o comando:

A opção “-l” mostra sockets em estado de escuta (LISTEN), “-t” exibe conexões do protocolo TCP e “-n” apresenta os números das portas sem tentar resolver nomes de serviços.

Exemplo 2: Você pode adicionar a opção “-p” do comando ss para identificar qual o processo está usando uma porta específica.

O comando é útil para auxiliar em casos que ao subir uma aplicação, você recebe um erro informando que a porta já está em uso, ao executar “ss -tlnp” é possível achar rapidamente o processo culpado e o seu PID.

Exemplo 3: Muitos serviços críticos, como os servidores de DNS ou de sincronização de tempo (NTP), comunicam-se via protocolo UDP. Para descobrir portas abertas no linux que utilizam o protocolo UDP execute o comando:

Exemplo 4: Você também pode utilizar o comando ss não para descobrir portas abertas no linux, mas para visualizar as conexões que usam o protocolo TCP que já estão estabelecidas. Utilize o filtro “state established”:

Para aprofundar seus conhecimentos e ver todas as opções disponíveis, recomendo a leitura do manual do comando ss.

Comando nmap para descobrir portas abertas no linux

O nmap é uma ferramenta de exploração e auditoria de rede utilizada para descobrir hosts, serviços e portas acessíveis. Diferentemente do comando ss, que analisam o próprio sistema, o nmap pode testar um host remotamente.

Para instalar o comando nmap no Ubuntu ou Debian, rode no terminal:

Mas, se o servidor tem instalado o RHEL, AlmaLinux ou Rocky Linux, o comando para instalar o nmap é:

A sintaxe do utilitário segue o formato:

Para realizar uma checagem rápida do próprio servidor e descobrir portas abertas no linux execute no terminal:

No exemplo, localhost (127.0.0.1) é o endereço local, e existem 4 portas abertas.

Você também pode fazer um scan para descobrir portas abertas no linux de um servidor remoto, basta incluir o endereço IP após o comando nmap.

Se você quer aprender mais sobre o comando nmap não deixe de conferir nosso artigo completo para aprofundar seu conhecimento.

Verificando portas abertas no linux com o comando lsof

O comando lsof (List Open Files) lista todos os arquivos abertos no sistema, podendo mapear portas abertas no linux.

Caso ele não venha por padrão, sua instalação no Ubuntu/Debian é feita executando:

Já nas distribuições linux como Red Hat, AlmaLinux e Rocky Linux, instale rodando:

A sintaxe do comando lsof segue o padrão:

A seguir você aprenderá alguns exemplos práticos de uso do comando lsof para descobrir portas abertas no linux.

Para listar as portas abertas no linux e conexões existentes utilize o comando lsof com a opção “-i” que vai mostrar arquivos relacionados à rede e as portas utilizadas.

Na última coluna tem “endereço ip:porta”, as portas com estados LISTEN indica portas abertas por aplicações que usam o protocolo TCP, e as outras são portas abertas usando protocolo UDP, com exceção das que tem o estado ESTABLISHED.

Precisa encontrar portas específicas que estão abertas ? Após a opção “-i” inclua o caractere “:dois pontos seguido do número da porta. Por exemplo, você pode verificar se a porta 25 está aberta por uma aplicação:

A opção “-P” do comando lsof inibi resolver número de portas para nomes de serviços.

Se precisar listar somente portas abertas do protocolo UDP, execute o comando no terminal:

A opção “-iUDP” seleciona somente sockets do protocolo UDP.

Caso precise exibir na tela somente portas TCP abertas e usadas em conexões existentes utilize a opção “-iTCP”.

Mas, se a necessidade é descobrir portas abertas no linux relacionadas ao protocolo TCP, filtrando por um estado específico, como LISTEN, execute o comando:

A opção “-sTCP:LISTEN” procura somente sockets TCP cujo estado é LISTEN.

Quer aprender ainda mais sobre o comando lsof ? Consulte seu manual do online.

Conclusão

Descobrir quais portas estão abertas no linux é fundamental para administração, troubleshooting e segurança do servidor. Use o comando ss para analisar sockets e o lsof para relacionar portas a processos.

Não basta encontrar uma porta aberta, identifique o serviço responsável, confirme se ele é necessário e avalie se o acesso está corretamente protegido pelo firewall.

Ficou alguma dúvida sobre algum exemplo apresentado ou tem sugestões ou quer simplesmente deixar um elogio ? Deixe o seu comentário logo abaixo!

Perguntas frequentes (FAQ)

Como descobrir qual processo está usando uma porta no linux ?

Execute o comando lsof, por exemplo para descobrir qual processo está usando a porta 9090 execute: lsof -i :9090

Qual a diferença entre ss, lsof e nmap ?

O comando ss analisa sockets e conexões locais, o lsof relaciona arquivos e sockets aos processos e o nmap realiza escaneamentos de rede contra um host ou conjunto de hosts.

Por que o comando ss mostra o estado UNCONN para portas UDP ?

Porque o protocolo UDP não estabelece uma conexão como o TCP. Por isso, ao listar sockets UDP, o comando ss normalmente mostra o estado UNCONN (unconnected), indicando um socket sem uma conexão estabelecida, algo comum em sockets UDP.

É recomendado utilizar as opções “-n” e “-P” do comando lsof ?

Para não ter lentidão é recomendado utilizar a opção “-P” para evitar resolver portas em nomes de serviços e “-n” para inibir resolver endereços IP em nomes de hosts.

Navegue por tópicos:

Foto de Edson Oliveira
Edson Oliveira

Especialista em Linux, trabalhando com TI tem experiência no gerenciamento, solução de problemas e suporte de servidores linux em ambientes corporativos.

Professor de cursos voltados a linux, tecnologias open source e certificações LPI. Possui as certificações LPIC-1, LPIC-2 e LPIC-3 (Mixed Environment).

Navegue por tópicos:

Você também pode gostar:

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Valorizamos sua privacidade

Utilizamos cookies para aprimorar sua experiência de navegação, exibir anúncios ou conteúdo personalizado e analisar nosso tráfego. Ao clicar no botão “Aceitar todos”, você concorda com nosso uso de cookies.

Para mais informações leia nossa Política de Privacidade.