サーバーの時刻がずれてしまうと、ログの記録が前後したり、認証処理に失敗したりと、思わぬトラブルを招くことがあります。こうした問題を防ぐために重要なのが「時刻同期」です。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
:Unicastb
:Broadcastm
:Multicastl
: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
実践例:時刻同期の確認フロー
- NTPサーバーが動作しているか確認
ntpq -p
でステータス確認*
が付いたサーバーが1つ以上あることを確認- offsetやdelay、jitterが許容範囲かチェック
- reachが安定しているか確認(377が理想)
まとめ
ntpq -p
は、Linuxサーバーの時刻同期状況を簡単に把握できる非常に便利なコマンドです。出力結果の各項目を理解すれば、どのNTPサーバーと同期しているか、どの程度精度が保たれているかを正確に判断できます。サーバー運用において時刻のズレは命取りになることもあるため、定期的にチェックし、安定した時刻管理を行いましょう。