Linuxでネットワーク帯域を制限する詳細ガイド

この記事では、Linuxでネットワーク帯域を制限する方法について詳しく解説します。具体的なコード例とその詳細解説、応用例を多数含めています。

目次

はじめに

ネットワーク帯域の制限は、サーバーの負荷調整やネットワークトラフィックの制御に有用です。Linuxでは`tc`(Traffic Control)というコマンドラインツールを使用することで、独自の帯域制限ルールを設定することが可能です。

基本的な帯域制限の設定

`tc`コマンドの基礎

`tc`コマンドはLinuxに標準でインストールされているツールで、多機能なネットワーク帯域制御を行えます。

sudo tc qdisc add dev eth0 root tbf rate 512kbit latency 50ms burst 1540

上記のコードは、`eth0`というネットワークインターフェースで、512kbit/sの帯域制限を設定しています。`latency`と`burst`はそれぞれ遅延と突発トラフィックの設定です。

コードの詳細解説

– `sudo`: 管理者権限でコマンドを実行
– `tc qdisc add`: Traffic Controlのサブコマンドでキューイングディシプリン(qdisc)を追加
– `dev eth0`: 対象となるネットワークインターフェースを指定
– `root`: ルートqdiscを設定
– `tbf`: Token Bucket Filterという帯域制御アルゴリズムを使用
– `rate 512kbit`: 制限速度を512kbit/sに設定
– `latency 50ms`: バッファの遅延を50msに設定
– `burst 1540`: 突発トラフィックを1540バイトまで許可

応用例

1. 一時的な帯域制限の解除

sudo tc qdisc del dev eth0 root

帯域制限を一時的に解除するためのコードです。

2. 特定のIPアドレスに対する帯域制限

sudo tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip dst 192.168.1.2/32 flowid 1:1

特定のIPアドレス(192.168.1.2)に対して帯域制限を設定します。

3. ポート番号での制限

sudo tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip dport 80 0xffff flowid 1:1

ポート80(HTTP通信)に対する帯域制限を設定します。

4. 帯域制限の一覧表示

sudo tc qdisc show dev eth0

現在の帯域制限の設定を一覧表示します。

5. 制限の変更

sudo tc qdisc change dev eth0 root tbf rate 1mbit latency 20ms burst 1540

すでに設定された帯域制限を変更するためのコードです。

まとめ

Linuxでのネットワーク帯域制限は、`tc`コマンドを使って柔軟かつ効率的に行うことができます。上記の基本的な設定と応用例を参考に、独自のネットワーク帯域制限を設定してみてください。

created by Rinker
オライリージャパン
¥3,080 (2024/11/22 17:53:11時点 Amazon調べ-詳細)

コメント

コメントする

目次