CentOSサーバーのアップロードとダウンロードの帯域幅を制限するにはどうすればよいですか?これは、単一のインターフェース、eth0
。理想的には、コマンドラインソリューション(tc
を使用しようとしている)が欲しいのですが、スクリプトで簡単にオンとオフを切り替えることができます。
これまでのところ、tc filter add dev eth0 protocol ip prio 50 u32 police rate 100kbit burst 10240 drop
しかし、私は明らかに多くの知識と情報が不足しています。誰かが簡単なワンライナーを手伝ってくれる?
どうもありがとう、ダン
ここにスクリプトコードを追加できません。この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