時間を合わせる (NTP)

| | コメント(2) | トラックバック(0)

NTP (Network Time Protocol) はネットワーク経由でコンピュータの時間を合わせるプロトコルです。
NTP time サーバに、定期的に時刻を問い合わせて、各マシンの時間を合わせます。

特にサーバは時間を正確にあわせておきましょう。
サービスを提供するマシンの時間が狂っていたり、ログの時間が狂っていては困ります。

NTP time サーバ

・Public NTP Time Servers
http://www.eecis.udel.edu/~mills/ntp/servers.html

公に利用可能なNTP Time Serverのリストへのリンクがあります。
具体的には、第1階層 (stratum 1)のリスト第2階層 (stratum 2)のリスト

このリストにある日本国内のサーバーは、

・第1階層 (stratum 1)

  • clock.nc.fukuoka-u.ac.jp
  • clock.tl.fukuoka-u.ac.jp

・第2階層 (stratum 2)

  • ntp.cyber-fleet.net

の計3つがあるようです。

WindowsXPでは、デフォルトで

  • time.windows.com

がセットしてありました。
WindowsXPユーザなら使っていいということかな?

LAN内で使用する場合は、1台だけNTPサーバを用意し、上記NTPサーバから時間を取得します。
そしてLAN内の他のマシンは自分で用意したNTPサーバに問い合わせするのが良いようです。
理由は、トラフィックを減らすため。

(2004/12/21 追記 ここから)
なんとなく追加。

・国内公開 ntp サイト一覧
http://plamo.minidns.net/ntpsites.shtml

・ntp.conf に書くべきでないサーバ名
http://plamo.minidns.net/ntpdeprecated.shtml
(2004/12/21 追記 ここまで)

● 福岡大学のNTPサーバ じゃないところの例 (2005/02/19/ 追記)

ちょっと前に話題になったことですが、福岡大学のNTPサーバ (clock.nc.fukuoka-u.ac.jp) が混みこみだそうで。

それで、例えばどこのNTPサーバーに設定するかという話。

[connect24h:8309] 福岡大学の NTP サーバの混雑緩和協力のお願い」から始まるスレッドより。

福岡大学NTPサーバの混雑解消にご協力を (/.J)」にも色々書いてありそう。

(2005/03/18 追記 ここから)
・New service : ntp.ring.gr.jp
http://www.ring.gr.jp/ring/ntp.html.ja
Ring Server ProjectがNTP サーバのサービスを開始しました。

  • ntp.ring.gr.jp
● [Tips] /etc/ntp.conf の書き方の例その1(server 行に同じ ntp.ring.gr.jp を並べるのがミソ)

------------------------------------------------
driftfile /var/lib/ntp/ntp.drift

server ntp.ring.gr.jp
server ntp.ring.gr.jp
server ntp.ring.gr.jp
------------------------------------------------

● [Tips] /etc/ntp.conf の書き方の例その2(例その1ではうまくラウンドロビンしない場合)

------------------------------------------------
driftfile /var/lib/ntp/ntp.drift

server ntp0.ring.gr.jp
server ntp1.ring.gr.jp
server ntp2.ring.gr.jp
------------------------------------------------
NTP service : ntp.ring.gr.jp

server 行に同じ ntp.ring.gr.jp を並べるのがミソ」だそうです。
特定のサーバに負荷がかからないように、Ring Server Project参加組織のサーバで分散してサービスを提供する仕組みになって」て、DNSラウンドロビンしているからですかね?
(2005/03/18 追記 ここまで)

(2005/06/01 追記 ここから)
・NTP/推奨公開サーバ - wiki@nothing
http://wiki.nothing.sh/page/NTP/%BF%E4%BE%A9%B8%F8%B3%AB%A5%B5%A1%BC%A5%D0

・NTP/プロバイダ・機関別 - wiki@nothing
http://wiki.nothing.sh/page?cmd=read&\1page=NTP%2F%A5%D7%A5%ED%A5%D0%A5%A4%A5%C0%A1%A6%B5%A1%B4%D8%CA%CC
(2005/06/01 追記 ここまで)

(2006/06/13 追記 ここから)
・NICT 公開 NTP サービス
http://www2.nict.go.jp/w/w114/stsi/PubNtp/

NICTが日本標準時との誤差が10ナノ秒以内で、毎秒100万回のリクエストにも対応するという公開NTPサービスを開始した
窓の杜 - 【NEWS】情報通信研究機構、"NTP時刻合わせソフト"の開発・アイデアコンテストを開催

だそうです。

・ntpd の場合 (Linux や FreeBSD など)
server ntp.nict.jp
server ntp.nict.jp
server ntp.nict.jp
(同じ内容を3行書くのが重要)
NICT公開NTP FAQ

