MASTG-TECH-0028: Verificar Conexões Abertas
Você pode encontrar informações de rede em todo o sistema em /proc/net ou simplesmente inspecionando os diretórios /proc/<pid>/net (por algum motivo, não são específicos do processo). Existem vários arquivos presentes nesses diretórios, dos quais tcp, tcp6 e udp podem ser considerados relevantes do ponto de vista do testador.
# cat /proc/7254/net/tcp
sl local_address rem_address st tx_queue rx_queue tr tm->when retrnsmt uid timeout inode
...
69: 1101A8C0:BB2F 9A447D4A:01BB 01 00000000:00000000 00:00000000 00000000 10093 0 75412 1 0000000000000000 20 3 19 10 -1
70: 1101A8C0:917C E3CB3AD8:01BB 01 00000000:00000000 00:00000000 00000000 10093 0 75553 1 0000000000000000 20 3 23 10 -1
71: 1101A8C0:C1E3 9C187D4A:01BB 01 00000000:00000000 00:00000000 00000000 10093 0 75458 1 0000000000000000 20 3 19 10 -1
...
Na saída acima, os campos mais relevantes para nós são:
rem_address: par de endereço remoto e número de porta (em representação hexadecimal).tx_queueerx_queue: a fila de dados de saída e entrada em termos de uso de memória do kernel. Esses campos dão uma indicação de quão ativamente a conexão está sendo usada.uid: contém o UID efetivo do criador do socket.
Outra alternativa é usar o comando netstat, que também fornece informações sobre a atividade de rede para todo o sistema em um formato mais legível e pode ser facilmente filtrado de acordo com nossos requisitos. Por exemplo, podemos filtrá-lo facilmente por PID:
# netstat -p | grep 24685
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program Name
tcp 0 0 192.168.1.17:47368 172.217.194.103:https CLOSE_WAIT 24685/com.google.android.youtube
tcp 0 0 192.168.1.17:47233 172.217.194.94:https CLOSE_WAIT 24685/com.google.android.youtube
tcp 0 0 192.168.1.17:38480 sc-in-f100.1e100.:https ESTABLISHED 24685/com.google.android.youtube
tcp 0 0 192.168.1.17:44833 74.125.24.91:https ESTABLISHED 24685/com.google.android.youtube
tcp 0 0 192.168.1.17:38481 sc-in-f100.1e100.:https ESTABLISHED 24685/com.google.android.youtube
...
A saída do netstat é claramente mais amigável para o usuário do que ler /proc/<pid>/net. Os campos mais relevantes para nós, semelhantes à saída anterior, são os seguintes:
Foreign Address: par de endereço remoto e número de porta (o número da porta pode ser substituído pelo nome bem conhecido de um protocolo associado à porta).Recv-QeSend-Q: estatísticas relacionadas à fila de recebimento e envio. Dão uma indicação de quão ativamente a conexão está sendo usada.State: o estado de um socket, por exemplo, se o socket está em uso ativo (ESTABLISHED) ou fechado (CLOSED).