サーバー内の時刻合わせには、NTP(Network Time Protocol)サーバーの設定方法をご紹介します。
NTPサーバーの概要
サーバー内の時刻合わせには、NTP(Network Time Protocol)という通信プロトコルを利用します。国内であれば、以下に示す日本標準時に直結した時刻サーバーがあり、NTPサーバーを提供しています。
日本標準時 に直結した時刻サーバ
国立研究開発法人・情報通信研究機構であるNICT (National Institute of Information and Comuunications Technology)が 公開しているNTPサービスではインターネットを利用して、日本標準時を時刻配信しています。
時刻はこちらで確認出来ます。
■ NTPサーバ名: ntp.nict.jp
この時刻サーバはNICT内に設置され、 日本標準時に直結しています(stratum 1)。
その時刻精度は日本標準時と10ナノ秒以内、 処理能力は毎秒100万リクエスト以上の性能を有しているそうです。
本記事では、外部の時刻サーバ(以降、NTPサーバと呼びます)と時刻を同期する方法を紹介します。
NTPサーバーのインストール方法
現在時刻を確認するためには、「date」コマンドを利用します。
% date
2022年 11月 7日 月曜日 22:30:26 JST
ここで、日時が大幅に違っているようであれば、以下の時刻合わせ用のアプリケーションサーバーを用いて時刻合わせをおこないます。
$sudo apt-get install ntp
NTPサーバと時間を同期させるためには、/etc/inet/ntp.confファイルにNTPサーバのアドレスを設定します。
以下は、規定値の参照用NTPサーバーになります。
$emacs /etc/ntp.conf
pool 0.ubuntu.pool.ntp.org iburst
pool 1.ubuntu.pool.ntp.org iburst
pool 2.ubuntu.pool.ntp.org iburst
pool 3.ubuntu.pool.ntp.org iburst
こちらの代わりにNICTのサーバーで時刻合わせを行いたい場合には、以下のように記載ください。
server ntp.nict.jp
また、以下「pool」というサービスを使う方法もあります。このサービスは世界中にあるNTPサーバが登録されていて、上記URLにアクセスすると登録済みのNTPサーバの中から1つがランダムで選択されて接続してくれます。
$emacs /etc/ntp.conf
server 0.jp.pool.ntp.org
server 1.jp.pool.ntp.org
server 2.jp.pool.ntp.org
server 3.jp.pool.ntp.org
サーバー変更後に、ntpの再立ち上げをおこないます。
systemctl restart ntp
同期進捗や状態を確認するにはntpq -p
コマンドを実行する。
以下のntpqコマンドを入力します。
$ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================
0.ubuntu.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.000
1.ubuntu.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.000
2.ubuntu.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.000
3.ubuntu.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.000
ntp.ubuntu.com .POOL. 16 p - 64 0 0.000 0.000 0.000
hodor.bsdbg.net .GPS. 1 u - 64 1 282.797 -11.365 0.000
mirror.tillo.ch 192.33.96.102 2 u - 64 1 254.153 -10.081 0.270
any.time.nl 133.243.238.243 2 u 1 64 1 25.169 -7.768 9.015
193.104.228.123 46.4.25.6 3 u - 64 1 266.085 -17.192 7.483
ntp1.wirehive.n 81.187.26.174 2 u - 64 1 256.220 -12.886 5.937
$ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================
0.ubuntu.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.000
1.ubuntu.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.000
2.ubuntu.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.000
3.ubuntu.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.000
ntp.ubuntu.com .POOL. 16 p - 64 0 0.000 0.000 0.000
#hodor.bsdbg.net .GPS. 1 u 46 64 357 283.123 -17.293 4.042
*ntp-b2.nict.go. .NICT. 1 u 39 64 377 9.047 -7.585 4.242
#mirror.tillo.ch 194.242.34.149 2 u 41 64 157 254.646 -13.948 5.337
-any.time.nl 133.243.238.244 2 u 46 64 367 7.159 -8.917 5.440
-193.104.228.123 46.4.25.6 3 u 50 64 377 251.750 -19.836 4.696
-labs.netweaver. 85.199.214.98 2 u 49 64 367 248.256 -5.528 6.142
+ipv4.ntp3.rbaum 49.34.249.17 2 u 57 64 377 7.626 -2.283 4.302
-ap-northeast-1. 103.1.106.69 2 u 47 64 377 9.689 -6.446 4.051
#ntp1.wirehive.n 81.187.26.174 2 u 44 64 377 244.594 -17.182 3.944
#darwin.planet-r 161.143.24.141 2 u 39 64 377 251.485 -14.742 4.479
#evilhannie.eu 131.188.3.222 2 u 50 64 373 271.587 -4.953 4.644
-pugot.canonical 17.253.108.125 2 u 5 64 377 231.826 -9.644 3.949
+time.cloudflare 10.22.11.74 3 u 41 64 377 7.896 -3.167 7.526
-185.125.190.57 48.134.154.62 2 u 5 64 377 240.160 -5.090 3.813
-185.125.190.56 167.28.20.25 2 u 6 64 337 241.577 -4.009 5.385
2回目でようやく「*ntp-b2.nict.go. .NICT. 1 u 39 64 377 9.047 -7.585 4.242」にアスタリスクマークがついた。「*」がつけば同期が開始されたことになります。同期可能なサーバーに “+” がつきます。
タイトル | 内容 |
remote | NTPサーバのアドレス。 手前の記号についてはコードの一覧を参照。 |
refid | 参照ID サーバのIPアドレスあるいは外部クロックの名前 |
st | 階層 GPS時計など物理的な時計をst:0として、それを参照するNTPサーバはst:1、st:1を参照するNTPサーバst:2のように増えていく。 |
t | 種類 種類の一覧を参照 |
when | 最後にサーバからレスポンスがあったのが何秒前かを表す |
poll | ポーリングの間隔(秒単位) |
reach | 到達可能性 過去のポーリングの結果を成功:1、失敗:0とした8桁分のビット列を8進数で表現している。古い結果は上位桁に移動し、新しい結果は最下位桁に記録される。ntpdの再起動直後は 0 でポーリングが成功すると 1、3、7、10… という具合に増えていく。 |
delay | 往復にかかかる時間(ミリ秒単位) サーバにクエリを送信したときに、応答パケットが戻ってくるまでにかかった時間で、小さいほど良い。 |
offset | 時差 サーバクロックとクライアントクロックがどれくらい離れているかを表す(ミリ秒単位)。小さいほうが良い。ntpデーモンはこの値の絶対値を小さく保とうとする。 |
jitter | NTPサーバの正確性の度合い。おそらくAIXのdispと同じ。 |
まとめ
本記事のまとめは、
関連リンク
