最終更新:2007/11/5

用意するもの
FreeBSDの場合は特になし

NTPの接続サーバには国内ではNICTかMFEEDを利用するのがよいでしょう。
どちらを利用するかは経路の近い方を選らんでください。

ntpdを起動するにあたって、内蔵時間があまりにもずれ過ぎていると
起動しないらしいので、先にntpdateでずれを修正します。

# ntpdate ntp.jst.mfeed.ad.jp

手動でNTPサービスを起動する場合は

# /etc/rc.d/ntpd start

で起動します。
設定を変更したら、

# /etc/rc.d/ntpd restart

で再起動させます。
次回マシン起動時から自動でntpdが起動します。

※ntpdが古い場合は -4 オプションを受け付けないことがあるので
  その場合は付けないか、ntpdを最新にアップデートしてください。

動作確認
$ ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*ntp1.jst.mfeed. 210.173.160.86   2 u   99  128  377   15.529   -2.307   0.328
+ntp2.jst.mfeed. 133.243.236.20   2 u  113  128  377   16.100   -2.119   0.682
+ntp3.jst.mfeed. 210.173.176.251  2 u  109  128  377   15.300   -2.475   0.710

しばらくすると上記のようにremoteの欄の先頭に*や+がつきます。
*が同期中のサーバ、+は同期していないが精度が確保されたもの。
先頭に何もないのは同期準備中か利用できないサーバ。
when は前回参照から経過した秒数
poll は参照する間隔(秒数)
offset はNTPサーバとのずれ(ミリ秒)
その他はマニュアルをみてください。
時間と共にoffsetが小さくなりより正確になっていきます。

さて、このままですとこのNTPサーバにだれでもアクセスできるようになります。
プライベートなLANで使うならばこのままでも問題にはならないでしょう。
もしグローバルに出すならばアクセス制限をしないと無駄な帯域を使われてしまいます。

制限するには/etc/ntp.confでrestrictを使います。
まずは誰も使えないように制限して必要なIPを後ろに追加する形になります。
なお、接続する上位のNTPサーバも忘れずに指定しないと、
NTPサーバ間の通信もできないので同期しなくなります。

この例では192.168.2.20などからは許可されるので、
桜時計を使ってWindowsから確認してみましょう。
ホスト確認エラーがでる場合はDNSで名前解決ができていないので、
プライベートのDNSを設置するかもしくはhostsファイルに追加します。
Windowsディレクトリ(XPならばC:\WINDOWS)の中にある
system32\drivers\etc\hosts にNTPサーバのIPを登録します。
標準ではlocalhostしか登録されていません。

C:\windows\system32\drivers\etc\hosts
192.168.2.31  minerva.peach.ne.jp.private

これで桜時計でも設定されるようになります。

NICTを選んだ場合
/etc/ntp.conf
server -4 ntp.nict.jp iburst
server -4 ntp.nict.jp iburst
server -4 ntp.nict.jp iburst
driftfile /var/db/ntpd.drift

MFEEDを選んだ場合
/etc/ntp.conf
server -4 ntp1.jst.mfeed.ad.jp iburst
server -4 ntp2.jst.mfeed.ad.jp iburst
server -4 ntp3.jst.mfeed.ad.jp iburst
driftfile /var/db/ntpd.drift

共通事項
/etc/rc.conf
ntpd_enable="YES"

アクセス制限の例
/etc/ntp.conf
  .
  .
  .
# まずはすべてのアドレスからの利用を禁止
restrict default notrust nomodify noquery ignore
# ループバック(自分自身)からは許可
restrict 127.0.0.1 mask 255.255.255.255
# プライベートからは問い合わせのみ可能
restrict 192.168.2.0 mask 255.255.255.0 nomodify noquery
# ntp.jst.mfeed.ad.jp のサーバは許可
restrict 210.173.160.27 mask 255.255.255.255
restrict 210.173.160.57 mask 255.255.255.255
restrict 210.173.160.87 mask 255.255.255.255
  .
  .
  .

※あくまで例ですので自分のIPアドレスなどに合わせて書き換えしてください。
※補足※ 2007/11/5

検索エンジンからの訪問が多いので補足しておきます。 設定するNTPサーバには複数のstratumを混ぜないように注意します。 上位のstratumは精度が悪くても優先されます。(ntpq -pで表示されるstフィールドの値をみてください) driftfileは起動時になくても自動的に作成されます。以後1時間毎にこのファイルが更新されます。 ラウンドロビンになっているIPを調べるには、hostコマンドを利用します。

# host ntp.nict.jp
ntp.nict.jp has address 133.243.238.243
ntp.nict.jp has address 133.243.238.244
ntp.nict.jp has address 133.243.238.163
ntp.nict.jp has address 133.243.238.164
ntp.nict.jp has IPv6 address 2001:2f8:29:100::fff4
ntp.nict.jp has IPv6 address 2001:2f8:29:100::fff3

こんな感じでIPアドレスがまとめて取得できます。上記は2007年11月5日の情報です。


国内NTPサービス:
NICT 公開 NTP サービス
インターネットマルチフィード時刻情報サービス