Filed under:
>>
社内 LAN の PC は FireWall に阻まれて外部の SNTP サーバにアクセスできないため、正確な時刻合わせができない。Windows だと HTTP 経由で時刻合わせをしてくれるソフト[AdjustClock]があるので、これを使えばよいが、Mac ではそうもいかない。そこで、AdjustClock をインストールしたマシンを SNTP サーバとして稼働し、こいつを参照して時刻を合わせるようにした。
0. まえおき
はじめに断っておくが、インターネット経由で NTP、SNTP サーバにアクセスできるのであれば、こんなややこしいことはしなくてもよい。
使用したOSは Windows 2000 および Mac OS X Panther。NT もしくは 9x系 では下記の方法で SNTP サーバは動かない。
1. Windows の時計合わせ
まず、Windows2000 に AdjsutClock をインストールして、スタートアップに登録、常駐する設定を行う。また、1日に2回程度時刻合わせを行うようにしておく。(設定方法は添付の ReadMe 書類を参照のこと。また、Windows にログオンせずに AdjustClock が動作するようにサービス化するのがよいのかもしれないが、そこまではやっていない。)
これで Windows マシンの時刻合わせは OK。
2. NTP サーバを稼働させる
ややこしいのはここから。Mac には AdjustClock のようなソフトが無いようなので、上記 Windows マシンの時計に合わせるようにする。Windows 2000 に標準添付されているサービス W32Time は SNTP クライアントとして時計合わせを行う機能の他、サーバとしても機能するので、これを利用する。うちの場合ワークグループ形態となっているので、このサービスは稼働していない。そこで、OS 起動時に W32Time が稼働するようにしておく。設定方法は下記のページを参照のこと。
[NTPでネットワーク全体のマシンの時刻を合わせる(1)]
実はこれだけでは、クライアントとしてしか動かない(マシンがドメインコントローラではない場合)。サーバとして動作させるためには W32Time のレジストリ値を変更する必要がある。レジストリ値を下手にいじると、最悪 OS が動作しなくなることもあるので慎重に行うこと。変更する値については下記を参照のこと。
[W32Time サービスのレジストリ エントリ]
ただし、上記サービスを動かすと一定周期ごとに SNTP サーバを参照しにいくが、うちのネットワークにはサーバが存在しない(アクセスできない)ため、システムログに警告が書き込まれることになる。W32Time のレジストリ値を変更することで、サーバを参照する周期を変えることができるが、あまりいじりたくないのでデフォルトのままにしている。変更方法は下記参照。
[W32Time サービスのレジストリ エントリ]
3. Mac の時計合わせ
あとは Mac で Windows 2000 のマシンを参照するよう設定する。[システム環境設定]->[日付と時刻]の[日付と時刻]タブを開いて、「日付と時刻を自動的に設定」にチェックを入れて、右のフォームに Windows マシンの IP アドレスを入れればおしまい。
4. 独り言
ちなみに Windows 2000 ではなく、Windows XP の場合、レジストリをいじらなくても NTP サーバが起動するらしい。
[NTPでネットワーク全体のマシンの時刻を合わせる(2)]
Mac OS X でも net time コマンドで時刻合わせができるんじゃないか思うのだが、やり方がよくわからない...