Windows PCをNTPサーバにする
公開NTPサーバに高頻度でアクセスするような実験を行いたいとか、使用しているネットワーク環境でNTPのパケットが遮断されているというような場合、Windows PCをNTPサーバとして利用することができます。この項ではその方法を解説します。
この作業はレジストリを直接操作します。操作を誤るとWindowsの動作自体に悪影響を及ぼす可能性がありますので、十分注意してください。また作業は自己責任です。作業の結果、いかなる不具合・損失が発生しても当方は一切の責任を負いません。
Windows設定の変更
まずレジストリを操作して、NTPサーバが起動できるように設定を変更します。
レジストリエディタの起動

①画面下部、ウィンドウズボタンの隣にある虫眼鏡のアイコンをクリックします。

②検索画面が表示されるので、上部の入力欄に『regedit』と入力します。
③検索候補として『レジストリエディター』が表示されるので、クリックします。
レジストリの書き換え1
レジストリキーを開く
レジストリエディタで
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer
にアクセスします。
左のツリーで順に『HKEY_LOCAL_MACHINE』→『SYSTEM』→『CurrentControlSet』…と選んでいってもよいのですが、Windows11のレジストリエディターでは、上のレジストリキー名をコピーして、

①の欄に貼りつけて Enter キーを押せば直接該当レジストリキーが開かれます。

②『Enabled』をダブルクリックします。
値を編集する
『DWORD(32ビット)値の編集』というダイアログが表示されるので、

①『値のデータ』を『0』から『1』に修正します。
②『OK』ボタンをクリックします。
レジストリの書き換え2
レジストリキーを開く
今度は、
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config
にアクセスします。

先ほどと同じように、上のレジストリフォルダ名をコピーして①の欄に貼りつけると良いでしょう。

②『AnnounceFlags』をダブルクリックします。
値を編集する
『DWORD(32ビット)値の編集』というダイアログが表示されるので、

①『値のデータ』を『a』から『5』に修正します。
②『OK』ボタンをクリックします。
以上でレジストリエディタでの作業は終了です。
ファイアウォールの設定
次に、外部からのNTPリクエストが届くようにファイアウォールの設定を変更します。
ファイアウォール設定画面を開く

①レジストリエディタの起動の時と同様、画面下部のウィンドウズボタンの隣にある虫眼鏡のアイコンをクリックします。

②検索画面が表示されるので、上部の入力欄に『ファイアウォール』と入力します。
③検索候補として『ファイアウォールとネットワーク保護』が表示されるので、クリックします。
詳細設定画面を開く

『ファイアウォールとネットワークの保護』の画面が開くので、
④『詳細設定』をクリックします
新しいルールの追加
『新規の受信規則ウィザード』を表示する

『セキュリティが強化されたWindows Defender ファイアウォール』の設定画面が表示されるので、
①『受信の規則』をクリックします。

②『新しい規則』をクリックします。
新規の受信規則ウィザード
規則の種類

『新規の受信の規則ウィザード』ダイアログが表示されるので、
③『ポート』をクリックします。
④『次へ』ボタンをクリックします。
プロトコルおよびポート

⑤『UDP』をクリックします。
⑥『特定のローカルポート』の右の入力欄に『123』と入力します。
⑦『次へ』ボタンをクリックします。
操作

『接続を許可する』が選択されていることを確認して、
⑧『次へ』をクリックします。
プロファイル

アクセスを許可したい範囲にチェックを入れて、⑨『次へ』をクリックします。
名前

⑩『名前』の欄に、何のルールかわかるように適当な名前を入力します(たとえば『NTP』)。
⑪『完了』をクリックします。
以上で、ファイアウォールの設定は完了です。
NTPサーバの起動/終了
これで準備ができましたので、NTPサーバを起動してみましょう。
管理者権限でコマンドプロンプトを開く

①レジストリエディタの起動の時と同様、画面下部のウィンドウズボタンの隣にある虫眼鏡のアイコンをクリックします。

②検索画面が表示されるので、上部の入力欄に『cmd』と入力します。
③検索候補として『コマンドプロンプト』が表示されるので、右の『管理者として実行』をクリックします。
コマンド入力
時刻サーバの停止
まず、既に動いている時刻サーバがあった場合は一旦停止します。
コマンドプロンプトが表示されたら、
net stop w32time
と入力します。

このように、『Windows Time サービスは正常に停止されました。』と表示されればOKです。

または、このように『Windows Time サービスは開始されていません』と表示された場合も、最初からNTPサーバが動作していなかったと言うだけなのでOKです(というか、初めて時刻サーバとして動作させるならこちらが出るのが当然です)。
時刻サーバの起動
今度は時刻サーバを起動します。前のコマンドに続けて、
net start w32time
と入力します。

『Windows Time サービスは正常に開始されました。』と表示されたら、NTPサーバが正常に起動しています。
以上で、Windows PCをNTPサーバとして動作させることができました。ネットワークの各種実験などに利用してください。
まとめ
- Windows は、適切にレジストリを編集することでNTPサーバとして動作させることができる
コメント