Obs: Esse artigo é sobre ferramentas de rede Linux. Caso precise de uma ferramenta para windows, veja esse artigo sobre o TCPView .
Existem diversas formas simples de descobrir qual processo está escutando em determinada porta no Linux. Este artigo trata de duas dessas ferramentas: o fuser e o lsof
fuser:
O fuser serve para indicar o usuário e o processo que estão acessando determinado arquivo/diretório. Para descobrir qual processo está associado a uma porta TCP/UDP (e o nome do usuário dono do processo) basta executar:
O lsof possui ainda algumas vantagens em relação ao fuser:
O protocolo pode ser omitido
Nesse caso, os parâmetros ficariam assim
Riqueza de detalhes: o lsof exibe mais informações que o fuser, como a versão do protocolo IP utilizada (IPv4 ou IPv6), em quais endereços IP/hostnames a porta está sendo utilizada e o estado atual da conexão(LISTEN, ESTABLISHED, SYN_SENT, etc). Caso o processo escute em todos os endereços disponíveis, é exibido um * (como em *:ssh). Se o processo utilizar apenas um endereço IP, seria exibido esse endereço seguido da porta (por exemplo 192.168.1.100:ssh).
Existem diversas formas simples de descobrir qual processo está escutando em determinada porta no Linux. Este artigo trata de duas dessas ferramentas: o fuser e o lsof
fuser:
O fuser serve para indicar o usuário e o processo que estão acessando determinado arquivo/diretório. Para descobrir qual processo está associado a uma porta TCP/UDP (e o nome do usuário dono do processo) basta executar:
fuser -n protocolo portaPor exemplo: em uma máquina Linux típica, ao se executar o comando
debian:~# fuser -vn tcp 22obteremos como resposta
USER PID ACCESS COMMAND
22/tcp: root 2694 F.... sshd
que mostra que o processo sshd, de propriedade do usuário root e com o PID 2694, está conectado à porta 22.
lsof:
lsof:
o lsof tem uma funcionalidade semalhante à do fuser: ele serve para indicar quais arquivos/diretórios estão abertos (sendo acessados) e por quem. Para exibir processos associados a portas TCP/UDP execute:
lsof -i [PROTOCOLO]:porta
Utilizando um exemplo semelhante ao anterior, executando o comando
debian:~# lsof -i TCP:22
O resultado seria similar a esse:
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAMEAs mesmas informações (nome do processo, PID e usuário dono) são exibidas aqui, entre outras.
sshd 2694 root 3u IPv6 6348 TCP *:ssh (LISTEN)
O lsof possui ainda algumas vantagens em relação ao fuser:
O protocolo pode ser omitido
Nesse caso, os parâmetros ficariam assim
debian:~# lsof -i :22Seriam exibidas as conexões para ambos os protocolos (TCP e UDP), caso houvessem.
Riqueza de detalhes: o lsof exibe mais informações que o fuser, como a versão do protocolo IP utilizada (IPv4 ou IPv6), em quais endereços IP/hostnames a porta está sendo utilizada e o estado atual da conexão(LISTEN, ESTABLISHED, SYN_SENT, etc). Caso o processo escute em todos os endereços disponíveis, é exibido um * (como em *:ssh). Se o processo utilizar apenas um endereço IP, seria exibido esse endereço seguido da porta (por exemplo 192.168.1.100:ssh).
2 comentários:
Hey, I am checking this blog using the phone and this appears to be kind of odd. Thought you'd wish to know. This is a great write-up nevertheless, did not mess that up.
- David
Which phone you use?
Postar um comentário