web-dev-qa-db-ja.com

ダウンロード/アップロードの帯域幅を制限するにはどうすればよいですか?

ダウンロード/アップロードの帯域幅を制限する方法:

  • OS全体。
  • 1つのネットワークインターフェイス。
  • 単一のアプリケーション。
77
yevhene

単一のインターフェイスの制限は簡単ですが、グローバルレート制限には、アプリケーションベースのルールと同様に、より複雑なルールが必要です。私はそれができないと言っているわけではありませんが、ネットワークの内部をかなり掘り下げる必要があります。

簡単な 方法 インターフェイスごとの制限の設定について

アプリケーションベースのルールを本当に設定したい場合は、シェーピングを設定するヘルパー機能を備えた shorewall などのファイアウォールフレームワークを調べる必要があります。これらのツールを使用しても、適切な場所に配置するにはかなりの事前の注意とテストが必要です。このようなアドホックな操作を行うのは、まだそれほど簡単ではありません。

42
Ressu

これは古い質問ですが、同じ質問に対する答えを探しているときにこれに出会いました。 OSおよびインターフェイスの制限は、以前の回答で既に対処されているため、アプリケーション固有の制限を設定する方法を次に示します。トリクルと呼ばれるアプリケーションを使用します。 Sudo apt-get install trickleも同様です。実行することにより、特定のアプリのアップロード/ダウンロードを制限できます

trickle -u (upload limit in KB/s) -d (download limit in KB/s) application

これにより、指定された制限でアプリケーションが起動します。 「スムージング」時間を指定することもできます。これにより、アプリケーションに帯域幅消費のバーストがあり、平均が仕様内である限りバーストを許可したい場合に、希望する期間にわたってトリクルサンプルを取得できます。

66
SMeznaric

特定の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
5
billtian