1. ports
ntpd は比較的長い歴史のあるプログラムですが、案外、頻繁に更新が行われます。
デフォルトで /usr/sbin/ntpd が存在していますが、portsから、最新版を取得して、更新が発生したらすぐに適用できるようにしておきます。
以前は /usr/ports/net/ntp-devel をインストールしていましたが。
2018年3月に /usr/ports/net/ntp-devel は broken になってしまいましたので /usr/ports/net/ntp の方をインストールします。
プロンプト略
cd /usr/ports/net/ntp
make
make install
オプションがすごく多くなっていますが、デフォルトのままで問題ないかと思います。
2. /etc/ntp.conf 設定
ntp サーバのコンフィグレーションファイルは、
/etc/ntp.conf
です。
これには、自分の上位となる ntp サーバの IP アドレスを記述します。ntp サーバには stratum という階層構造があります。一般サーバの stratum は 3 か 4 に位置しますので、上位の ntp サーバには stratum 2 か 3 あたりのサーバを設定します。
通常は、プロバイダから少なくとも 1 つの ntp サーバアドレスを指示してくれているはずです、1 つはそのアドレスを設定します。
こちらを御覧になれば、ntp サーバについて情報が得られます。
ntp サーバアドレスはできれば 3つくらい選んでください。複数のサーバとの時刻差を計測することでより正確な時刻が得られます。
仮に、3つの ntp サーバの IP アドレスに 210.173.160.27、129.250.35.251、216.239.35.4 を使用するとすれば、以下をコメントアウトし
pool 0.freebsd.pool.ntp.org iburst
最下行に以下のように記述します。
server 210.173.160.27
server 129.250.35.251
server 216.239.35.12
もし、ログファイルを残したいのであれば、以下の記述を加えます。
logfile /var/log/ntpd.log
ログファイルを残す場合、適切なタイミングでローテーションさせるようにします。
/etc/newsyslog.conf は、以下の設定くらいが適当かと思います。
/var/log/ntpd.log 644 7 100 * B
ローカルネットワークアドレスが、192.168.0.0 で、ローカルネットワーク内のマシンに同期を許可する場合は、以下の記述を加えます。
restrict 192.168.0.0 mask 255.255.0.0 noquery nomodify nopeer notrap
3. /etc/rc.conf 設定
ntpd が起動するように
/etc/rc.conf
に以下の記述を書き加えます。
ntpd_enable="YES"
4. 起動スクリプトの修正
起動スクリプトは
/etc/rc.d/ntpd
です。
command="/usr/sbin/${name}"
の部分を
command="/usr/local/sbin/${name}"
と書き換えます。
ここまで終わったら、
> service ntpd start
で起動します。
5. 時刻の同期を確かめる
時刻の同期を確かめるには、
> ntpq -p
というコマンドを使います。再起動直後には、
remote refid st t when poll reach delay offset jitter
=========================================================================
ntp 仮名1.ne aaa.bbb.ccc.1 3 - 88 64 0 0.000 0.000 4000.00
ntp 仮名2.ne aaa.bbb.ccc.2 3 u 43 64 1 39.089 -2.978 2.786
ntp 仮名3.ne aaa.bbb.ccc.3 3 - 85 64 0 0.000 0.000 4000.00
という、表示になっていると思います。起動後、15分以上たたないと、時刻の同期は完了しません。
remote refid st t when poll reach delay offset jitter
=========================================================================
*ntp 仮名1.ne aaa.bbb.ccc.1 3 - 88 64 0 0.000 0.000 4000.00
+ntp 仮名2.ne aaa.bbb.ccc.2 3 u 43 64 1 39.089 -2.978 2.786
+ntp 仮名3.ne aaa.bbb.ccc.3 3 - 85 64 0 0.000 0.000 4000.00
という具合に、ホスト名の前に * マークが表示されれば時刻の同期は完了です。
ホスト名の前のマークが同期の状態を示していて以下の意味を持ちます。