ntpq -p コマンドでNTPサーバーの状態を確認!使い方と見方を徹底解説

サーバーの時刻がずれてしまうと、ログの記録が前後したり、認証処理に失敗したりと、思わぬトラブルを招くことがあります。こうした問題を防ぐために重要なのが「時刻同期」です。Linuxでは、NTP(Network Time Protocol)を使って正確な時刻を維持することが一般的ですが、その状態を確認する際に便利なのが ntpq -p コマンドです。本記事では、ntpq -p の基本的な使い方から、出力結果の読み解き方までを詳しく解説します。サーバー管理やシステム運用に携わる方にとって、必須の知識を身につけましょう。


ntpqコマンドとは?

ntpq は、NTP(Network Time Protocol)のクライアントツールの一つで、NTPサーバーとクライアントの同期状態を確認するために使用します。特に -p オプションを付けて実行することで、接続中のNTPサーバーとそのステータスが一覧表示されます。

このコマンドを使用することで、サーバーがどのNTPサーバーから時刻情報を取得しているのか、同期が取れているかどうか、遅延やオフセットの状況などを把握することができます。


ntpq -p の基本的な使い方

まずは実際に ntpq -p を実行してみましょう。Linuxのターミナルで以下のコマンドを入力します。

ntpq -p

このコマンドを実行すると、次のような出力が表示されます(一部略):

    remote           refid      st t when poll reach   delay   offset  jitter
===============================================================================
*time.google.com .GOOG. 1 u 61 64 377 24.123 -0.123 0.456
+ntp.nict.jp .NICT. 1 u 10 64 377 18.456 -0.045 0.234

各列が何を意味しているのか、次の章で詳しく解説します。


出力結果の読み方

ntpq -p コマンドの出力には、さまざまな情報が含まれています。それぞれの列の意味を見ていきましょう。

1. remote

NTPサーバーのホスト名またはIPアドレスです。*+ といった記号が先頭に付きます。

2. refid

参照している上位のNTPサーバー、または信頼する時間ソースの識別子です。

3. st(Stratum)

NTPの階層を示す数字です。1が最上位で、数字が大きくなるほど階層が下がります。

  • Stratum 1:原子時計やGPSなどの高精度な時間源に直接接続されたサーバー
  • Stratum 2:Stratum 1のサーバーから時刻を取得しているサーバー

4. t(Type)

接続のタイプを表します。よく使われるのは以下の記号です:

  • u:Unicast
  • b:Broadcast
  • m:Multicast
  • l:Local(ローカルクロック)

5. when

最後にサーバーと通信した秒数を表示します。

6. poll

サーバーにポーリング(問い合わせ)を行う間隔(秒)です。

7. reach

過去8回のポーリング結果を8ビットのビットマスクで表した数値(8進数)です。377なら全て成功という意味です。

8. delay

ネットワーク遅延の往復時間(ms単位)です。

9. offset

NTPサーバーとローカルシステムの時刻の差(ms単位)です。±数ミリ秒であれば精度は良好とされます。

10. jitter

オフセットの変動の大きさ(ms単位)で、時刻の安定性の指標です。


マークの意味(*、+、- など)

remote列の先頭に付く記号は、NTPサーバーの状態を示しています。

  • *:現在、同期しているNTPサーバー(primary peer)
  • +:候補に挙がっているが、現在は選ばれていないサーバー
  • -:除外されているサーバー(ネットワーク品質や時刻精度の観点から)
  • x:無効とされたサーバー
  • #:選考外(フィルタリングされた)
  • .:クロックの誤差が大きいと判断された

このマークを見ることで、どのサーバーが使用されているか、信頼性がどうなのかを一目で把握できます。


よくあるトラブルと対処法

reach値が「0」や小さい場合

ネットワークの問題、またはNTPサービスが起動していない可能性があります。以下のコマンドでntpdが動作しているか確認しましょう。

systemctl status ntpd

または chronyd を使っている環境では:

systemctl status chronyd

offsetが大きい

NTPサーバーとの時刻差が大きい場合、設定ミスや回線の遅延が原因です。他のサーバーに切り替えるか、ntpdate などを使って手動で時刻合わせすることを検討してください。


chrony環境での注意点

近年のLinuxディストリビューションでは、ntpd の代わりに chronyd が使われるケースが増えています。その場合、ntpq -p ではなく chronyc sources -v を使う方が正確な情報を取得できます。

ただし、chrony にも互換性があるため ntpq -p が使える場合もあります。使えないときは以下のように確認してください。

chronyc sources -v

実践例:時刻同期の確認フロー

  1. NTPサーバーが動作しているか確認
  2. ntpq -p でステータス確認
  3. * が付いたサーバーが1つ以上あることを確認
  4. offsetやdelay、jitterが許容範囲かチェック
  5. reachが安定しているか確認(377が理想)

まとめ

ntpq -p は、Linuxサーバーの時刻同期状況を簡単に把握できる非常に便利なコマンドです。出力結果の各項目を理解すれば、どのNTPサーバーと同期しているか、どの程度精度が保たれているかを正確に判断できます。サーバー運用において時刻のズレは命取りになることもあるため、定期的にチェックし、安定した時刻管理を行いましょう。

タイトルとURLをコピーしました