特定のインターフェイスの発信帯域幅を制限する


32

インターフェイスの発信帯域幅を制限する最も簡単な方法を知りたいです。忙しい時間帯にサーバー間のファイル転送が失敗しないように、発信ポートの速度を制限します。

最も簡単な解決策は何ですか?使用できることはわかっiptablesていますが、簡単なインストール/構成を探しています。


HTBは素晴らしい働きをします。非常に柔軟なレート制限。sourceforge.net/projects/htbinit

回答:


37

ethtool

を使用して、NICポートの集約速度を変更できますethtool

$ sudo ethtool -s eth0 speed 10

これにより、たとえばポートが10MBに設定されます。

ワンダーシェイパー

このツールwondershaperを使用して同様に行うこともできます。注:速度はキロビット/秒である必要があります。

$ sudo wondershaper eth1 downspeed upspeed

例えば:

$ sudo wondershaper eth0 10000 280

トリクル

3番目のオプションはTrickleです。Trickleは、プログラムごとに、またはNICを完全に調整するデーモンとして使用できます。

ユーザーモード- トリクルのマニュアルページ

$ sudo trickle -d 20 -u 20 wget http://www.google.com/bigfile

これだけで、アップトラフィックとダウントラフィックの両方で20K / sを抑制しますwget。他のすべては制限されません。

デーモンモード- トリックされたマニュアルページ

デーモンモードでtrickledは、プログラムのグループを帯域幅の固定制限に制限できます。デーモンを起動するには、トリックルコマンドを実行します。

$ sudo trickled -d 20 -u 20

pyshaper

4番目のオプションはpyshaperです。GUIが含まれており、時間の経過とともに帯域幅を動的に監視および設定するという点で、選択肢の中でもユニークなオプションです。詳細については、pyshaperのマニュアルページをご覧ください。

                                            pyshaper gui

参照資料


カーネルがサポートしている場合、cgroupを介してトラブルアプリケーションの帯域幅の使用を制限することもおそらく価値があります。
ブラッチリー

wondershaperが動作しない理由はわかりません( `wondershaper eth0 1000 1000`にも` sudo trickled -d 20 -u 20`と同じインターネット帯域幅はありません。)1つのネットワークインターフェイスを制限する必要があります。特定のアプリケーションだけでなく帯域幅。どうすればそれができますか?
アラシュ

トリクルは私にはうまくいきませんでしたが、wondershaperはトリックをしました!
ペシュー

1

Wondershaperは2002年に最後に編集されましたが、今日でもFedora 21で動作します。ただし、引数として使用できるオプションは2つしかないため、コマンドラインでアップロード/ダウンロード速度を指定することはできません。少なくとも、2002年4月16日にリリースされたダウンロードバージョン1.1aではできません。ファイル、そしてそれはシェルスクリプトです。小さな貝殻を知っている人にとっては難しくありません。

使用法は次のとおりです。

wondershaper (これはファイルの値に従って帯域幅を設定します)

wondershaper status
wondershaper stop

リンクが稼働しているときに使用できます。これは便利です。


1

別のオプションは ' iproute2 'で、これは成熟した広く利用可能なトラフィックルーティング/シェーピングツールのようです。RPMとして見つけました(おそらく他の多くのパッケージも、見ていません)。この記事の執筆時点で、最新バージョンは2016年1月25日にビルドされた4.4.0でした。

構成構文を見ると、比較的単純に見えます(ifconfigまたはほど単純ではありませんroute)。


6
あなたの答えは、発信帯域幅を制限するためにiproute2を実際にどのように使用するかについては言及していません。詳しく説明してもらえますか?
マイケル
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.