自宅サーバに初心者が挑戦します!
トップ >>  その他 

NTPで時刻を合わせる(Unix)
March 11, 2006:更新

 NTPとは、Network Time Protocol の略で、単純に計算機(PC)の時計を合わせるプロトコルを指します。このプロトコルを利用して、国内もしくは海外の標準時間を保っているサーバにアクセスして、自分の計算機(PC)の時刻を合わせます。

 あまり時間にこだわらないよ。なんて言ってみたいものですが(笑)、ログやアプリケーション、HTMLなどで最終更新時間を扱うものがある場合には、時計が狂っているとかなりやっかいなものです。いつ何をしたんだかさっぱり分からなくなってしまいます。また、自宅サーバなどでCPUのパワーが少ないマシンでサーバを構築した場合、かなりの頻度で時計が遅れたりします。

 こういった場合にも是非とも基本として、自宅サーバの時計は標準時に合わせておきたいものです・・。

 実際にサーバの時計を合わせる方法は2つあります。
1. ntpdate を cron で実行する。
2. NTPd を起動して定期的に時計を合わせる。

 ここでは両方の方法について説明していきたいと思います。




■ntpdate で時計を合わせる

 この方法は非常に単純です。ntpdate という NTPサーバにアクセスして時計を合わせるコマンドを定期的に実行します。コマンドの実行方法は簡単で、

# ntpdate <NTPサーバ>

 です。NTPサーバは加入しているプロバイダが提供しているNTPサーバを利用するのがよろしいかと思います。もしくはGoogleで検索して、公開されているNTPサーバを使いましょう。

 で、このコマンドを定期的に実行します。

# crontab -e
 これを実行して、下記の一行を追加します。
0 0 * * * /usr/sbin/ntpdate <NTPサーバ>

 最後に、crontab -l で追加されている事が確認できれば完了です。




■NTPのインストール

 実際にNTPサーバを立てて、自宅サーバの時計を合わせます。この方法と前述のntpdate の併用はできませんのでご注意下さい。
 
 まずはNTPをインストールします。

# yum install ntp

 インストールされたら、設定ファイルを編集します。編集ファイルはデフォルトでは、/etc/ntp.conf に置かれます。

 まずは、アクセス制限に対するデフォルトの設定を行います。これはインストールされたままで良いでしょう。

restrict default nomodify notrap noquery

 もしくは、restrict ignore でも良いかと思います。単にデフォルトの設定では、NTPに関するやりとりをしないという事になります。

 続いて、アクセスするNTPサーバとの通信を許可します。

restrict 127.0.0.1
restrict ntp.dnsbalance.ring.gr.jp

 ここの例では、ローカルホスト(つまり自宅サーバそのもの)と、ntp.dnsbalance.ring.gr.jp というサーバのみの通信を許可しています。ちなみに、ntp.dnsbalance.ring.gr.jp を登録しているだけで、いくつかのNTPサーバと自動的に通信ができます。

 さらに、上位のNTPサーバを記述します。ここにリストされたNTPサーバに実際に時計を合わせにいきます。複数ある場合には、複数行に渡って書きます。

server ntp.dnsbalance.ring.gr.jp

 最後に、もしも自宅LAN内で、他のパソコンがこの自宅サーバに時計を合わせに来る場合を想定して、この設定を追加しておきます。

restrict 192.168.0.0 mask 255.255.255.0 notrust nomodify notrap

ここで、IPアドレスとサブネットは自宅のLAN環境に合わせて変更して下さい。また、その後に続くオプションは、
notrust:時計を合わせに応じるが、自身の時計には使用しない
nomodify:時計合わせに応じるが、時刻の要求変更などは無視
notrap:指定したサーバに状態変更時にトラップをあげない

 ここまでで基本的な設定は終了です。

 サーバ起動時に立ち上がるように設定します。

# chkconfig --level 35 ntpd on


 さて、ここまで説明しましたが、実際に自宅LANにNTPで時計を合わせなくてはならないサーバが特に無ければNTPデーモンを起動する必要は無いでしょう。ntpdate コマンドをcronで起動するだけで十分でしょう。


トップ >>  その他