ここでも、3行書くのが重要だそうだ。
nslookupすると、複数のIPアドレスが返ってきました。
(2006/06/13 追記 ここまで)

時間の合わせ方

・時刻を手動で直ちに同期させる − @IT
http://www.atmarkit.co.jp/fwin2k/win2ktips/703adjtime/adjtime.html

ネットワークで時刻を同期するためのプロトコルとしてSNTPとNTPがある。NTPは階層的で大規模な時刻情報の管理を行うためのプロトコルで、SNTPはクライアント側の時刻設定を目的としたNTPのサブセットに当たるプロトコルである。これとは別にMS-DOSやWindows 95といった古いOSでも利用できるWindows OSのファイル共有サービス(SMBプロトコル)を使った時刻同期の仕組みもある。
時刻を手動で直ちに同期させる − @IT

・@IT:Windows TIPS -- Knowledge:NTPでネットワーク全体のマシンの時刻を合わせる
http://www.atmarkit.co.jp/fwin2k/win2ktips/050nettime/nettime.html

● net timeコマンドでの時刻同期 (手動) (2007/02/18 追記)

「net time」コマンドは、SMBプロトコルによる時刻同期を行っている。

net timeコマンドは、Windows OSネットワーク独自の同期用プロトコルを利用しているため、参照するタイム・サーバがWindows OSで運用されている必要がある(あるいはSambaサービスを実行しているUNIX系OSでもよい)。
時刻を手動で直ちに同期させる − @IT
// ドメインにログオンしている場合。
// タイム・サーバは、プライマリ・ドメイン・コントローラ(PDC)
C:\> net time /set
// ワークグループの場合 or タイム・サーバを指定する場合。
C:\> net time \\192.168.99.10 /set

● w32tmコマンドで時刻同期する場合 (2007/02/18 追記)

「w32tm」コマンドは、NTP(SNTP)プロトコルによって同期を行う。
「w32tm」コマンドは、「Windows Timeサービス」 (W32Time) を制御するためのコマンド。

// ヘルプの表示
C:\> w32tm /?
 
// タイムサーバを設定する (方法1)
C:\> w32tm /config /manualpeerlist:タイム・サーバのアドレス
C:\> w32tm /update
// タイムサーバを設定する (方法2)
C:\> net time /setsntp:タイム・サーバのアドレス
 
// すぐに、ローカルコンピュータの時刻同期を行う
// w32tmコマンドでのデフォルトのタイム・サーバは、
// ワークグループの場合は「time.windows.com」、
// ドメインの場合はドメイン内で時刻を同期できるサーバ。(PDC?)
C:\> w32tm /resync /nowait

● Windows2000で「Windows Time」サービスを使う

「Windows Time」サービスはWindows2000の標準のサービスです。
しかし標準ではこのサービスは開始になっていません。
以下を実行します。

コマンドプロンプトで以下を実行します。
(「w32tm」コマンドを使っても設定できるはず?)

# とりあえずヘルプを見てみる
C:\> net time /?
このコマンドの構文は次のとおりです:
 
NET TIME [\\コンピュータ名 | /DOMAIN[:ドメイン名] | /RTSDOMAIN[:ドメイン名]] [/SET]
         [\\コンピュータ名] /QUERYSNTP
         [\\コンピュータ名] /SETSNTP[:NTP サーバーの一覧]
 
# 現在のNTPサーバを確認する
C:\> net time /QUERYSNTP
このコンピュータは現在、特定の SNTP サーバーを使用するよう構成されていません。
 
コマンドは正常に終了しました。
 
# NTPサーバをセットする
# 使用するNTPサーバを指定してください
C:\> net time /SETSNTP:clock.example.jp
コマンドは正常に終了しました。
 
# セットしたNTPサーバを確認する
C:\> net time /QUERYSNTP
現在の SNTP 値: clock.example.jp
 
コマンドは正常に終了しました。

これで、NTPサーバの設定ができました。
次に、「Windows Time」サービスを開始します。
サービスのスタートアップの種類を「自動」にしておくと良いでしょう。

複数のNTPサーバを指定したい場合は、「,(カンマ)」で区切るみたい。

C:\> net time /SETSNTP:clock.example.jp,ntp.example2.jp,time.example.com

イベントビューアのシステムログにログが残ります。
どうやら、Windows起動時に時間を合わせているようです。
おそらく定期的に時間をチェックしてると思いますが、その間隔がどれくらいかは分かりませんでした(→以下に追記しました。参照のこと)。
また、12時間以上時間が狂っていると修正できないようです。(あれ?デフォルト値は15時間以上かも?)

