O comando lsof, presente no Linux e nos UNIX (o que inclui o MacOS), tem a função de listar arquivos abertos por processos em seu sistema.
Já mostrei como usar o lsof para detectar se algum arquivo aberto impede que você consiga desmontar o seu pendrive (ou qualquer outro dispositivo de armazenamento USB) — se tiver curiosidade, leia este texto.
Também explicamos rapidamente o funcionamento do lsof no post Comandos para obter informações sobre o Ubuntu.
O nome do comando é uma abreviação de list opened files — ou “lista arquivos abertos”, em uma tradução livre.
Por “arquivo aberto”, entenda-se um arquivo simples, um diretório, um arquivo especial de bloco, um arquivo especial de caractere, uma referência ao um texto ou a uma biblioteca, um fluxo de dados ou um arquivo de rede etc.
Neste texto vamos mostrar como o lsof pode ser usado para determinar que portas estão abertas e escutando (listening) por conexões.
Se você digitar lsof pura e simplesmente, vai acabar “soterrado” sob uma montanha de informações.
Se for executado sozinho, sem qualquer opção ou parâmetro, o lsof vai exibir todos os arquivos abertos por todos os processos do sistema — o que pode resultar em uma lista bem extensa.
Na maioria das vezes, portanto, é necessário acompanhar a ferramenta do comando grep, para filtrar e descartar dados que não interessaM na nossa listagem.
Veja um exemplo de uso:
sudo lsof -P | grep --color -i listen
[sudo] senha para justincase:
lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/1000/gvfs
Output information may be incomplete.
sshd 508 root 3u IPv4 19120 0t0 TCP *:22 (LISTEN)
sshd 508 root 4u IPv6 19122 0t0 TCP *:22 (LISTEN)
cupsd 27424 root 6u IPv6 371198 0t0 TCP localhost:631 (LISTEN)
cupsd 27424 root 7u IPv4 371199 0t0 TCP localhost:631 (LISTEN)
Acima, os números das portas em uso podem ser vistos à esquerda de “(LISTEN)”.
A opção ‘-P’ tem a função de inibir a conversão dos números das portas para nomes de arquivos de rede.
Neste caso, é útil por que força a exibição do número da porta, em vez do serviço que a está usando.
Experimente dar o comando sem a opção ‘-P’, para ver do que estou falando.
[blog_subscription_form]