回答:
単一のインターフェイスの制限は簡単ですが、グローバルレート制限には、アプリケーションベースのルールと同様に、より複雑なルールが必要です。私はそれができないと言っているわけではありませんが、ネットワークの内部をかなり掘り下げる必要があります。
インターフェイスごとの制限を設定する簡単な方法を次に示します
アプリケーションベースのルールを本当に設定したい場合は、シェーピングを設定するヘルパー機能を備えたshorewallなどのファイアウォールフレームワークを調べる必要があります。これらのツールを使用しても、適切な場所に配置するためにはかなりの事前の注意とテストが必要です。このようなアドホックな操作を行うのは、まだそれほど簡単ではありません。
wondershaper eth0 1000 1000
。私はどのようでそれを行うことができますeth0の帯域幅のすべての特定のアプリケーションだけでなく、制限する必要があるなしインターネット帯域幅を持っていない?
これは古い質問ですが、同じ質問に対する答えを探しているときにこれに出会いました。OSおよびインターフェイスの制限は、以前の回答で既に対処されているため、ここにアプリケーション固有の制限を設定する方法があります。トリクルと呼ばれるアプリケーションを使用します。そうするsudo apt-get install trickle
。実行することにより、特定のアプリのアップロード/ダウンロードを制限できます
trickle -u (upload limit in KB/s) -d (download limit in KB/s) application
これにより、指定された制限でアプリケーションが起動します。「スムージング」時間を指定することもできます。これにより、アプリケーションに帯域幅消費のバーストがあり、平均が仕様内である限りバーストを許可したい場合に、希望する期間にわたってトリクルサンプルを取得できます。
trickle: Could not reach trickled, working independently: No such file or directory
。を使用してスタンドアロンモードでトリクルを実行すると、この警告を削除できますtrickle -s
。
特定のIPアドレスの帯域幅を制限する場合、これを使用できます。
tc qdisc add dev eth1 root handle 1: htb default 12
tc class add dev eth1 parent 1: classid 1:10 htb rate 2500kbps
tc class add dev eth1 parent 1: classid 1:11 htb rate 2500kbps
tc class add dev eth1 parent 1: classid 1:12 htb rate 5000kbps
tc filter add dev eth1 protocol ip parent 1:0 prio 1 u32 match ip dst 192.168.2.105 flowid 1:10
tc filter add dev eth1 protocol ip parent 1:0 prio 1 u32 match ip dst 192.168.2.106 flowid 1:11
wondershaper
Ubuntu 17.10 の問題についてバグを提出しました。これは、Ubuntu 17.04の@Zeromatikerに起こっていることと似ている可能性があります:bugs.launchpad.net/ubuntu/+source/wondershaper/+bug/1745421