NTPサーバとは?仕組みや時刻同期の設定方法、代表的なサーバを徹底解説!

「NTPサーバって何?」「NTPサーバの仕組みが良く分からない」「時刻同期の設定方法を知りたい」

このような疑問を持つ方はいませんか。実は、私たちのパソコンやスマホが常に正確な時間を保っているのは、NTPサーバのおかげです。

本記事ではNTPサーバの概要や仕組み、時刻同期設定の方法などをわかりやすく解説していきます。

アバター画像
監修者 テクニカルライター fujimiya_writer

インフラエンジニア1年目。2023年にCCNAを取得してIT業界に飛び込みました。 Linux、Cisco、Windows Server、Azureなどなど勉強中です。

\エキスパートが回答!/
この記事に関する質問はこちら
記事に関するご質問以外にも、システム開発の依頼やAIの導入相談なども受け付けております。

    会社名必須
    必須
    必須
    Eメール必須
    電話番号必須
    ご依頼内容必須

    NTPサーバとは?

    NTPサーバとは?

    NTPサーバとは、NTPプロトコル(Network Time Protocol)を使用してクライアント端末(Windows PC、スマートフォンなど)の時刻を正確に同期させるサーバのことです。

    NTPプロトコルは、インターネット経由で時刻を送受信するための通信規約です。

    NTPサーバは、正確な時刻を取得し、それをクライアント端末に送信します。クライアント端末は、受信した時刻に自身の時計を合わせることで、正確な時刻を維持できます。

    NTPサーバは、通信事業者などから提供されています。一般には、上位のNTPサーバについての情報は公開されていません

    NTPの役割は、クライアント端末の時刻同期だけでなく、システム開発やネットワーク、サーバ運用においても重要です。

    サーバとクライアントの時刻が正しく同期されていないと、タスクやアプリケーションが意図した時刻に動作しない可能性があり、システムに支障が生じる恐れがあります。そのため、NTPプロトコルの導入が不可欠となります。

    NTPサーバはなぜ重要?

    NTPサーバはなぜ重要?

    さて、ここまでNTPサーバについての仕組みや、種類、同期の仕方などをご紹介しましたが、NTPサーバがなぜ重要なのかについて、ご説明したいと思います。

    NTPサーバの重要性については、以下の3点にて説明します。

    システムの連携時に正確な時刻が必要

    企業のシステムは、サーバとの連携やクライアント側の端末への連携によって稼働しています。

    複数のシステムやアプリケーションが連携して動作する場合、それぞれの時刻が同期されていないと、タスクの実行タイミングがずれ、想定外の動作をする可能性があります。

    また、ファイルサーバ側によるファイル共有機能等も、サーバ側から端末間で時刻のずれがあると、ファイルサーバ側から端末への共有が上手くいかず、業務に支障が出る可能性があります。

    ネットワーク機器やサーバの認証に必要

    ネットワーク機器やサーバでは、時刻情報を使った認証が行われることがあります。SSL/TLS通信の際の証明書の有効期限チェックなどで、正確な時刻が求められます。

    しかし、インターネット外部及び内部からのネットワーク機器とサーバ側機器の認証の間に時刻のずれが生じると、お互いの通信をするためのプロトコルが上手く動作せず、認証に時間がかかる事もあります。

    それによってシステム環境の動作が不安定になることもあるため注意が必要です。

    例えばシステムを利用しているユーザーの業務に支障が発生する可能性や、時刻がずれていく事によって、システム担当者の意図した時間にシステムが動作せず、システム検証のやり直しが発生する可能性も考えられるでしょう。

    障害発生時に正確な時刻が必要

    システムに何らかの障害が発生した場合、エラーログをはじめとする情報を採取し、障害が発生している箇所の洗い出しや障害の復旧を行うことが必要です。

    しかし、時刻のずれが発生しているネットワーク機器やサーバが存在すると、不具合が発生している機器の特定が難しくなります

    その結果障害の原因の特定に時間がかかってしまい、その間にサービスを止めてしまう為、ユーザーに悪影響を与えてしまいます。

    NTPサーバの時刻同期とその仕組み

    NTPはそれぞれサーバ側とクライアント側の関係によって成り立っています。NTPサーバとはクライアント側の親のような存在、NTPクライアント側はNTPサーバ側の子どものような役割をしており、それぞれ相互関係で通信を行っています

    NTPサーバとNTPクライアント

    NTPサーバとNTPクライアントはそれぞれどういうものなのでしょうか。

    NTPサーバ

    それぞれにサーバ側とクラアント側のように、上位から下位へのように構成されています。

    そのため、下位のNTPサーバやwindows pc 等クライアント端末から時刻を参照される事もありますが、NTPサーバ自体がクラアント側になる事により、上位にあるNTPサーバを参照する事もあります。

    NTPクライアント

    Windows pcのほかにもシステム環境等ではサーバ自体がクライアント側になる事も多いので、その事も念頭においておく必要があります。

    NTPサーバの仕組み

    NTPサーバは基本的に先ほどもご紹介しましたが、非常に精度の高いGPSや原子時計を最上位としており、その配下にNTPサーバが存在します。

    原子時計側がサーバ側の立ち位置となり、NTPサーバはクライアント側という立ち位置になります。

    NTPサーバは基本的に、このような精度の高いNTPサーバと時刻同期をする事により、正確な時間を取得します。

    さらに、NTPサーバとNTPクライアント間の通信も、NTPプロトコルにより遅延や時差が修正され、正確な時刻同期を実現しています。

    【OS別】NTPサーバ時刻合わせの手順

    NTPサーバをWndowsやMac、Lixuxなどのクライアント端末へ簡単に参照させる事ができます

    NTPサーバのOS毎の設定方法は下記のとおりです。

    Windowsの時刻同期設定

    windowsでの時刻自動同期設定は下記の通りです。

    1. Windowsの下のタスクバーの右にある、時刻と年月日が表示されているところを右クリックします。
    2. 表示された右クリックメニューの中にある日時を調整するを選択します。
    3. 日付と時刻の画面のウインドウが表示されますので、その中にある時刻を自動的に設定する欄を確認します。
    4. 時刻を自動的に設定する欄の右にあるつまみでオフと表示されている場合は、そのつまみを選択し、オンに切り替えます。
    5. オンに切り替えた後、タスクバーにある時刻が、ずれている時刻から正常な時刻に戻ったら、日付と時刻のウインドウを×で閉じます。

    以上で作業完了となります。

    Macの時刻同期設定

    mac osでの時刻同期設定の方法は下記の通りです。

    1. mac osの上のバーにあるアップルメニューを選択します。
    2. その中から「システム設定」を選択します。
    3. サイドバーの中から、「一般」を選択します。
      ※場合によってはtoutchIDやパスワードの入力が求められますので、画面の指示に従ってtoutchIDもしくはパスワードを入力して下さい。
    4. 少し下にスクロールすると「日付と時刻」の設定箇所が表にありますので、その項目を選択します。
    5. 「日付と時刻を自動的に設定する」がオフになっている場合は、オンにします。
    6. mac osの時刻のずれが、自動的に修正されれば正常にNTPサーバと同期が取れた事になります。
    7. 開いていた全てのウインドウを閉じます。

    以上で作業完了となります。

    Linuxの時刻同期設定

    Linux(RHEL及びCentOS)での時刻同期方法は下記の通りです。

    1. RHELもしくはcentOSを立ち上げ、root権限(管理者権限)モードになります。
    2. ntpdateコマンドを使用し、NTPサーバを指定します。具体的な使用例は下記の通りです。
      ntpdate -v ntp.nict.jp

      nictを使用した場合。引数であります -v を入力すると、時刻同期の詳細表示が確認できます。

    3. コマンドが成功すると、時刻同期のログが表示されますので、内容を確認します。
    4. 内容を確認後、現在時刻とあっているか確認する為、以下のコマンドを入力します。
      date

    すると日付と時刻の詳細が表示されるため、時刻があっているか確認できます。無事時刻があっていれば作業完了です。

    【OS別】NTPサーバの構築・指定方法

    Windows、Mac OS 及びLinuxには、指定のNTPサーバを設定することが出来ます。ただし、設定方法はOS毎に違いますのでご注意下さい。

    それぞれのOSでのNTPサーバ設定方法につきまして、ご紹介します。

    WindowsのNTPサーバの設定

    WindowsのNTPサーバ設定方法は下記のとおりです。

    1. windowsのタスクバーから時計と年月日がでているところを右クリック。
    2. 右クリックして出たメニューより日時を調整するを選択します。
    3. 日付と時刻の画面が表示されるので、その中のその他の時計を選択します。
    4. インターネット時刻タブで、設定の変更を選択します。
    5. 参照したいNTPサーバのアドレスを入力します。
      例:nictの場合
    6. ntp.nict.jpと入力します。
    7. インターネット時刻サーバと同期するにチェックを入れ、今すぐ更新を選択します。
    8. 時計は正常に~~同期しましたと表示されたらokを選択して完了です。

    MacのNTPサーバの設定

    Mac osの場合の設定方法は下記の通りです。

    1. アップルメニューをクリックし、システム設定を選択します。
    2. メニューの中から一般を選択します。
    3. 日付と時刻を選択します。
    4. 日付と時刻の設定画面の中から、タイムサーバの横にある設定を選択します。
    5. touchIDもしくはパスワードを入力し、ロックを解除します。
    6. NTPサーバを入力する画面が表示されますので、NTPサーバのアドレスを入力します。
      例:nictの場合:ntp.nict.jpと入力
    7. 完了を選択後、日付と時刻の画面に戻り、タイムサーバ欄に入力したNTPサーバアドレスが表示されれば完了となります。

    これでNTPサーバとmac osの時刻が自動的にクライアント側と同期されます。

    LinuxのNTPサーバの設定

    Linux(RHEL及びCentOS)での場合は

    1. systemctl status chronydと入力後、エンターキーを押します。
      ※chronyをインストールしていない場合は、yumコマンドで下記の通りに操作を行って下さい。
      yum install chrony
    2. statusコマンドでenableになっていない場合は、下記の通り入力します。
      systemctl enable chronyd
    3. 再度 systemctl status chronydと入力し、enableになっていればOKです。
    4. NTPサーバの参照先を設定します。
      vi /etc/chrony.conf

      と入力すると設定ファイルの編集画面に入りますので、server横に下記のように入力します。

      server ntp.nict.jp iburst
      port 0
    5. .:wqでviエディタを終了させます。
    6. chronyを再起動する為、下記の通り入力します。
      systemctl restart chronyd
    7. chronyが再起動したら、下記の通り入力後、NTPサーバのアドレス左に*マークが表示されたら完了です
      chronyc sources

    Windows10をNTPサーバにする手順

    Windowsを利用して、 NTPサーバとして動作させる事も可能です。以下のように設定及び操作する事により、Windows PCをNTPサーバに設定できます。

    レジストリエディターの起動

    1. windowsマークをクリックし、ファイル名を指定して実行を選択します。
    2. 入力ボックスが表示されますので、そこにregeditと入力し、OKを選択します。
    3. するとレジストリエディタが表示されますので、HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ServicesW32Time\TimeProviders\NtpServer
      上記まで移動します。
    4. 移動後、右のスペースにEnabledの項目がありますので、項目をダブルクリックします。
    5. すると画面が表示されますので、値のデータを0から1へ変更します。
    6. 変更後、今度はHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ServicesW32Time\Configまで移動します。
    7. 移動したら、AnnounceFlagsの項目がありますので、その項目をダブルクリックします。
    8. すると画面が表示されますので、値のデータを0から5へ変更し、OKを選択します。

    その後regedit画面を閉じます。

    サービスの再起動

    1. w32timeというサービスの再起動を行う為、ファイル名を指定して実行から管理者権限で「cmd」と入力し、コマンドプロンプトを開きます。
    2. するとコマンドプロンプトが起動されますので、コマンドライン上でnet stop w32timeと入力し、エンターキーを押します。
    3. その後、エラーログ等が出力されていなければ、続けてコマンドライン上でnet start w32timeと入力し、w32timeサービスを起動します。
    4. windows time サービスは正常に開始されましたと表示されれば完了です。

    ファイアウォールの設定

    NTPサーバとして動作させるため、ポートの解放が必要となりますので、ファイアウォールの設定から行います。

    1. スタートボタンを選択し、システムツールを開きます。
    2. カテゴリ表示に変更し、システムとセキュリティの項目の中から、windowsdefenderファイアウォールをダブルクリックで開きます。
    3. 左の詳細設定を選択します。
    4. すると左に受信の規則とありますので受信の規則を選択した後、右の操作画面から新しい規則をクリックします。
    5. 規則の種類の画面が表示されますので、その中からポートを選択し次へを選択します。
    6. するとTCPかUDPか、ポートはどのような種類かを選択する画面が表示されますので、UDPを選択し、特定のポートを選択後、ボックス欄に123と入力し、次へを選択します。
    7. 接続を許可するにチェックを入れて、次へを選択します。
    8. 規則のプロファイルをどの接続の種類に適用するか表示されますので、全てにチェックを入れて次へを選択します。
    9. 名前はNTPにし、完了を選択します。

    動作確認

    1. NTPクライアントとして、同じネットワークに所属している別の端末を用意します。
    2. 先ほど構築したwindows10のNTPサーバアドレスをクライアント側の端末の時刻同期の入力欄に入力し、無事同期出来れば成功です。

    NTPサーバにIPアドレスを設定する方法

    NTPサーバをIPアドレスにて設定する方法は、これまでご紹介した各端末ごとの設定方法をご確認頂き、設定したいNTPのサーバアドレスを、IPアドレスに置き換えて設定する事が可能です。

    ただし、NTPサーバによっては名前解決が必要になる為、NTPサーバをIPアドレスのみでは設定できない場合がありますのでご注意下さい。

    推奨の公開NTPサーバを指定する

    推奨している公開NTPサーバは、インターネットマルチフィード株式会社が提供しているNTPサーバです。

    NTPサーバアドレスの指定の他に、ipv4、ipv6での指定でも問題無く可能となっています。

    更に全て無償で提供されている為、コストをあまりかけず、多様な設定方法が可能です。

    ipv4での設定方法は下記の通りです。

    windowsまたはmac os、及びlinuxの各種端末毎のNTPサーバアドレスを指定する箇所で、以下の通り指定して下さい。

    210.173.160.27(ntp1.jst.mfeed.ad.jp)

    IPアドレスの指定の場合は左の数値のみの方を設定下さい。

    これにより、NTPサーバをIPアドレスとして設定が可能です。

    推奨のサーバと接続が悪い場合

    上記で記載したIPアドレスとクライアント(各種端末)との接続が悪い場合は、下記のいずれかのIPアドレスで設定してみて下さい。

    210.173.160.57(ntp2.jst.mfeed.ad.jp)
    210.173.160.87(ntp3.jst.mfeed.ad.jp)

    IPv4での設定で接続が悪い場合は、下記のipv6アドレスのいずれかで設定してみて下さい。

    2001:3a0:0:2001::27:123(ntp1.v6.mfeed.ad.jp)

    2001:3a0:0:2005::57:123(ntp2.v6.mfeed.ad.jp)

    2001:3a0:0:2006::87:123(ntp3.v6.mfeed.ad.jp)

    NTPサーバの時刻同期に関するよくあるトラブル

    NTPクライアントの設定が間違っていたり、NTPサーバが適切な状態でないとき、時刻が同期できないなどの不具合が生じます。時刻同期のよくあるトラブルとその原因、対策を紹介します。

    時刻同期ができない

    WindowsのデフォルトのNTPサーバである「time.windows.com」のような、負荷が高いサーバを使用していると時刻が同期できない場合があります。

    他のNTPサーバを使用することで解決するかもしれません。

    また、同期先のNTPサーバを2台設定している場合、時刻がずれたときにどちらのサーバを除外すべきか判断できず、同期ができなくなります。

    時刻が大きくずれたサーバを除外して、残りの最大3台の同期先の情報を使って時刻同期を行います。NTPサーバを3台以上設定しておくのが有効な対策です。

    時刻がずれる

    PCの表示時刻が周辺の時計、スマホ、タブレットなどの端末の時刻とずれることがあります。

    時刻がずれる原因は以下の通りです。

    • NTPサーバと通信できていない
    • ネットワークに接続していない
    • ファイアウォールが設定されていない
    • NTPサーバが正常に動作していない

    PCの設定を見直し、NTPサーバと正常に通信できるか確認する、またはNTPサーバの動作確認を行うことで解決を目指しましょう。

    セキュリティ上の問題が発生する

    時刻同期ができていない、または時刻がずれているサーバが2台以上あると、それぞれのログも時刻がずれます。

    同一のシステムを構成するサーバでログが時刻ずれしていると、正確なログ情報が拾えなくなり、システム障害につながります。

    セキュリティ向上のためにも、同一のシステムを構成しているサーバでは、参照するNTPサーバを揃えておくのが無難と言えるでしょう。

    代表的なNTPサーバ

    代表的なNTPサーバを紹介します。

    一般的なユーザーであれば独立行政法人情報通信研究機構(NECT)、企業やITインフラなどベンダー向けであればNTP Pool Project、日本での時刻合わせで代表的なNTPサーバはインターネットマルチフィード(Mfeed)時刻情報提供サービスfor publicがよく使われています。

    独立行政法人情報通信研究機構(NICT)「ntp.nict.jp」

    NICTは1秒間に100万以上のリクエスト処理が可能なハードウェアを使用したNTPサーバを構築し、上位のNTPサーバ側として一般的に公開しています。

    サーバ名はntp.nict.jpとなっており、基本的にどのようなユーザーでも使用可能です。windowsやmac osにも標準でこの機能が搭載されています。

    公式サイト

    NTP POOL PROJECT「pool.ntp.org」

    NTPpoolは、タイムサーバ上に存在する仮想クラスタ群で、数百万のクライアント側に安定したNTPサーバサービスとして提供しているプロジェクトのことを指します。

    主な対象はインターネットやサーバ等のベンダー向けとなります。

    公式サイト

    インターネットマルチフィード(MFEED)「ntp.jst.mfeed.ad.jp」

    mfeedは基本的に、Windows pcやベンダー向け機器等すべてのクライアントに対応するNTPサーバです。

    mfeedNTPサーバを利用する事により、ネットワークを通じてとても高い精度の「日本標準時間」の時刻同期を無料で利用できるNTPサーバです。

    公式サイト

    Microsoft「time.windows.com」

    Windows OSでデフォルトに設定されているNTPサーバです。

    Windowsでは初期設定不要で、time.windows.comを使って自動的に時刻同期されています。

    公式サイト

    おすすめのNTPサーバソフトウェア

    ntpd:Linux

    ntpdは昔から利用されているLinuxOSによる時刻合わせのソフトウェアの一つです。

    LinuxOSをインストールした直後にパッケージに入っており、yumコマンドによるインストールも不要です。初心者の方におすすめできるLinuxOSでのNTPサーバソフトウェアの一つです。

    公式サイト

    Chrony:Linux(CentOS)

    ChronyはCentOSと呼ばれるLinuxOSの1つで、おすすめできるNTPサーバソフトウェアです。

    Chronyはntpd同様に、最新版のCentOSをインストールすれば、ほぼ全てのパッケージにて初期から搭載されているNTPサーバソフトウェアですので、初心者のNTPサーバソフトウェアとしておすすめです。

    公式サイト

    桜時計:Windows

    桜時計は、windows専用のソフトウェアとなっており、時刻のずれをミリ秒単位で修正する時刻同期ソフトウェアです。

    桜時計を起動して、windowsにて常駐させておく事により、指定したNTPサーバと自動同期してくれます。また、NTPサーバはソフトウェアで自由に選択する事が可能です。

    公式サイト

    まとめ:NTPサーバはネットワーク上の時間管理者

    NTPサーバとは時刻修正をそれぞれのクライアントに行う為のものであり、NTPサーバとNTPクライアントの関係になっていれば、どのOSでも時刻同期を行う事が可能です。

    もしシステム環境等にてNTPサーバによって同期されていない場合は業務に支障が出る可能性があるので、必ずシステム環境を構築する際はNTPサーバも構築し、クライアント端末等と同期するようにしましょう。

    もしNTPサーバ、ITインフラ及びシステム開発をご検討中であれば、株式会社Jiteraへお問い合わせ頂ければ、詳細な提案を纏めてお送りしますので、お気軽にお問合せ下さい。

    Jiteraへ相談する

    例:開発手順、ツール、プロンプト

    メルマガ登録

    社内で話題になった「生成AIに関するニュース」をどこよりも早くお届けします。