web-dev-qa-db-ja.com

Linuxルーターを通過する個々の接続の速度を落としますか?

私たちのオフィスのルーター/ファイアウォールとして機能するLinuxサーバーがあります。時折、誰かが私たちのすべての帯域幅を占める大きなファイルをアップロードすることがあります。複雑なルールやトラフィックシェーピングを実装したくないのですが、その場で単一の接続を遅くする方法があるかどうか疑問に思っていますか? tcpnice が見つかりましたが、テストで転送速度が低下することはありません。

8
davr

トラフィックシェーピングがシェルアップロードとアクティブアップロードの両方でトラフィックを適切にシェーピングしない場合(可能だと思いますが、確かではありません)、次のことができます。

a)2つのポートでsshを実行します。1つはファイル転送用、もう1つはインタラクティブな作業用に優先順位を付けることができます。

b)合計sshレートを制限する-唯一の問題は、リンクのアップロード容量をいっぱいにした場合です。レートを50kbpsなどに制限すると、sshはインタラクティブにうまく機能します(これにより、ユーザーはより大きなファイル転送に他のプロトコルを使用する必要があります)

c)可能であれば、送信元アドレスのトラフィックに優先順位を付ける

また、トラフィックシェーピングは、単一の接続がリンク全体を独占しないように、トラフィックをよりバランスの取れたものにする必要があります。

編集:これは、bashスクリプトを使用する です。 sshは確かにTOSをインタラクティブからインタラクティブに設定していると述べているので、Wondershaperはそれを利用していると思います。

Wondershaper 以外のオプションが必要な場合は、 shorewall または pyshape を確認してください。

ショアウォールは非常に成熟しており、柔軟性、パワー、シンプルさのバランスが取れています。

6
Unreason

Wondershaper 驚異的なことができ、セットアップは非常に簡単です。それ以外に、それを行うためのいくつかのユーザーランドプログラムを見つけることができます。 Linuxには Trickle があり、Windowsに相当するものがあるかもしれません。

しかし、実際には、トラフィックシェーピングが必要です。人々は、プログラムの実行などを忘れてしまいます。アップロードを全容量よりわずかに少なく制限するだけで、おそらく多くのメリットが得られます。

4
alex

Iptables(8)のマンページでconnrateを見てください。接続レートを一致させ、アップロードが速すぎる接続を適切なtcクラスに配置するか、ドロップまたはターピット、または適切なものを使用することで、接続を遅くすることができます。

リバースSquidプロキシを設定して delay-pools を設定することを考えましたか? iptablesのlimitディレクティブを使用してこれを行うこともできます。

私があなたのリクエストで抱えている問題の1つは、すでに確立されている接続の転送速度を制限し始めたいと思われることです。これは、私が考えることができるすべてのものが新しい接続、および既存の接続を継続します。

おそらく何らかのトラフィックシェーパーが必要になるという点で、アレックスに同意する必要があります。インタラクティブシェルの値は適度なファイル転送よりも大幅に小さいため、1秒あたりのパケット数を確認する必要があります。

1
d34dh0r53