Quero rastrear a atividade de rede de um comando, tentei tcpdump e strace sem sucesso.
Por exemplo, se estou instalando um pacote ou usando qualquer comando que tente acessar algum site, desejo exibir essa atividade de rede (o site que ele tenta acessar).
Acho que podemos fazer isso usando o tcpdump. Eu tentei, mas ele está rastreando toda a atividade de rede do meu sistema. Digamos que, se eu executar vários comandos relacionados à rede e desejar rastrear apenas uma atividade específica da rede de comandos, seja difícil encontrar a solução exata.
Existe uma maneira de fazer isso?
ATUALIZAR:
Não quero rastrear tudo o que acontece na minha interface de rede. Eu só quero acompanhar a atividade de rede do comando (por exemplo, #yum install -y vim). Como o site que ele tenta acessar.
Respostas:
netstat para simplificar
Usando
netstat
e grepping no PID ou no nome do processo:E você pode usar
watch
para atualizações dinâmicas:Com:
-n
: Mostra endereços numéricos em vez de tentar determinar nomes simbólicos de host, porta ou usuário-p
: Mostra o PID e o nome do programa ao qual cada soquete pertence.--inet
: Mostre apenas soquetes de protocolo raw, udp e tcp.rastreamento para verbosidade
Você disse que tentou a
strace
ferramenta, mas tentou a opçãotrace=network
? Observe que a saída pode ser bastante detalhada, portanto, você pode precisar de alguns grepping. Você pode começar grepping em "sin_addr".Ou, para um processo já em execução, use o PID:
fonte
netstat
qual IMHO é a solução mais simples e mais limpa.strace
saída um pouco mais, mantendo apenas osconnect
syscalls e removendo asdns
solicitações (porta 53) com:| grep connect | grep -v 'sin_port=htons(53)'
Eu criaria um novo namespace de rede , faria a ponte com a rede real e depois monitoraria a ponte
tcpdump
.fonte
sysdig
permite monitorar toda a atividade do kernel ou vários comandos em execução no seu sistema, incluindo e não restrito à atividade de rede.Como a saída pode ser grande, é necessário criar filtros, a página padrão para os filtros mais básicos é bastante compreensível.
Ele também tem a vantagem de não ser usado como um invólucro de aplicativo
strace
e pode ser bastante poderoso.From Sysdig Examples
fonte
Você pode usar o wireshark para detectar todo o tráfego de entrada e saída de uma interface de rede. Caso você precise de uma opção sem interface gráfica, você pode usar o tshark.
Com as duas opções, você pode ver todo o tráfego da rede e salvá-lo para analisar posteriormente todas as conexões estabelecidas.
fonte