Como verificar se uma porta de rede está aberta?
Verificar se uma porta de rede está aberta ou não é uma tarefa importante para administradores de sistemas e engenheiros de redes. Isso permite que eles garantam que a rede esteja funcionando corretamente e que os serviços estejam sendo executados como esperado.
Neste artigo, discutiremos três ferramentas de linha de comando que podem ser usadas para verificar se uma porta de rede está aberta ou não em um sistema operacional Linux ou Unix: netstat
, ss
e lsof
.
Cada uma dessas ferramentas possui opções e capacidades diferentes que permitem obter informações detalhadas sobre as conexões de rede ativas no sistema. Explicaremos como usar essas ferramentas e forneceremos exemplos de como verificar se uma porta específica está aberta ou não.
netstat
O comando netstat
exibe informações sobre as conexões de rede ativas no sistema, incluindo as portas que estão abertas. Para verificar se uma porta específica está aberta, basta usar a opção
-t
para exibir apenas as conexões TCP
-u
para exibir apenas as conexões UDP
-l
para exibir apenas as portas em escuta
-n
para exibir os endereços IP e números de porta em vez de seus nomes.
Para verificar todas as portas que estão usando na máquina podemos usar o comando:
root@lostrouter:~# netstat -tuln
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:7071 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:5600 0.0.0.0:* LISTEN
tcp6 0 0 :::22 :::* LISTEN
tcp6 0 0 ::1:631 :::* LISTEN
udp 0 0 127.0.0.53:53 0.0.0.0:*
udp 0 0 0.0.0.0:49683 0.0.0.0:*
udp 0 0 0.0.0.0:631 0.0.0.0:*
udp6 0 0 :::53407 :::*
udp6 0 0 :::5353 :::*
Para verificar se a porta 80 (usada para o protocolo HTTP) está aberta, basta usar o seguinte comando:
root@lostrouter:~# netstat -tuln | grep ':80'
tcp 0 0 192.168.15.186:80 0.0.0.0:* LISTEN
Como podemos verificar a porta 80 está aberta, o comando exibi a linha com informações sobre a conexão, incluindo o endereço IP e o número da porta local. Se a porta não estivesse aberta, o comando não exibiria nenhuma saída.
ss
O comando ss
é uma ferramenta mais avançada para exibir informações sobre as conexões de rede e sockets do sistema. Ele possui opções semelhantes ao netstat
, como:
-t
para exibir apenas conexões TCP
-u
para exibir apenas conexões UDP
-l
para exibir apenas portas em escuta
-n
exibe os endereços IP e números de porta em vez de seus nomes
Para verificar todas as portas que estão usando na máquina podemos usar o comando:
root@lostrouter:~# ss -tuln
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
udp UNCONN 0 0 127.0.0.53%lo:53 0.0.0.0:*
udp UNCONN 0 0 0.0.0.0:49683 0.0.0.0:*
udp UNCONN 0 0 0.0.0.0:631 0.0.0.0:*
tcp LISTEN 0 1 0.0.0.0:7071 0.0.0.0:*
tcp LISTEN 0 128 127.0.0.1:5600 0.0.0.0:*
tcp LISTEN 0 4096 127.0.0.53%lo:53 0.0.0.0:*
tcp LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
tcp LISTEN 0 5 127.0.0.1:631 0.0.0.0:*
tcp LISTEN 0 128 [::]:22 [::]:*
tcp LISTEN 0 5 [::1]:631 [::]:*
Para verificar se a porta 80 (usada para o protocolo HTTP) está aberta, basta usar o seguinte comando:
root@lostrouter:~# ss -tuln | grep ':80'
tcp LISTEN 0 50000 192.168.15.48:80 *:*
lsof
O comando lsof
(sigla para “list open files”) exibe informações sobre os arquivos abertos no sistema, incluindo sockets de rede. Para verificar se uma porta específica está aberta, basta usar a opção -i
seguida do número da porta e do protocolo (TCP ou UDP).
Para verificar os ficheiros utilizados com a porta 80, basta usa o seguinte comando:
root@lostrouter:~# lsof -i TCP:80
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
anydesk 1292 root 23u IPv4 587701 0t0 TCP lostrouter:43459->relay-c45hy14a.net.anydesk.com:http (ESTABLISHED)
firefox 3941 sampaio 260u IPv4 638922 0t0 TCP lostrouter:43476->zabbix.lostrouter.local:http (ESTABLISHED)
chrome-gn 5757 sampaio 225u IPv4 72411 0t0 TCP lostrouter:52458->b45-345-566-24.lce.vivocabo.pt:http (CLOSE_WAIT)
Conclusão
Os comandos netstat
, ss
e lsof
são ferramentas úteis para verificar se uma porta de rede está aberta ou não em um sistema operacional Linux ou Unix. Cada um desses comandos possui opções diferentes que permitem obter informações detalhadas sobre as conexões de rede ativas no sistema, incluindo o processo responsável pelo socket e o endereço IP e número da porta local.
Photo by Nathan Dumlao on Unsplash