Frage

Wo kann ich erfahren Sie mehr über die Steuerung/Abfrage der Netzwerk-Schnittstelle unter Linux?Ich würde gerne bestimmte Anwendung-upload - /download-Geschwindigkeiten, und erzwingen Sie eine Geschwindigkeitsbegrenzung für eine bestimmte Anwendung.

Ich würde besonders gerne Informationen, die mir helfen kann schreiben Sie eine traffic-shaping-Anwendung mit Python.

War es hilfreich?

Lösung

Sie möchten den iproute2 suite, in dem Sie die tc Befehl.tc-Befehle Aussehen

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

Hier s eine vorhandene Python-traffic-shaping-Anwendung das iproute2 verwendet.

Andere Tipps

Es ist eigentlich ziemlich schwer Gestaltung der pro-Anwendung über die linux-kernel-tools, es sei denn, die Anwendung bestimmter ip-Adressen und/oder ports können Sie Spiel auf.

Unter der Annahme, dass der Fall ist, dann müssen Sie Lesen, bis auf iptables und insbesondere fwmarks.Sie müssen auch zu Lesen, auf tc.In Kombination dieser beiden Werkzeuge können tun, was Sie wollen.Die Linux Advanced Routing & Traffic Control ist ein guter Ort, um zu starten.

Vorausgesetzt, Ihre Anwendung nicht eine vorhersehbare Reihe von ports/ip-Adressen, dann benötigen Sie eine userspace-shaper wie Trickle.Dies fügt sich zwischen der Anwendung und dem kernel und Formen Sie den Datenverkehr für die Anwendung im userspace.

Ich glaube nicht, dass es direkte python-Bindungen für alle diese tools, aber es wäre einfach zu Skripts für Sie mit python und nur den Aufruf der ausführbaren Dateien direkt.

Gibt es aus irgendeinem Grund Sie möchten, verwenden Sie python?Wie bereits erwähnt, wird es wahrscheinlich nur hand-off um die bereits entwickelte tools für diesen Zweck.Allerdings, wenn Sie sich umschauen, finden Sie Dinge wie Click! modular router, XORP, und die anderen, die geben sich ein drop-in für Dinge, die Sie tun - nicht zu vergessen all die Vorschläge, die bereits zur Verfügung gestellt (wie iptables und tc)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top