「インターネットが遅い気がする…」「サーバーの通信量ってどれくらい?」と感じたことはありませんか?
ネットワークの問題を解決するには、実際にどれだけのデータが流れているのか把握することが重要です。
それを知るために必要なのがネットワークトラフィックの監視と測定です。
今回は、ネットワークトラフィックの基本概念から、Linuxで使える様々な監視ツール、実践的な分析方法まで、初心者の方にも分かりやすく解説していきます。
ネットワークトラフィックとは何か?
ネットワーク上を流れるデータの「量」と「流れ」
ネットワークトラフィック(Network Traffic)とは、ネットワーク上を流れるデータの総称です。
道路の交通量(トラフィック)に例えるとイメージしやすいですね。
具体的には:
- Webサイトの閲覧
- メールの送受信
- ファイルのダウンロード・アップロード
- 動画のストリーミング
- オンラインゲーム
- システム間の通信
これらすべてがネットワークトラフィックです。
上りと下り
トラフィックは、方向によって2種類に分類されます。
上り(アップロード / Outgoing / TX):
自分のコンピューターから外部へ送信するデータ。
- メールの送信
- ファイルのアップロード
- 動画配信
下り(ダウンロード / Incoming / RX):
外部から自分のコンピューターへ受信するデータ。
- Webページの閲覧
- ファイルのダウンロード
- 動画の視聴
一般的に、下りトラフィックの方が多くなる傾向があります。
測定単位
トラフィックは、時間あたりのデータ量で表現されます。
単位:
- bps(bits per second):ビット毎秒
- Bps(Bytes per second):バイト毎秒
- Kbps / Mbps / Gbps:キロ、メガ、ギガビット毎秒
換算:
1 Byte = 8 bits
1 Mbps = 125 KB/s
100 Mbps = 12.5 MB/s
注意:bps
(小文字のb)とBps
(大文字のB)は8倍の差があります。
なぜトラフィック監視が必要なのか?
パフォーマンス問題の特定
「ネットワークが遅い」という症状の原因は様々です。
トラフィック監視で分かること:
- 帯域幅を使い果たしているか
- どのアプリケーションが通信しているか
- 異常なトラフィックの増加
- ボトルネックの場所
データに基づいて原因を特定できます。
セキュリティ上の脅威検出
異常なトラフィックパターンは、攻撃の兆候かもしれません。
検出できる攻撃:
- DDoS攻撃(大量のトラフィック)
- ポートスキャン(多数のポートへのアクセス)
- データ漏洩(異常な上りトラフィック)
- ボットネット活動
早期発見が被害を最小限に抑えます。
容量計画とコスト管理
サーバーやネットワーク機器の増強時期を判断するために必要です。
把握すべき情報:
- 平均トラフィック量
- ピーク時のトラフィック
- 増加傾向
- 契約帯域幅との比較
クラウドサービスでは、トラフィック量が直接コストに影響します。
SLA(サービスレベル契約)の遵守
企業のサービスでは、一定の通信品質を保証する必要があります。
トラフィック監視により:
- 帯域幅の使用状況を把握
- ボトルネックを事前に検知
- サービス品質を維持
基本的なトラフィック確認コマンド
ifconfig – 伝統的なネットワーク設定表示
基本的な使い方:
ifconfig
出力例:
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.100 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::a00:27ff:fe4e:66a1 prefixlen 64 scopeid 0x20<link>
ether 08:00:27:4e:66:a1 txqueuelen 1000 (Ethernet)
RX packets 150234 bytes 220155234 (209.9 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 98756 bytes 12345678 (11.7 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
重要な項目:
- RX packets / bytes:受信したパケット数とバイト数
- TX packets / bytes:送信したパケット数とバイト数
- errors:エラーの数
- dropped:破棄されたパケット数
ip – モダンなネットワーク管理ツール
ifconfig
の後継として推奨されているコマンドです。
統計情報の表示:
ip -s link
出力例:
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
link/ether 08:00:27:4e:66:a1 brd ff:ff:ff:ff:ff:ff
RX: bytes packets errors dropped overrun mcast
220155234 150234 0 0 0 5432
TX: bytes packets errors dropped carrier collsns
12345678 98756 0 0 0 0
詳細統計:
ip -s -s link show eth0
netstat – ネットワーク統計の表示
基本的な統計:
netstat -i
出力例:
Kernel Interface table
Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0 1500 150234 0 0 0 98756 0 0 0 BMRU
lo 65536 12345 0 0 0 12345 0 0 0 LRU
継続的な統計表示:
netstat -c
1秒ごとに統計が更新されます。
リアルタイム監視ツール
iftop – インターフェース別トラフィック表示
インストール:
# Ubuntu/Debian
sudo apt install iftop
# CentOS/RHEL
sudo yum install iftop
基本的な使い方:
sudo iftop
画面の見方:
12.5Mb 25.0Mb 37.5Mb 50.0Mb
└─────────────────┴───────────────────┴───────────────────┴──────────────────
192.168.1.100 => 203.0.113.50 15.2Mb 12.8Mb 10.5Mb
<= 1.5Mb 1.3Mb 1.1Mb
192.168.1.100 => 198.51.100.25 2.3Mb 2.1Mb 1.9Mb
<= 5.6Mb 5.2Mb 4.8Mb
表示内容:
- 送信元 → 送信先
- 過去2秒、10秒、40秒の平均速度
便利なオプション:
# 特定のインターフェースを監視
sudo iftop -i eth0
# ポート番号を表示
sudo iftop -P
# DNSルックアップを無効化(高速化)
sudo iftop -n
キーボード操作:
n
:ホスト名とIPアドレスを切り替えs
:送信元を表示/非表示d
:送信先を表示/非表示t
:表示形式の変更q
:終了
nethogs – プロセス別トラフィック表示
アプリケーションごとの通信量を確認できます。
インストール:
# Ubuntu/Debian
sudo apt install nethogs
# CentOS/RHEL
sudo yum install nethogs
基本的な使い方:
sudo nethogs
出力例:
NetHogs version 0.8.6
PID USER PROGRAM DEV SENT RECEIVED
1234 www-data /usr/sbin/apache2 eth0 15.234 125.678 KB/sec
5678 user /usr/bin/firefox eth0 2.345 45.123 KB/sec
9012 root /usr/sbin/sshd eth0 0.123 1.234 KB/sec
? root unknown TCP 0.000 0.000 KB/sec
TOTAL 17.702 172.035 KB/sec
どのプログラムがどれだけ通信しているか一目瞭然です。
特定のインターフェースを監視:
sudo nethogs eth0
vnstat – 長期統計の記録
バックグラウンドで動作し、長期的なトラフィック統計を記録します。
インストール:
# Ubuntu/Debian
sudo apt install vnstat
# CentOS/RHEL
sudo yum install vnstat
初期設定:
# データベースの作成
sudo vnstat -u -i eth0
# サービスの開始
sudo systemctl start vnstat
sudo systemctl enable vnstat
統計の表示:
# 基本的な表示
vnstat
# 時間別
vnstat -h
# 日別
vnstat -d
# 月別
vnstat -m
# トップ10の日
vnstat -t
出力例:
Database updated: 2025-01-20 10:00:00
eth0 since 2024-12-01
rx: 125.50 GiB tx: 45.23 GiB total: 170.73 GiB
monthly
rx | tx | total | avg. rate
------------------------+-------------+-------------+---------------
2024-12 78.25 GiB | 28.45 GiB | 106.70 GiB | 327.50 kbit/s
2025-01 47.25 GiB | 16.78 GiB | 64.03 GiB | 312.25 kbit/s
------------------------+-------------+-------------+---------------
estimated 95.00 GiB | 33.50 GiB | 128.50 GiB |
リアルタイム表示:
vnstat -l
bmon – 帯域幅モニター
グラフィカルなインターフェースで帯域幅を表示します。
インストール:
sudo apt install bmon
起動:
bmon
視覚的に分かりやすいグラフで表示されます。
パケットキャプチャと分析
tcpdump – コマンドラインパケットアナライザー
ネットワーク上を流れるパケットをキャプチャします。
基本的なキャプチャ:
sudo tcpdump
特定のインターフェースを指定:
sudo tcpdump -i eth0
ホストを指定:
# 特定のIPアドレス
sudo tcpdump host 192.168.1.100
# 特定のネットワーク
sudo tcpdump net 192.168.1.0/24
ポートを指定:
# HTTPトラフィック
sudo tcpdump port 80
# SSH
sudo tcpdump port 22
# 複数ポート
sudo tcpdump port 80 or port 443
プロトコルを指定:
# TCP
sudo tcpdump tcp
# UDP
sudo tcpdump udp
# ICMP(ping)
sudo tcpdump icmp
ファイルへの保存:
sudo tcpdump -w capture.pcap
保存したファイルの読み込み:
tcpdump -r capture.pcap
出力例:
10:15:23.123456 IP 192.168.1.100.54321 > 203.0.113.50.80: Flags [S], seq 123456789, win 65535, length 0
10:15:23.145678 IP 203.0.113.50.80 > 192.168.1.100.54321: Flags [S.], seq 987654321, ack 123456790, win 29200, length 0
10:15:23.145789 IP 192.168.1.100.54321 > 203.0.113.50.80: Flags [.], ack 1, win 65535, length 0
Wireshark – グラフィカルパケットアナライザー
デスクトップ環境がある場合、Wiresharkが非常に便利です。
インストール:
sudo apt install wireshark
起動:
sudo wireshark
主な機能:
- パケットの詳細表示
- フィルタリング
- プロトコル分析
- グラフ表示
- 統計情報
よく使うフィルタ:
ip.addr == 192.168.1.100
tcp.port == 80
http
dns
tcpdumpでキャプチャしたファイル(.pcap)も開けます。
トラフィック統計と分析
ss – ソケット統計
netstat
の後継コマンドです。
すべての接続を表示:
ss -a
リスニングポートのみ:
ss -l
TCP接続:
ss -t
統計情報:
ss -s
出力例:
Total: 1234
TCP: 456 (estab 123, closed 234, orphaned 5, timewait 234)
Transport Total IP IPv6
RAW 0 0 0
UDP 45 38 7
TCP 222 195 27
INET 267 233 34
FRAG 0 0 0
nload – ネットワーク負荷の可視化
グラフィカルに帯域幅使用状況を表示します。
インストール:
sudo apt install nload
起動:
nload
上りと下りが視覚的に表示され、リアルタイムで更新されます。
sar – システムアクティビティレポート
インストール(sysstatパッケージ):
sudo apt install sysstat
ネットワーク統計の表示:
# リアルタイム(1秒ごと、10回)
sar -n DEV 1 10
# 過去のデータ
sar -n DEV -f /var/log/sysstat/sa20
出力例:
10:15:01 IFACE rxpck/s txpck/s rxkB/s txkB/s
10:15:02 eth0 1234.56 987.65 123.45 98.76
10:15:02 lo 5.67 5.67 0.45 0.45
帯域幅とスループットの違い
帯域幅(Bandwidth)
ネットワーク回線の理論上の最大容量です。
例:
- 100 Mbpsの回線
- 1 Gbpsの回線
「パイプの太さ」に例えられます。
スループット(Throughput)
実際に転送されるデータ量です。
影響する要因:
- プロトコルのオーバーヘッド
- ネットワーク機器の性能
- 遅延(レイテンシ)
- パケットロス
- 同時利用者数
通常、スループットは帯域幅より小さくなります。
例:
100 Mbpsの回線でも、実際のスループットは70〜90 Mbps程度になることが多いです。
レイテンシ(遅延)
データが送信元から送信先まで到達する時間です。
測定:
ping google.com
出力例:
64 bytes from 172.217.161.46: icmp_seq=1 ttl=118 time=12.3 ms
time=12.3 ms
がレイテンシです。
低レイテンシ(小さい値)ほど、応答が速いことを意味します。
トラブルシューティング
トラフィックが異常に多い
原因の特定:
1. プロセス別トラフィックを確認:
sudo nethogs
2. 接続先を確認:
sudo iftop
3. 特定のポートを調査:
sudo tcpdump -n port 80 | head -50
対処法:
- 不要なプロセスを停止
- ファイアウォールで制限
- 帯域制限(QoS)の設定
パケットロスが発生
確認方法:
# ローカル統計
ip -s link show eth0
# リモートへのping
ping -c 100 8.8.8.8
原因:
- ネットワーク機器の過負荷
- ケーブルの不良
- ドライバの問題
- ネットワーク輻輳
特定の通信が遅い
診断手順:
1. レイテンシの確認:
ping -c 10 対象ホスト
2. 経路の確認:
traceroute 対象ホスト
3. 帯域幅のテスト:
# iperf3をインストール
sudo apt install iperf3
# サーバー側
iperf3 -s
# クライアント側
iperf3 -c サーバーIP
エラーが多発
確認:
ip -s -s link show eth0
RX/TX errorsが増加している場合:
- ネットワークカードの故障
- ドライバの問題
- ケーブル不良
- MTUサイズの不一致
よくある質問
トラフィック監視に権限は必要?
多くのツールはsudo
権限が必要です。
理由:
- 生のネットワークデータへのアクセス
- すべてのプロセスの情報取得
- システム統計の読み取り
権限不要なツール:
vnstat
(一般ユーザーでも統計閲覧可能)/proc/net/dev
の読み取り
クラウド環境でも使える?
はい、使えます。
ただし、クラウドプロバイダー独自の監視ツールも活用しましょう:
- AWS CloudWatch
- Google Cloud Monitoring
- Azure Monitor
これらは外部からのトラフィックも測定できます。
トラフィック制限(QoS)はできる?
Linuxではtc
(traffic control)コマンドで可能です。
例:帯域制限
# eth0を10Mbpsに制限
sudo tc qdisc add dev eth0 root tbf rate 10mbit burst 32kbit latency 400ms
ただし、設定は複雑なので慎重に行ってください。
暗号化された通信は見られる?
HTTPSなど暗号化された通信の内容は見られません。
見えるもの:
- 送信元と送信先のIPアドレス
- ポート番号
- データ量
- タイミング
見えないもの:
- 通信内容(暗号化されているため)
- URLの詳細
- データの中身
トラフィック監視は違法?
自分のネットワーク内であれば合法です。
注意点:
- 他人のネットワークを盗聴するのは違法
- 業務環境では社内規定を確認
- プライバシーへの配慮
適切な権限と目的があれば問題ありません。
まとめ:状況に応じて最適なツールを使い分けよう
ネットワークトラフィックの監視は、問題解決とセキュリティ対策に不可欠です。
この記事のポイント:
- トラフィックはネットワーク上を流れるデータの総称
- 上り(送信)と下り(受信)に分類
- 測定単位はbps、Bps、Mbps、Gbpsなど
- ifconfig/ipコマンドで基本統計を確認
- iftopでリアルタイムの接続先別トラフィック
- nethogsでプロセス別の通信量
- vnstatで長期統計の記録
- tcpdump/Wiresharkでパケット解析
- 帯域幅は理論値、スループットは実測値
- レイテンシは通信の遅延時間
- 異常なトラフィックは攻撃の兆候の可能性
推奨ツール:
# クイック確認
ip -s link
# リアルタイム接続先
sudo iftop
# プロセス別
sudo nethogs
# 長期統計
vnstat
# 詳細分析
sudo tcpdump -w capture.pcap
ネットワーク問題の90%は、適切な監視で早期発見・解決できます。
これらのツールを使いこなして、快適なネットワーク環境を維持しましょう!
コメント