(2004/12/15 追記 ここから)
あわせるタイミングについて説明を見つけたので書いておきます。
サービスが開始していれば、常に一定間隔ごとに見ているようですね。

各クライアントにおいて、Windows Timeサービスが起動すると、Windows Timeサービス(SNTPサービス)を実行しているドメイン・コントローラを自動的に検索して、SNTPプロトコルで現在の時刻を問い合わせ、ずれがあればローカルのシステム時刻情報が修正される。この場合、ローカルの時刻が正確な時刻よりも遅れているか、3分以上進んでいる場合は直ちにローカルのシステム時刻の修正が行われる。3分以内の進みならば、ローカルのシステム・クロックの進み方を遅らせて、数分かけて徐々に正確な時刻に近づける(すぐに修正すると、時刻情報に基づいて動作しているプログラムなどに支障が出る可能性があるため)。さらに、その後は数十分〜数時間ごとに基準時刻とのずれを調べ、必要ならば修正が行われる。
Windows TIPS -- Knowledge:NTPでネットワーク全体のマシンの時刻を合わせる

(2004/12/15 追記 ここまで)

(2007/08/23 追記 ここから)
Windowsのバージョンによって、Windows Timeサービスの動作は違うようです。

例えば、以下のような違いがあるようです。
Windows Timeサービスにも「slew(スルー)モード」のような実装は存在しますが、時刻の進みが決められたしきい値以内でなければ(つまり実際の時刻より遅いか、決められた時間以上進んでいる状態ならば)、時刻が一気に同期します。この決められたしきい値はWindowsのバージョンによって異なるとのこと。

※ 「slew(スルー)モード」:「時刻の進み方を(実際の時間よりも)少しずつ遅らせて」、時刻そのものは後戻りせずに、ゆっくりと同期させる方法。

* Windows 2000では3分以内のずれ(進み)で同様の動作をする実装があるが、Windows XPおよびWindows Server 2003では実装が変更され、ドメインに参加した環境では5分以内、ワークグループ環境では1秒以内となっている。
Windows OSにおける時刻同期サービスとNTP − @IT

(2007/08/23 追記 ここまで)

● WindowsXPで「Windows Time」サービスを使う

WindowsXPの場合は,GUIから設定ができます。
「コントロールパネル」>「日付と時刻」>「インターネット時刻」タブ を開きます。
「自動的にインターネット時刻サーバーと同期する」にチェックを入れ、サーバー名を入力します。
サーバ名はデフォルトでは、「time.windows.com」が入力されていると思います。

デフォルトでは,1週間に一度同期を行います。
この更新間隔を変更するにはレジストリを変更する必要があります。
「HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient」キーの、「SpecialPollInterval」の値のデータを編集します。
この値に同期をとりにいく間隔を秒数で指定します。
デフォルトでは、1週間なので、1x7x24x60x60=604800(秒)が指定されています。

● 桜時計を使う

上記サービスが使えないWindows9xなどで使うと良いでしょう。

・桜時計
http://www.venus.dti.ne.jp/~uno/

桜時計は、インターネット(あるいはイントラネット)上の、NTP(Network TimeProtocol)サーバー、あるいはSNTP(Simple Network Time Protocol)サーバーにアクセスして、パソコンの内蔵時計の狂いを修正するためのソフトです。
SNTPサーバーとしても動作させることもできます。
スタートアップに登録しておくと良いでしょう。

また、スタートアップに登録ではログインしないと桜時計が起動しないので、サービスとして使いたいかもしれません。
そういう時は、(桜時計をWindows NTでサービス化する方法)をご覧下さい。(今アクセスしてみたらアクセスできませんでした。一時的に落ちてるのか、もう使えないのか分からないので一応リンクを載せておきます。)
この場合、リソースキット(instsrv.exe?)が必要になるようです。
次に説明するAdjustPCはリソースキットなしにサービスとして動かすことができます。

● AdjustPCを使う (良さげです)

・AdjustPC
http://www.geocities.co.jp/SiliconValley-PaloAlto/5362/Software/AdjustPC/

AdjustPC は、インターネット上のSNTPサーバを利用してパソコンの内蔵時計の狂いを調整するプログラムです。Windows95/98および WindowsNT4.0/2000/XPに対応したフリーソフトウェアです。
サーバとして機能させることもできます。
別途リソースキットを準備しなくてもサービスとして起動できます。

インストーラーが付属しています。
コントロールパネルに「AdjustPC」が追加されるのでそこで設定を行います。
スケジュールや、誤差許容範囲など細かい設定を行うことができます。

● AboutTimeを使う (2004/05/24 追記)

・ AboutTime Home Page
http://www.arachnoid.com/abouttime/
サービスとしては動かないみたい。
「IE4.0が必要な AboutTime」と「IE4.0が必要ない AboutTime」があります。

