windows xpをNTPサーバにする

自宅のLANにはWindowsのPCが何台もある。
外部の信頼できる機関のNTPサーバさまにアクセスさせていただき、時刻同期をしてもいいのだが、NTPサーバ<ー>NTPクライアント(自分のWindowsマシン)のネットワーク的な距離は近い方がいいとのこと。
そこでLAN内にNTPサーバを立てて、LAN内のマシンはそのNTPサーバに対して時刻同期しようということになった。そのマシンは24H起動してるしね。

NTPサーバは、ネットワーク的に近いサーバを選択するのが大原則。 まずは自分の利用しているプロバイダがNTPサーバを提供してるか確認しましょう。
WindowsやMacintoshの初期設定NTPサーバは海外にあり、更に多くのアクセスが集中しているため、精度・速度ともに不安定です。

よくわからなくても「ntp.jst.mfeed.ad.jp」「ntp.nict.jp」「ntp.ring.gr.jp」のいずれかを選んでWindowsやMac OS X の方法で変更するだけでも、ひとまずOK。

http://wiki.nothing.sh/page/NTP

自分のプロバイダを調べたが、会員向けにntpサーバは公開していないようだ。

windowsだと、デフォルトで time.windows.com が登録されているので、まーむりにやらなくてもいいんですが、それでも時々時間がずれているような気がして、あと、暇なのでやってみることにします。

(1)NTP(インターネット時刻同期)の設定方法(クライアント側)

<Vistaの場合>
・画面右下の時間 9:12 などの時間表示をシングルクリック
・「日付と時刻の設定の変更」をクリック
・「インターネット時刻」タブ
・設定の変更
・「インターネット時刻サーバと同期する」にチェックが入っていなければ
 チェックをいれる
・サーバ(E)に、指定したいNTPサーバのIP or ホスト名を入れて、
 「今すぐ更新(U)」
 デフォルトでは time.windows.comがはいっているので、それでもいい。
 「時計は正常に2010/xx/xx xx:xxに サーバ名or IPと同期しました。」
 とでればOK. エラーが出る場合は、別のNTPサーバを指定するか、
 ネットワーク設定を見直す。

<XPの場合>
・画面右下の時間 9:12 などの時間表示をダブルクリック
・「インターネット時刻」タブ
・「自動的にインターネット時刻サーバと同期する(S)」にチェックが入っていなければチェックを入れる
・「サーバー:」欄に、指定したいNTPサーバのIP or ホスト名を入れて、
 「今すぐ更新(U)」
 デフォルトでは time.windows.comがはいっているので、それでもいい。
 「時計は正常に2010/xx/xx xx:xxに サーバ名or IPと同期しました。」
 とでればOK. エラーが出る場合は、別のNTPサーバを指定するか、
 ネットワーク設定を見直す。

(2)NTPサーバの設定(WindowsXP pro)

・予め、上記■(1)の設定をやっておく
・念のため 117 に電話して、NTPサーバにするマシンの時間があっているか確認する
・「ファイル名を指定して実行」 or Windowsキー+「R」から
 regedit
 とうって、レジストリエディターを開く
・下記設定値を変更
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config\AnnounceFlags
の値を 5にする(デフォルトはa)

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer\Enabled
の値を1にする(デフォルトも1)

・レジストリエディターを終了

・コマンドプロンプト上で下記コマンドをうって、時刻同期サービスを再起動する(xntpdを再起動するようなイメージ)
net stop w32time && net start w32time

・コントロールパネル→「Windowsファイアウォール」→「例外」タブ
 →ポートの追加
 →「名前」にntp とか 時刻同期 とか適当に
 →「ポート番号」に 123 と入力
 → UDP にチェック
 → OK

・これでオッケー。ぼくは Windowsファイアーウォールの穴あけができていなくて、ずっと失敗してました。
・ 下記のサイトに詳しく書いてます。

 Windows XP で権限のあるタイム サーバーを構成する方法:
  http://support.microsoft.com/kb/314054/

(3) 同一LAN上の各マシンで時刻同期の設定

・前述の■(1)の NTPサーバ指定するところで、 ■(2)で設定したWindowsマシンのIPを入れるだけ! わざと時間をずらしてから「今すぐ更新」をしてみて、正しく修正されるか確認しましょう!
・それから、せっかくLAN内のサーバを設定したのですから、同期間隔を短くしてみましょう(デフォルトだと7日です!)
・regeditで 下記設定値をかえます
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient\SpecialPollInterval
10進数で900(900秒=15分です。デフォルトは16進数で93a80秒=7日)
・レジストリエディターを終了

・コマンドプロンプト上で下記コマンドをうって、時刻同期サービスを再起動する(xntpdを再起動するようなイメージ)
net stop w32time && net start w32time
・画面右下の時間をクリック(XPならダブルクリック)→日付と時刻の設定の変更
 →インターネット時刻タブ
 →「次回の同期」が15分後になっていることを確認します。

(4)その他

・フリーソフトの紹介

・iネッ時計 〜 インターネット時刻補正 〜 1.08:
 http://www.vector.co.jp/download/file/win95/personal/fh461052.html
 Windowsのデフォルト時刻同期サービスである「Windows Time(w32time)」を使わずに、時刻同期ができるようになるフリーソフト。NTPクライアントと NTPサーバ の二つが同梱されている。

・NTPの説明(wiki):
 http://wiki.nothing.sh/page/NTP

・Windows XP で権限のあるタイム サーバーを構成する方法:
  http://support.microsoft.com/kb/314054/

・iPhoneの時刻同期(=PCとUSBでつなぐだけ!)

iPhone は実は今まで PC と同期しても時刻の同期なんかはしてくれなかったのですが、 iTunes 9 + iPhone OS 3.1 の組み合わせでできるようになったようです。
(thanks iPhone通信 〜 2chスレまとめ iPhone 3GS Part 35)

http://kengo.preston-net.com/archives/004278.shtml

以上でーす