web-dev-qa-db-ja.com

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

CentOSサーバーのアップロードとダウンロードの帯域幅を制限するにはどうすればよいですか?これは、単一のインターフェース、eth0。理想的には、コマンドラインソリューション(tcを使用しようとしている)が欲しいのですが、スクリプトで簡単にオンとオフを切り替えることができます。

これまでのところ、tc filter add dev eth0 protocol ip prio 50 u32 police rate 100kbit burst 10240 dropしかし、私は明らかに多くの知識と情報が不足しています。誰かが簡単なワンライナーを手伝ってくれる?

どうもありがとう、ダン

5
Dan Nestor

ここにスクリプトコードを追加できません。このGistから入手できます https://Gist.github.com/akrasic/7242498#file-limit-tc-sh

スクリプトはTCと階層トークンバケット(HTB)を使用してルールを定義し、最後にすべてを網羅するルールとして機能するフィルターを定義しています。

eth0˙およびinterface_speedと異なる場合は、interface変数を変更する必要があります。

サーバーにスクリプトを保存し、次の方法で起動します:ḃash limit-tc.sh start

停止するには:bash limit-tc.sh stop

ステータスを表示:bash limit.tc status

ステータス出力は次のようになります。

qdisc htb 1: root refcnt 2 r2q 10 default 30 direct_packets_stat 1  
 Sent 535666 bytes 6461 pkt (dropped 172, overlimits 7641 requeues 0)  
 rate 0bit 0pps backlog 0b 0p requeues 0  
qdisc sfq 10: parent 1:10 limit 127p quantum 1514b perturb 10sec  
 Sent 535624 bytes 6424 pkt (dropped 172, overlimits 0 requeues 0)   
 rate 0bit 0pps backlog 0b 0p requeues 0  
qdisc sfq 20: parent 1:20 limit 127p quantum 1514b perturb 10sec  
 Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)  
 rate 0bit 0pps backlog 0b 0p requeues 0  
5
Tabiko