Linux回線速度測定コマンドで遅い原因を切り分ける方法
Linuxで回線速度を測定しても結果が安定しない、下りだけ遅い、Pingが高いといった現象には複数の原因があります。speedtestやping、iperf3を使い、測定条件、宅内機器、Wi-Fi、プロバイダー、接続先を順番に切り分ける方法を解説します。
Linux回線速度測定コマンドで起きる主な現象
LinuxサーバーやPCで回線速度を測定すると、契約している光回線の想定より下り速度や上り速度が低い、測定のたびに数値が変わる、Pingや遅延だけが大きいといった現象が発生します。速度の数値だけで回線障害と判断するのは難しく、接続方式や測定先も確認する必要があります。
インターネット全体の速度を確認する場合は、OoklaのSpeedtest CLIやLibreSpeed CLIを利用できます。利用可能なコマンドは環境によって異なるため、まず導入済みのツールを確認してください。
speedtestを実行できる環境では、サーバー選択後に下り、上り、Pingの目安を確認できます。測定結果は時間帯や接続先によって変動するため、1回の結果だけで判断しないことが重要です。
原因1:測定方法や接続条件が適切でない
最初に疑うべき原因は、測定条件の違いです。Wi-Fi経由で測定している場合、電波状況や周囲の利用状況によって速度が変わります。また、VPN、プロキシ、SSHのポートフォワーディング、バックグラウンドのダウンロードがあると、Linux回線速度測定コマンドの結果に影響します。
判断するには、同じ時間帯に複数回測定し、可能であればLANケーブルでルーターへ直接接続します。VPNや大容量通信を停止した状態でも数値が低いかを比較してください。下りと上りの片方だけが大きく変動する場合は、測定経路や端末側の処理も確認します。
改善策は、測定条件を固定することです。測定時刻、接続方式、利用したサーバー、VPNの有無を記録し、同じ条件で比較します。複数の測定先を使うと、特定サーバーの混雑と自宅回線の問題を分けやすくなります。
原因2:Wi-Fiやルーターがボトルネックになっている
光回線の契約速度が十分でも、Linux端末とルーターの間がWi-Fiだと、無線規格、距離、壁、電波干渉によって実効速度が下がります。古いルーターやLANポートが100Mbps対応の場合は、有線接続でも速度が制限されます。
判断するには、有線接続とWi-Fi接続の速度を同じコマンドで比較します。Linuxではip linkでインターフェースを確認し、必要に応じてethtool eth0でリンク速度を確認できます。リンク速度が100Mb/sになっている場合は、ケーブルやポートの規格を確認してください。
改善するには、速度測定時だけでも有線接続を使い、ルーターのファームウェアを更新します。Wi-Fiを利用する場合は、端末とルーターの距離を短くし、5GHz帯や6GHz帯を選択します。ルーターの再起動で一時的に改善する場合は、長時間稼働による負荷や接続数も確認します。
原因3:プロバイダーやIPv4 over IPv6の経路が混雑している
夜間だけ下り速度が低下する場合は、プロバイダーの接続設備や地域の通信経路が混雑している可能性があります。IPv4 PPPoEでは混雑の影響を受けやすいことがあり、IPv6 IPoEやIPv4 over IPv6の利用状況によって経路が変わる場合もあります。
判断方法は、朝、昼、夜など複数の時間帯で同じ測定先を使って比較することです。LANケーブルで接続し、Wi-Fiや端末の問題を除外したうえで、時間帯に連動して低下するか確認します。特定の測定先だけ遅い場合は、プロバイダー全体ではなく経路やサーバー側の混雑を疑います。
改善策として、ルーターの接続方式とIPv6通信の状態を確認します。プロバイダーの障害情報やメンテナンス情報も確認し、複数日で同じ傾向が続く場合は、測定時刻、下り、上り、Ping、接続方式を添えて問い合わせます。NTT、ドコモ、au、ソフトバンクなどの回線やサービスでも、実効速度は地域と時間帯で変わるため、広告上の最大速度だけで比較しません。
原因4:接続先サーバーや測定サーバーが混雑している
速度測定は、端末から測定サーバーまでの経路全体を評価します。そのため、自宅の光回線が正常でも、選択したサーバーの負荷、遠距離経路、CDNや相手サービスの混雑によって速度が低く表示されます。
判断するには、Speedtestなどで異なる測定サーバーを選び、結果を比較します。近いサーバーだけ速く、遠いサーバーだけ遅い場合は、国際回線や長距離経路の遅延が関係している可能性があります。通常のウェブサービスでだけ遅い場合は、対象サービスのサーバーや経路も調べます。
より再現性のある比較には、管理権限のある別ホストとの間でiperf3を使います。サーバー側でiperf3 -s、クライアント側でiperf3 -c サーバーのIPアドレスを実行すると、インターネット速度測定とは異なる、指定経路のスループットを確認できます。
原因5:Pingの遅延やパケットロスが発生している
下り速度が一定でも、オンライン会議、リモートデスクトップ、ゲーム、SSHで応答が遅い場合は、帯域幅ではなくPingや遅延、パケットロスが問題になっている可能性があります。特にWi-Fiの干渉やルーターの過負荷では、速度より先に応答品質が悪化します。
Linuxではping -c 20 対象ホストで往復時間とパケットロスを確認できます。経路ごとの遅延を調べる場合は、環境に応じてtraceroute 対象ホストまたはmtr -rw 対象ホストを使います。自宅ルーター宛てから遅い場合は宅内、ルーターまでは正常で外部だけ遅い場合は回線や経路を疑います。
改善するには、Wi-Fiから有線へ切り替え、ルーターの負荷を下げます。大容量アップロード中に遅延が増える場合は、上り帯域の占有やバッファブロートが考えられるため、帯域制御や適切なQoS設定を検討します。パケットロスが継続する場合は、LANケーブル、ルーター、回線事業者の順に確認します。
原因6:Linux端末のCPU、NIC、設定が影響している
回線やルーターが正常でも、Linux端末のCPU負荷、NICドライバー、仮想マシンのネットワーク設定が速度を制限することがあります。暗号化VPN、ファイアウォール、コンテナの仮想ブリッジが高負荷になると、特に上り下りの高速通信で処理が追いつかない場合があります。
判断時はtopやhtopでCPU負荷を確認し、測定中にCPU使用率が上昇していないかを見ます。インターフェースのエラーやドロップはip -s linkで確認できます。仮想マシンでは、ホストOS側の負荷と仮想NICの種類も確認してください。
改善策は、NICドライバーとLinuxカーネルを更新し、不要なVPNや検査処理を一時的に停止して比較することです。エラーやドロップが増える場合は、ケーブル、NIC、スイッチポートを交換して再測定します。測定結果を記録するスクリプトを作る場合も、測定処理自体がCPUや帯域を占有しないよう注意します。
原因を切り分ける測定手順
- LANケーブルでルーターに接続し、VPNや大容量通信を停止します。
- speedtestなどで下り、上り、Pingを複数回測定し、時刻と測定サーバーを記録します。
- 朝、昼、夜に同じ条件で測定し、時間帯による低下があるか比較します。
- Wi-Fiでも測定し、有線との差から無線区間の影響を確認します。
- pingやmtrでルーター宛てと外部ホスト宛ての遅延、パケットロスを比較します。
- 必要に応じてiperf3で管理下のサーバーとの通信を測定し、測定サーバー固有の問題を除外します。
有線でも時間帯を問わず遅い場合は、プロバイダーや回線経路の確認を優先します。有線は正常でWi-Fiだけ遅い場合は、ルーター、電波環境、無線規格を確認します。速度は正常でもPingやパケットロスが大きい場合は、遅延の原因を別に調査します。
測定結果を改善につなげる記録方法
問い合わせや設定変更に役立てるには、測定日、時刻、接続方式、Linuxの端末、利用コマンド、測定サーバー、下り、上り、Ping、パケットロスを記録します。スクリーンショットだけでなく、コマンドの出力を保存すると、時間帯や環境ごとの比較が容易になります。
速度の改善は、まず測定条件の統一、次にWi-Fiとルーターの確認、その後にプロバイダーや経路の確認という順番で進めます。複数の原因が同時に存在することもあるため、1項目ずつ変更して結果を比較してください。
Speedtest CLIの導入方法や利用可能なオプションは、提供元の公式ドキュメントで確認できます。Linuxディストリビューションやパッケージの更新状況によってコマンド名やインストール方法が異なる点にも注意が必要です。
