Pergunta

Onde posso aprender sobre o controle/interrogar a interface de rede no Linux?Gostaria de obter aplicação específica upload/download velocidades, e impor um limite de velocidade para uma aplicação específica.

Eu particularmente gosto de informações que podem me ajudar a escrever um traffic shaping aplicativo usando Python.

Foi útil?

Solução

Você quer a suíte iproute2, na qual você usa o tc comando. Comandos TC parecem

tc class add dev eth2 parent 1: classid 1:1 htb rate 100Mbit ceil 100Mbit quantum 1600

Aqui está um aplicativo existente em forma de tráfego Python que usa iproute2.

Outras dicas

É realmente muito difícil de moldar por aplicação usando o kernel do linux ferramentas, a menos que o aplicativo usa endereços ip específicos e/ou portas que você pode correspondência.

Partindo do princípio que é o caso, então você precisa ler sobre iptables e, em particular, fwmarks.Você também vai precisar de ler sobre tc.Em combinação dessas duas ferramentas pode fazer o que quiser.O Linux Advanced Routing & Controle De Tráfego é um bom lugar para começar.

Assumindo que o seu aplicativo não usa um previsível conjunto de portas/endereço ip, em seguida, você precisará usar um espaço de utilizador shaper como Trickle.Este insere-se entre a aplicação e o kernel e formas o tráfego para aplicação em espaço de usuário.

Eu não acho que há qualquer relação direta python bindings for alguma destas ferramentas, mas seria simples para o script em python e só chamar os executáveis diretamente.

Há algum motivo para você desejar usar o Python? Como mencionado, provavelmente será transferido apenas para ferramentas já desenvolvidas para esse fim. No entanto, se você olhar em volta, poderá encontrar coisas como Click! modular router, XORP, e outros que fornecem uma queda para coisas que você deseja fazer - sem mencionar todas as sugestões já fornecidas (como iptables e tc)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top