web-dev-qa-db-ja.com

ネットワーク帯域幅を制限するには?

リモートサーバーでアプリケーションをホストしています。限られたネットワーク帯域幅でテストする必要があります(インターネットアクセスの悪いユーザー向け)。

インターネットの帯域幅を制限できますか?たとえば、毎秒128 KB。

この質問は、Linux上のシステム全体またはコンテナー全体のソリューションに焦点を当てています。プロセスまたはセッション固有のソリューションについては、 特定のシェルのインターネット帯域幅の使用を制限する を参照してください。

80
fiction

http://linux.die.net/man/8/tc にあるtc Manページと呼ばれるコマンドを使用して、インターフェースのネットワーク帯域幅を調整できます。

簡単なスクリプトについては、 wondershaper を試してください。

Tcの使用例:tc qdisc add dev eth0 root tbf rate 1024kbit latency 50ms burst 1540

73
Nikhil Mulley

前の回答で述べたように、wondershaperは簡単に仕事をします。上記のリンクからの情報を Jwalanta Shrestha に含めます

apt-get install wondershaper

wondershaper-特定のインターフェイスの帯域幅を制限する簡単なツール。

$ Sudo wondershaper {interface} {down} {up}

{down}と{up}は、kbps単位の帯域幅です。

たとえば、インターフェースeth1の帯域幅を256 kbpsのダウンリンクと128 kbpsのアップリンクに制限する場合、

$ Sudo wondershaper eth1 256 128

制限をクリアするには、

$ Sudo wondershaper clear eth1 
70
Eden

一部の基準に基づいてネットワークリソースを制限することは、 QoS の主題です。 Linuxシステムでユーザートラフィックを制御する方法はいくつかあります。

LinuxにはBert Hubertによる 高度なルーティング技術とトラフィック制御 に関する優れたハウツーがあります。

10
Emre Yazici

すでにどこかにApacheが設定されている場合は、 mod_bw 、これはプロキシ接続でも機能します(つまり、Apacheはすべてを適切なサーバーに転送するだけですが、応答を遅くします)。

7
Ulrich Schwarz

Iptablesハッシュ制限モジュールを使用することもできます。以下に簡単な例を示します。

iptables -A FORWARD -m hashlimit --hashlimit-above 512kb/sec --hashlimit-burst 1mb --hashlimit-mode srcip、dstip --hashlimit-name bwlimit -j DROP

このルールは、FORWARDチェーンを通過するトラフィックを、送信元と宛先のペアごとに1 Mbpsのバーストで512 kb /秒に制限します。

詳細については、iptablesマニュアルのhashlimitセクションを確認してください。

http://ipset.netfilter.org/iptables-extensions.man.html

6
ibrahim

Dummynet はあなたが望んでいる以上のことを行い、待ち時間、ランダムなパケット損失などを制御することもできます。

6
Ammar Alammar