Contents

Como monitorar o uso da rede para processos no Linux

O acesso à internet é imprescindível; no entanto, pode-se perguntar quais aplicativos Linux consomem mais capacidade de rede em seus dispositivos. Felizmente, várias ferramentas convencionais do Linux facilitam a identificação de processos que esgotam sua largura de banda. Abaixo está uma lista de tais programas:

nethogs

/pt/images/nethogs-transmission.jpg

nethogs é um programa que faz para conexões de internet o que htop ou top faz para CPU e uso de memória. Ele mostra um instantâneo de quais processos estão acessando a rede.

De maneira semelhante a ferramentas como top, htop ou atop, o nethogs opera em tela cheia e é atualizado periodicamente para fornecer uma visão geral atualizada das conexões de rede atribuídas a processos individuais.

A obtenção de nethogs pode ser realizada com facilidade utilizando um gerenciador de pacotes, o que simplifica consideravelmente o processo.

Por exemplo, no Debian e no Ubuntu:

 sudo apt install nethogs 

E no Arch Linux:

 sudo pacman -S nethogs 

Na família Red Hat:

 sudo dnf install nethogs 

Para executar nethogs com sucesso, é imperativo que o usuário possua privilégios administrativos ao receber acesso root.

 sudo nethogs 

Pode-se configurar o nethogs para ser executado por um usuário comum através da execução do seguinte comando:

 sudo setcap "cap_net_admin,cap_net_raw\+pe" /path/to/nethogs 

Para utilizar o nethogs, é necessário fornecer o caminho completo do arquivo executável, substituindo “/path/to/nethogs” na linha de comando pelo caminho real obtido por meio de um método como o uso do comando’which’. Isso garante que o programa seja localizado e executado corretamente.

 which nethogs 

lsof

/pt/images/lsof-network.jpg

Embora o lsof sirva como um utilitário para catalogar arquivos abertos, ele também é hábil para identificar conexões de rede abertas. Ao utilizar a opção -i , pode-se obter um inventário abrangente de conexões de internet que estão sendo mantidas por processos ativos dentro do sistema operacional. Tendo em vista que em sistemas baseados em Linux, até mesmo objetos que não são arquivos são tratados como tal, esse recurso torna-se particularmente digno de nota.

Para visualizar a lista atual de conexões de internet ativas em seu computador, você pode utilizar o seguinte comando em um terminal ou janela de prompt de comando:

 lsof -i 

A utilização do comando “lsof” pode fornecer informações sobre processos que mantêm conexões ativas com a Internet, incluindo seu ID de processo (PID), descritor de arquivo, tipo de conexão com a Internet, tamanho, protocolo e nome de arquivo formal associado.

A disponibilidade das opções -i4 e -i6 permite que os usuários monitorem as conexões de rede utilizando o Protocolo de Internet versão 4 (IPv4) ou o Protocolo de Internet versão 6 (IPv6).

É muito provável que você já tenha instalado o Lsof, pois ele está pré-instalado em muitas distribuições Linux ou pode ser facilmente instalado naquelas em que não está presente.

No Debian e no Ubuntu, digite:

 sudo apt install lsof 

E no Arco:

 sudo pacman -S lsof 

Na família de distribuições Red Hat:

 sudo dnf install lsof 

netstat

/pt/images/netstat-processes.jpg

Netstat é um utilitário excepcionalmente robusto que concede aos usuários a capacidade de discernir conexões de rede ativas em seu sistema. No entanto, não fornece informações sobre os processos específicos aos quais essas conexões estão associadas. Semelhante ao lsof, pode-se obter tais detalhes utilizando uma opção de linha de comando.

O Netstat é um componente incluído no pacote net-tools, que pode ser facilmente instalado em uma variedade de distribuições Linux por meio da utilização do sistema de gerenciamento de pacotes padrão que acompanha cada distribuição respectiva.

Por exemplo, no Debian ou Ubuntu:

 sudo apt install net-tools

No ArchLinux:

 sudo pacman -S net-tools 

Para obter o utilitário netstat em uma distribuição Linux como Fedora, CentOS ou RHEL, execute o seguinte comando no terminal:

 sudo dnf install net-tools 

Em sua configuração padrão, a execução do comando netstat no prompt de comando fornece detalhes como protocolo de rede, endereço IP e status da conexão. No entanto, ao utilizar a opção -p , uma coluna adicional é exibida, incluindo o identificador do processo e o nome do arquivo executável correspondente associado a cada conexão ativa.

 netstat -p 

A execução do comando “netstat” sem nenhuma opção adicional gerará um relatório abrangente detalhando todas as conexões de rede ativas naquele momento antes de encerrar a execução. Ao utilizar o sinalizador “-c”, pode-se acessar uma conta contínua de associações de rede que é atualizada regularmente com novos dados.

 netstat -pc 

Essa abordagem se assemelha à utilização de um aplicativo de software projetado para telas, como net hogs, mas o benefício está em canalizar os resultados para outro programa como grep ou um paginador para um exame mais detalhado:

 netstat -p | grep 'systemd' 

Para obter uma visão abrangente das conexões de rede presentes em seu sistema, é necessário executar o comando “netstat” com privilégios administrativos, ou seja, executando o comando como usuário root.

 sudo netstat

Agora você pode ver quais aplicativos do Linux estão consumindo sua largura de banda

O Linux, semelhante a uma infinidade de sistemas operacionais contemporâneos, exibe uma profunda interdependência com a internet. Às vezes, pode ser difícil discernir quais processos estão consumindo a largura de banda de alguém. Felizmente, utilitários como nethogs, lsof e netstat fornecem assistência inestimável na identificação de processos que mantêm conexões de rede ativas.

Em certos casos, um comportamento aberrante pode ocorrer apesar dos links estabelecidos. No reino dos sistemas operacionais Linux, é uma tarefa simples acabar com qualquer processo rebelde que possa surgir.