NTPサーバとは?仕組みや時刻同期設定の方法や代表的なサーバからトラブル対処法まで解説

fujimiya_writer

目次

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

このような疑問を持つ方はいませんか。

実は、私たちのパソコンやスマホが常に正確な時間を保っているのは、NTPサーバのおかげです。

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

信頼できる代表的なNTPサーバも紹介するので、ぜひ最後までお読みください。

株式会社Jiteraは、独自のAI技術を使った高品質&最短納期の開発が得意です。システム開発やアプリ開発に関する相談は、気軽にお問い合わせください。

NTPサーバとは?

NTPサーバとは?

NTPサーバについて軽く説明すると、NTPクライアント側となるwindows pcやスマートフォン等と、インターネット回線を介して時刻同期を行うプロトコルのNTPと呼ばれるものを使用します。

これにより、クライアント側となるwindows pc やスマートフォン等と同期を行うサーバ側の事を、NTPサーバと呼びます。

NTPサーバは通常であれば、正確な時刻をネットワーク上から取得し、クライアント端末であるwindows pc等に送信している為、同期時はクライアント端末のwindows pcも同様にNTPサーバから正確な時刻を取得します。

NTPサーバの上位となるものについては、一般的には公開されておりませんので、基本的には通信事業者からNTPサーバが提供されています。

NTPプロトコルとは、通信を利用したプロトコルと呼ばれるものの一つです。

Network Timeプロトコルの事を指しており、windows pc等に内蔵されている時計を、インターネットを介する事により正しい時間を同期させるためのプロトコルの事を、NTPと呼びます。

117に電話をすると、電話から自動音声で正しい時刻を聞く事できますがNTPはその機能と同じような動きとなるプロトコルと言われています。

次はNTPの役割について解説していきます。

NTPの役割は、windows pcの時刻同期だけではなく、システム開発やネットワーク、サーバ運用にも必要な役割があります。

システムを運用しているサーバ上の時刻と連携しているクライアントとの時刻が正しく同期されていないと、バックグラウンドで動いているタスクやアプリケーション等が、指定している時刻に意図した時刻に動作せず、最悪な場合システムが正常に動作しなくなってしまう事もあります。

それを防ぐ為にNTPプロトコルと呼ばれる通信プロトコルの導入が必要となります。

NTPサーバはなぜ重要?

NTPサーバはなぜ重要?

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

NTPサーバの重要性については、以下の3点にてご説明させて頂ければと思います。

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

企業のシステムは、外部サーバと内部サーバの連携、内部サーバから端末への連携等、様々な機能が搭載されている外部及び内部のサーバとの連携及びクライアント側の端末への連携によって稼働されています。

時刻が正しく設定されていないと、バッチファイル等が意図した時間に起動せず、システムの稼働に悪影響を及ぼします。

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

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

システム環境において、外部と内部による外部及い内部のインターネット接続用の機器や内部及び外部サーバ機器の連携は必須です。

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

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

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

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

システムに何らかの障害が発生した場合、システム担当者はサーバや内部及び外部ネットワーク接続用の機器にログインし、エラーログ等を採取、障害が発生している箇所の洗い出し、障害の復旧を行う必要があります。

しかし、時刻のずれが発生している外部及び内部のネットワーク機器やサーバが存在すると、不具合が発生している機器の特定が難しくなるのが欠点です。

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

業務効率化システムを開発したいなら「ジテラ」へ!他社より1.4倍速い開発、お返事は3日以内、開発知識ゼロでもOK!、お見積りは無料。お見積りは無料!

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プロトコルにより遅延や時差が修正され、正確な時刻同期を実現しています。

代表的な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は基本的に、NTPを参照出来ればwindows pcやベンダー向け機器等すべてのクライアントに対応するNTPサーバです。mfeedNTPサーバを利用する事により、ネットワークを通じてとても高い精度の「日本標準時間」の時刻同期を無料で利用できるNTPサーバです。

Microsoft「time.windows.com」

Windows OSでデフォルトに設定されているNTPサーバです。
Windowsでは初期設定不要で、time.windows.comを使って自動的に時刻同期されています。

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

NTPサーバをwindows、mac、及びLixux等クライアント端末へ簡単に参照させる事ができます。

NTPサーバの参照方法はos毎になりますのでご注意下さい。

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

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

無事時刻があっていれば、作業完了です。

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

Windows 10 をNTPサーバにする手順

windowsを利用して、 NTPサーバとして動作させる事も可能です。

以下のように設定及び操作する事により、windowspcを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サーバを複数台指定していると、時刻が大きくずれたサーバを除外して、残りの最大3台の同期先の情報を使って時刻同期を行います。これはNTPの仕様によるものですが、
同期先のNTPサーバを2台設定している場合、時刻がずれたときにどちらのサーバを除外すべきか判断できず、同期ができなくなります。
NTPサーバを3台以上設定しておくのが有効な対策です。

時刻がずれる

PCの表示時刻が周辺の時計、スマホ、タブレットなどの端末の時刻とずれることがあります。
PCの時刻がずれていると、メールの送受信や、ファイル管理にも影響があり、別のトラブルを生む可能性があるため、対策が必要です。

時刻がずれる原因としては、NTPサーバと通信できていない、ネットワークに接続していない、ファイアウォールが設定されていない、NTPサーバが正常に動作していない、などがあります。

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

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

時刻同期ができていない、または時刻がずれているサーバが2台以上あると、それぞれのログも時刻がずれます。
同一のシステムを構成するサーバでログが時刻ずれしていると、正確なログ情報が拾えなくなり、システム障害につながります。

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

おすすめの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クライアントの関係になっていれば、windowsでもmac osでもLinuxでも、時刻同期を行う事が可能です。

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

NTPサーバはサーバアドレスだけでなく、ipv4及びipv6でも指定も可能ですので、環境に合った設定を頂ければと思います。

また、NTPサーバを構築する際は、上位に設定するNTPサーバが多数ございますので、事前に設定する事をおすすめします。

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

では、最後までご覧いただき有難うございました。「NTPサーバーって何?」

「NTPサーバーの仕組みが良く分からない」

「時刻同期の設定方法を知りたい」

このような疑問を持つ方はいませんか?

実は、私たちのパソコンやスマホが常に正確な時間を保っているのは、NTPサーバーのおかげです。

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

信頼できる代表的なNTPサーバーも紹介するので、ぜひ最後までお読みください。

株式会社Jiteraは、独自のAI技術を使った高品質&最短納期の開発が得意です。システム開発やアプリ開発に関する相談は、気軽にお問い合わせください。

NTPサーバーとは?

NTPサーバーとは?

NTPサーバーについて軽く説明すると、NTPクライアント側となるwindows pcやスマートフォン等と、インターネット回線を介して時刻同期を行うプロトコルのNTPと呼ばれるものを使用します。

これにより、クライアント側となるwindows pc やスマートフォン等と同期を行うサーバー側の事を、NTPサーバーと呼びます。

NTPサーバーは通常であれば、正確な時刻をネットワーク上から取得し、クライアント端末であるwindows pc等に送信している為、同期時はクライアント端末のwindows pcも同様にNTPサーバーから正確な時刻を取得します。

NTPサーバーの上位となるものについては、一般的には公開されておりませんので、基本的には通信事業者からNTPサーバーが提供されています。

NTPプロトコルとは、通信を利用したプロトコルと呼ばれるものの一つです。

Network Timeプロトコルの事を指しており、windows pc等に内蔵されている時計を、インターネットを介する事により正しい時間を同期させるためのプロトコルの事を、NTPと呼びます。

117に電話をすると、電話から自動音声で正しい時刻を聞く事できますがNTPはその機能と同じような動きとなるプロトコルと言われています。

次はNTPの役割について解説していきます。

NTPの役割は、windows pcの時刻同期だけではなく、システム開発やネットワーク、サーバ運用にも必要な役割があります。

システムを運用しているサーバー上の時刻と連携しているクライアントとの時刻が正しく同期されていないと、バックグラウンドで動いているタスクやアプリケーション等が、指定している時刻に意図した時刻に動作せず、最悪な場合システムが正常に動作しなくなってしまう事もあります。

それを防ぐ為にNTPプロトコルと呼ばれる通信プロトコルの導入が必要となります。

NTPサーバーはなぜ重要?

NTPサーバーはなぜ重要?

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

NTPサーバーの重要性については、以下の3点にてご説明させて頂ければと思います。

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

企業のシステムは、外部サーバーと内部サーバーの連携、内部サーバーから端末への連携等、様々な機能が搭載されている外部及び内部のサーバーとの連携及びクライアント側の端末への連携によって稼働されています。

時刻が正しく設定されていないと、バッチファイル等が意図した時間に起動せず、システムの稼働に悪影響を及ぼします。

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

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

システム環境において、外部と内部による外部及い内部のインターネット接続用の機器や内部及び外部サーバー機器の連携は必須です。

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

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

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

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

システムに何らかの障害が発生した場合、システム担当者はサーバーや内部及び外部ネットワーク接続用の機器にログインし、エラーログ等を採取、障害が発生している箇所の洗い出し、障害の復旧を行う必要があります。

しかし、時刻のずれが発生している外部及び内部のネットワーク機器やサーバーが存在すると、不具合が発生している機器の特定が難しくなるのが欠点です。

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

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プロトコルにより遅延や時差が修正され、正確な時刻同期を実現しています。

代表的な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は基本的に、NTPを参照出来ればwindows pcやベンダー向け機器等すべてのクライアントに対応するNTPサーバーです。mfeedNTPサーバを利用する事により、ネットワークを通じてとても高い精度の「日本標準時間」の時刻同期を無料で利用できるNTPサーバーです。

Microsoft「time.windows.com」

Windows OSでデフォルトに設定されているNTPサーバです。
Windowsでは初期設定不要で、time.windows.comを使って自動的に時刻同期されています。

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

NTPサーバーをwindows、mac、及びLixux等クライアント端末へ簡単に参照させる事ができます。

NTPサーバーの参照方法はos毎になりますのでご注意下さい。

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

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

無事時刻があっていれば、作業完了です。

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

Windows 10 をNTPサーバにする手順

windowsを利用して、 NTPサーバーとして動作させる事も可能です。

以下のように設定及び操作する事により、windowspcを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サーバを複数台指定していると、時刻が大きくずれたサーバを除外して、残りの最大3台の同期先の情報を使って時刻同期を行います。これはNTPの仕様によるものですが、
同期先のNTPサーバを2台設定している場合、時刻がずれたときにどちらのサーバを除外すべきか判断できず、同期ができなくなります。
NTPサーバを3台以上設定しておくのが有効な対策です。

時刻がずれる

PCの表示時刻が周辺の時計、スマホ、タブレットなどの端末の時刻とずれることがあります。
PCの時刻がずれていると、メールの送受信や、ファイル管理にも影響があり、別のトラブルを生む可能性があるため、対策が必要です。

時刻がずれる原因としては、NTPサーバと通信できていない、ネットワークに接続していない、ファイアウォールが設定されていない、NTPサーバが正常に動作していない、などがあります。

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

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

時刻同期ができていない、または時刻がずれているサーバが2台以上あると、それぞれのログも時刻がずれます。
同一のシステムを構成するサーバでログが時刻ずれしていると、正確なログ情報が拾えなくなり、システム障害につながります。

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

おすすめの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クライアントの関係になっていれば、windowsでもmac osでもLinuxでも、時刻同期を行う事が可能です。

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

NTPサーバーはサーバーアドレスだけでなく、ipv4及びipv6でも指定も可能ですので、環境に合った設定を頂ければと思います。

また、NTPサーバーを構築する際は、上位に設定するNTPサーバーが多数ございますので、事前に設定する事をおすすめします。

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

では、最後までご覧いただき有難うございました。

fujimiya_writer

コスト削減も課題解決も同時に実現

「JITERA」で迅速
ソフトウェア開発

開発を相談する
Recommended articles for you

Discover more of
what matters to you

email-img
メルマガ登録
JITERA社内で話題になった生成AIトレンドをいち早くお届けします。
Thank you!

Jiteraのメールマガジン登録が完了しました。