WindowsをNTPサーバー(タイムサーバー)として動作させる方法

WindowsをNTPサーバー(タイムサーバー)として動作させる方法

ワークグループ環境のWindowsマシンは、デフォルトでMicrosoftがインターネット上に公開しているNTPサーバー「time.windows.com」に接続して時刻を同期するよう設定されていますが、インターネットに接続できない環境で時刻を同期させたい場合は、NTPサーバーの役割を担うマシンを用意する必要があります。

NTPサーバーの役割は、通常はネットワーク機器に担わせることが多いですが、実はWindowsマシンも設定を変更することで、NTPサーバーとして動作させることができます。

そこでここではWindows 10を例に、WindowsマシンをNTPサーバーとして動作させる方法を紹介します。

レジストリ設定

WindowsマシンをNTPサーバーにするには、レジストリ設定とファイアウォール設定、サービス設定が必要となります。

まず、管理者としてPowerShellを起動して、以下の2つのコマンドを実行してNTPサーバーとしての機能を有効化します。

PS> reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer" /v Enabled /t REG_DWORD /d 1 /f
PS> reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config"  /v AnnounceFlags /t REG_DWORD /d 5 /f

それぞれのコマンドを実行後「この操作を正常に完了しました。」と表示されていれば設定完了です。

WindowsをNTPサーバー(タイムサーバー)として動作させる方法

ファイアウォール設定

次に、他のコンピュータからNTPで使用するポート(UDP123番ポート)へのアクセスを許可します。

Windowsに標準搭載のファイアウォール機能「Windows Defenderファイアウォール」に設定する場合は、管理者としてPowerShellを起動して、以下のコマンドを実行します。

PS> New-NetFirewallRule -DisplayName "NTP Server" -Direction Inbound -Protocol UDP -LocalPort 123 -Action Allow

WindowsをNTPサーバー(タイムサーバー)として動作させる方法

サービスの開始と自動起動設定

次に、時刻同期サービス「Windows Time」をシステム起動時に自動起動するよう設定します。

サービス設定は、管理者としてPowerShellを起動して、以下のコマンドを順に実行します。

PS> Start-Service -Name W32Time
PS> Set-Service -Name W32Time -StartupType Automatic

WindowsをNTPサーバー(タイムサーバー)として動作させる方法

以上で、WindowsをNTPサーバーとして動作させることができます。

動作確認

動作確認するときは、他のマシン上で参照するNTPサーバーのアドレスを上で設定したマシンのIPアドレスに変更して正常に時刻同期できるか確認するとよいでしょう。

Windowsで参照するNTPサーバーを変更する方法については、以下の記事をご覧ください。

WindowsやLinuxで参照するNTPサーバーを変更する方法
WindowsやLinuxで参照するNTPサーバーを変更する方法
WindowsやLinuxの時刻同期で参照するNTPサーバーを日本国内の公開NTPサーバーとしてメジャーな「ntp.nict.jp」に変更する方法を解説します。