こんにちは、フルスタックエンジニアのryuです。
今回の記事では、NTPについて解説します。NTPとは、Network Time Protocolの略で、機器同士の時刻を同期するプロトコルになります。機器同士の時刻がバラバラの場合、システムが正常に動作しない場合があります。NTPを使って、ネットワーク内の時刻を統一させましょう。NTPの仕組みなども併せて解説します。
目次
NTPとは?
NTPって何?
今回の記事では、NTPについて初心者の方でも分かりやすく解説します。NTPとは、時間を同期させるためのプロトコルです。なぜ時間を同期させる必要があるのか、時間の同期はどうやってやるのかNTPについて詳しく解説します。
今回の記事の内容は以下の通りです。
- ntpとは時刻を同期するプロトコル
- ntpは階層構造で時刻を同期する
- ntpの同期方法を解説
NTPとは時間を同期させるプロトコル
NTPとは時間を同期させるプロトコルのことです。自分のPCやスマホなど、正しい現在時刻が表示されていると思います。おそらく、時刻を自分で入力した人は少ないと思います。
時刻を自分で設定しなくとも、正しい時刻が表示されているのはNTPが時刻を同期しているからです。
NTPサーバーが基準となる時刻を決め、その他のサーバーはNTPサーバーの時刻に合わせます。多くのクライアントがNTPサーバーを指定することで、ネットワーク内のクライアントが同じNTPサーバーの時間を共有することができます。
簡単な構成はこちらです。

NTPは階層構造を持っており、TOPのサーバーの時刻を同期します。
NTPの階層構造とは?
NTPは階層構造を持っており、この階層を「Stratum」と言います。
最上位の階層を「Stratum0」と呼び、階層が一つ下がるごとに「Stratum1」、「Stratum2」・・・となります。Stratumの値は最大15までです。
Stratum0はGPSや原子時計などで正確な時間を保持しています。Stratum1はStratum0に同期し、そこからさらに、NTPサーバーやクライアントに同期します。この階層構造を図にするとこちらになります。

NTPで自分のPCを時刻同期させてみよう
ここからは、さらにNTPについて理解するために、自分のPC(Windows)をNTPサーバーに同期させてみましょう。
すでに同期の設定はされていますが、設定内容や設定する場所などを確認してみましょう。
NTPの設定場所
では、NTPサーバーに同期するための設定を行いましょう。
まず、コントロールパネル内の「時刻と地域」をクリックします。

そして、「日付と時刻」をクリックします。

「インターネット時刻」から「設定の変更」をクリックします。

そして、NTPサーバーを指定すると完了です。

日本標準時のNTPサーバー
先ほどまで、NTPサーバーの指定方法を解説しました。では、どのようなNTPサーバーを指定すればよいのでしょうか?日本標準時に直結しているNTPサーバーがオススメです。
「ntp.nict.jp」と指定しましょうこれは、日本標準時に直結した時刻サーバーです。詳しくは、こちらからご確認して下さい。

Linuxで時刻同期をする方法
先ほどまで、Windowsの時刻同期方法を解説しました。ここからは、Linuxで時刻を同期する方法です。Linuxは簡単でコマンドを入力するだけです。
ntpdate [NTPサーバ名]
ちなみに、手動で時刻を設定する方法はこちらの記事で解説しております。興味のある方はご覧ください。
【Linux】時刻設定をする方法を解説【date,hwclockコマンドの使い方】
また、LinuxでNTPサーバーを構築する方法も解説しているので、併せてご覧ください。
【Linux】NTPサーバーの設定方法解説【ntpをインストールしてクライアントと同期する】
NTPとは?まとめ
今回の記事では、NTPについて解説しました。まとめると以下のようになります。
- ntpとは時刻を同期するプロトコル
- ntpは階層構造で時刻を同期する
- ntpの同期方法を解説
時刻の設定はサーバーの初期設定で必要なので覚えておきましょう!
当ブログでは、このようなサーバーやネットワークに関連した内容を紹介しています。興味のある方はこちらからご覧ください。
さらにサーバーやネットワークを勉強したい方はこちらの参考者がオススメです。