Articles

magnific0 / wondershaper

Copyright

Copyright (c) 2002-2020 Bert Hubert [email protected], Jacco Geul [email protected], Simon Séhier [email protected], [email protected]

Veja o ChangeLog para obter informações sobre as contribuições individuais dos autores.

Sobre

Wonder Shaper é um script que permite ao usuário limitar a largura de banda de um ou mais adaptadores de rede. Ele o faz utilizando o comando tc do iproute, mas simplifica muito seu funcionamento. Wonder Shaper foi lançado pela primeira vez por Bert Hubert em 2002, mas à versão original faltava uma interface de linha de comando, a partir da versão 1.2 esta funcionalidade foi adicionada. A partir da versão 1.3, a fila HTB é utilizada em vez do CBQ, permitindo um melhor gerenciamento de largura de banda em links de alta velocidade (acima de dez megabits). Na versão 1.4 foi implementado um método melhorado de moldagem de entrada e a capacidade de limitar tanto para baixo como para cima (ambos ainda são possíveis também). O README original é um documento bastante longo e é guardado em README.old, para aqueles que gostariam de ter mais informação de fundo. Exceto quaisquer notas sobre a operação este documento é considerado atualizado.

Instalação

Obtenção do wondershaper

Recomenda-se clonar o repositório GitHub do wondershaper de forma que você possa fazer novas atualizações a qualquer momento (se disponível). Abra um novo terminal e clone o repositório usando

git clone https://github.com/magnific0/wondershaper.git

Isso irá clonar o wondershaper em sua pasta atual em uma nova pasta chamada wondershaper. Agora entre na pasta usando

cd wondershaper

Usando wondershaper

Você pode rodar o wondershaper (como qualquer usuário com permissões suficientes) sem instalação e parar de seguir as instruções neste ponto. Mostre as instruções de uso do wondershaper digitando

./wondershaper -h

O programa detalha todas as opções disponíveis sobre como usar o wondershaper. A seguir é para escolher uma interface que você quer moldar. Você pode ver todas as interfaces disponíveis digitando

ip addr show

Note que em sistemas mais antigos este comando pode não estar disponível. Neste caso você deve executar ifconfig em vez disso.

Identificar a interface de rede que você quer dar forma. Os nomes diferem por sistema.

No exemplo seguinte uma interface sem fios está limitada a um upload de 4Mbps e download de 8Mbps.

./wondershaper -a wlp4s0 -u 4096 -d 8192

Se receber mensagens a dizer-lhe que RTNETLINK answers: Operation not permitted a sua conta de utilizador não tem privilégios suficientes. Nesse caso tente:

sudo ./wondershaper -a wlp4s0 -u 4096 -d 8192

Instalação do sistema (opcional)

Um arquivo de makefile fornecido para facilitar a instalação. O local padrão para o wondershaper está em /usr/bin. Se você quiser instalar em seu sistema você pode executar:

sudo make install

Você pode verificar se o wondershaper foi instalado corretamente digitando:

which wondershaper

Isto deve retornar /usr/bin/wondershaper. Você pode seguir as mesmas instruções explicadas na seção “Usando o wondershaper”, mas ao invés de executar a versão local do programa você agora executa a versão do sistema removendo o ./ do início de cada comando. Por exemplo, para mostrar as instruções de ajuda novamente execute:

wondershaper -h

Uso persistente do wondershaper (opcional)

Em vez de usar as opções de linha de comando para definir as taxas e interface como mostrado anteriormente, é necessário definir estes parâmetros no arquivo de configuração wondershaper.conf. Você pode editar este arquivo usando seu editor de texto favorito (vim no exemplo abaixo) como tal:

sudo vim /etc/systemd/wondershaper.conf

Para ter certeza que o wondershaper seja reativado ao reiniciar, um arquivo de serviço do sistema é fornecido. Primeiro ative o wondershaper como um serviço do sistema usando:

sudo systemctl enable --now wondershaper.service

Desta forma o wondershaper é ativado com sua configuração ao reiniciar.

Uso

 wondershaper 

As seguintes opções de linha de comando são permitidas:

  • -h Mostrar ajuda

  • -a <adapter> Configurar o adaptador

  • -d <rate> Configurar a taxa máxima de download (em Kbps) e/ou

  • -u <rate> Configurar a taxa máxima de upload (em Kbps)

  • -p Utilizar as predefinições em /etc/systemd/wondershaper.conf

  • -c Limpar os limites do adaptador

  • -s Mostrar o estado actual do adaptador

Os diferentes modos são:

 wondershaper -a <adapter> -d <rate> -u <rate> wondershaper -c -a <adapter> wondershaper -s -a <adapter>

> Alguns exemplos: