Como mapear uma porta efêmera para um pid?

2

Eu tenho um servidor RHEL com vários aplicativos e estou tentando descobrir qual deles está fazendo chamadas para um serviço da web externo. Eu tenho dumps TCP que mostram as chamadas sendo feitas e através de várias ferramentas eu sou capaz de determinar qual porta efêmera está fazendo essas chamadas. No entanto, não consigo descobrir como mapear essa porta efêmera para um pid. Estou ciente de que posso usar lsof -i para mapear portas limitadas para pids, mas isso não é problema meu.

Existe alguma maneira de mapear uma porta efêmera em uso para um pid ou algum outro indicador sobre qual arquivo está fazendo a chamada?

    
por jdw 02.10.2013 / 05:00

2 respostas

5
lsof -i $PROTCOL:$PORT
fuser $PORT/$PROTOCOL
netstat -np | grep $PORT

Qualquer um deles deve funcionar. Abaixo está um exemplo de saída mostrando meu cliente de e-mail usando a porta efêmera 56375 para falar com um servidor IMAP para mais explicações:

$ sudo netstat -np | grep 56375
tcp        0      0 192.168.1.1:56375      217.70.184.11:993       ESTABLISHED 3256/thunderbird

$ fuser 56375/tcp
56375/tcp:            3256

$ lsof -i tcp:56375
COMMAND    PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
thunderbi 3256   me     87u  IPv4 510573      0t0  TCP hostname:56375->example.com:imaps (ESTABLISHED)
    
por 02.10.2013 / 06:24
2

netstat listará todos os pid e port respectivos entre si. netstat -nlp fornecerá porta para o mapeamento de pid.

    
por 02.10.2013 / 05:21