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


77

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

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

wondershaperUbuntu 17.10 の問題についてバグを提出しました。これは、Ubuntu 17.04の@Zeromatikerに起こっていることと似ている可能性があります:bugs.launchpad.net/ubuntu/+source/wondershaper/+bug/1745421
aguadopd

回答:


42

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

インターフェイスごとの制限を設定する簡単な方法を次に示します

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


wondershaperは(でも、なぜ私にはわからない機能していませんwondershaper eth0 1000 1000 。私はどのようでそれを行うことができますeth0の帯域幅のすべての特定のアプリケーションだけでなく、制限する必要があるなしインターネット帯域幅を持っていない?
アラシュ

67

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

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

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


14
どうもありがとうございました!このソリューションは、アプリケーションごとに帯域幅を制御するのに最適です。質問が何年も前であっても、回答を投稿することをeverしないでください。将来の参考のために、次のようなエラーメッセージが表示される場合がありますtrickle: Could not reach trickled, working independently: No such file or directory。を使用してスタンドアロンモードでトリクルを実行すると、この警告を削除できますtrickle -s
グルタニメート

トリクルによって制限された制限を削除するにはどうすればよいですか?
匿名マウス

2
Trickleは、制限が適用された状態でアプリケーションを実行します。したがって、必要なことは、トリクルコマンドを使用せずにアプリケーションを再起動するだけです。
–SMeznaric

1
この答えを本当にありがとう、それは私が探していた正確なものだった
アリ

1
遅いネットワーク接続をシミュレートしようとするときに、まさに私が必要としていたもの。
イーサンカミンスキー

5

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

4
それはかなり複雑でした。いくつかの#commentsは大いに役立ちます。たとえば、qdiscs、classid、htbなどのリンクまたは説明を追加できます。
oligofren15年

だから、デフォルトでは、上記は他のキューにフィルタリングされない限り、すべてを5000 kbpsに制限しますか?すべてを制限したくない場合はどうでしょうか?
ケンシャープ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.