Time Serverとしても動くようです。
AboutTime Time Serversタブ

Proxy/Firewallがあっても、ネットワーク管理者に適当なPortで穴をあけてもらえば使えそうです。
AboutTime Optionsタブ

Serverとして動くので、外部のNTPサーバーに問い合わせするのは1台だけにして、他のPCはこの1台のパソコンに問い合わせをすると良いでしょう。

ファイヤーウォール環境下で時間を合わせる

● AdjustClock (2004/05/16 追記)

・RedWing's HomePage.
http://homepage1.nifty.com/redwing/

「Software」>「AdjustClock」とたどるとダウンロードできます。
リファラを見ているようで、リファラがないとトップページに戻されてしまいます。
JavaScriptで対応してるっぽいので、JavaScriptがオフなら直にこちら (AdjustClock)からいけるはずです。

AdjustClockはntp、sntpプロトコルが使用出来ないようなプロキシー接続環境にてHTTPプロトコルにてPC内部時計を日本標準時に合わせるソフトウェアです。
AdjustClock (SoftWareのご紹介。)

Proxy認証に対応しています。
ファイヤーウォールでポート123が閉じていても、HTTPが通れば時間合わせができます。

「http://nist.time.gov/timezone.cgi?palau/s/9」にリクエストを送って時間を確認してる模様。
HTTPプロトコル経由のため3秒程度の遅れが生じる可能性があるとの事。

NTサービスとして動作しません。
普通のプログラムをサービスとして動かす「sexe.exe」が同梱配布されています。

リンク

● 記事

(2007/08/23 追記 ここから)
・Windows OSにおける時刻同期サービスとNTP − @IT
http://www.atmarkit.co.jp/fwin2k/operation/winntp01/winntp01_01.html
このシリーズは、Windows Timeサービスについて詳しい。
(2007/08/23 追記 ここまで)

(2009/10/14 追記 ここから)
・W32Time サービスのレジストリ エントリ
http://support.microsoft.com/default.aspx?scid=kb;ja;223184
レジストリを変更して、動作を変更する方法
(2009/10/14 追記 ここまで)

● 私のメモに残ってたNTPソフト

・ CzWTime/Pitari@voice
http://www.dfm.jp/go/cozy.html


・AboutTime MSIE VersionVer.4.8
http://www.arachnoid.com/abouttime/

本文に追加しました。 (2004/05/24)

その他

(2004/08/02 追記 ここから)
・JST Clock
http://www2.nict.go.jp/cgi-bin/JST.pl
NTPで時間を合わせたWWWサーバから時刻情報を取得し、ブラウザ側でJavaScriptを使って時計表示を自走させています。
ネットワークの混み具合により時刻が狂うので、正確な時刻ではありませんが、どの程度狂ってるか手軽に調べられるので好き。
(2004/08/02 追記 ここまで)

(2004/08/17 追記 ここから)
・TimeTune パソコン時計合わせツール / TimeTuneService パソコン時計合わせサービス
http://www.beesknees.org/timetune.htm
NTP、HTTPを利用してパソコン内蔵時計を調整するソフト
TimeTune(普通のプログラム/フリーソフト)とTimeTuneService(NT系OSのサービスプログラム/シェアウェア)があります。
幾つかのNTPサーバが初めから登録されているそうです。
(2004/08/17 追記 ここまで)

トラックバック(0)

このブログ記事を参照しているブログ一覧: 時間を合わせる (NTP)

このブログ記事に対するトラックバックURL: http://kinshachi.ddo.jp/mt/mt-tb.cgi/3

コメント(2)

Dshield でも簡単に紹介がありますね。

以下のページの Set Your Time の項目(後半のほう)に、

● AdjustTime というソフトウェアの使い方
● Firewall なマシンを経由し、 HTTP を通して時刻あわせを行うページ

が紹介されてます。

http://www.dshield.org/windows_clients.php

ike :

YamaKenさん。
「AboutTime」を簡単に追加してみました。

DShieldにfirewall/IDSログを提出する時に
http://www.dshield.org/timestamp.php
にアクセスすると、ログとDShieldの時間が分かって補正できるという仕組みかしら?
なかなか面白そうな仕組みですね?
分かってないかも>自分

コメントする


画像の中に見える文字を入力してください。

このブログ記事について

このページは、ikeが2003年10月19日 21:15に書いたブログ記事です。

ひとつ前のブログ記事は「Tabbrowser Extensions」です。

次のブログ記事は「Venkman」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

最近のコメント

On 時間を合わせる (NTP)
  • ike: YamaKenさん。 「AboutTim
  • YamaKen: Dshield でも簡単に紹介があります
Powered by Movable Type 4.261