RPi OS NTP 設定

2024/06/22 19:38 OS別::Linuxその他::技術情報
Raspberry Pi を利用したサーバの、初期に行うべき手順で NTP を設定します。
対象は、Raspbian GNU/Linux 12 (bookworm) になります。

パッケージ

インストール

パッケージのインストール状況を確認して、必要であればインストールします。
$ sudo apt list ntpsec ntpdate dnsutils
$ sudo apt install ntpsec ntp-doc ntpdate dnsutils

名前解決確認

名前解決ができることを確認します。
$ dig ntp.nict.jp +short

NTP 設定

設定差分の読み替え設定

$ . /etc/os-release
$ pNtpConfDir="/etc/ntpsec/ntp.conf"

設定ファイル修正

$ sudo cp -p ${pNtpConf}{,_$(date +%Y%m%d)}
$ sudo diff ${pNtpConf}{,_$(date +%Y%m%d)}
$ sudo vi ${pNtpConf}
---------------------------------------------------------
(pool をコメントアウトして、serverに ntp.nict.jp を指定する)
---------------------------------------------------------
$ sudo diff ${pNtpConf}{,_$(date +%Y%m%d)}
20c20
< #tos maxclock 11
---
> tos maxclock 11
34,38c34,37
< #pool 0.debian.pool.ntp.org iburst
< #pool 1.debian.pool.ntp.org iburst
< #pool 2.debian.pool.ntp.org iburst
< #pool 3.debian.pool.ntp.org iburst
< pool ntp.nict.jp iburst
---
> pool 0.debian.pool.ntp.org iburst
> pool 1.debian.pool.ntp.org iburst
> pool 2.debian.pool.ntp.org iburst
> pool 3.debian.pool.ntp.org iburst
52c51
< #restrict ::1
---
> restrict ::1

設定の反映

$ sudo systemctl status ntpsec
$ sudo systemctl stop ntpsec
$ sudo ntpdate ntp.nict.jp
$ sudo systemctl start ntpsec
$ sudo systemctl status ntpsec
もし status 確認で次のようなエラーが出力されていたら、ディレクトリを作成する。
11月 05 11:01:02 rasp012 ntpd[1385]: statistics directory /var/log/ntpsec/ does not exist or is unwriteable, error No such fi>
$ grep ntp /etc/passwd
ntpsec:x:112:122::/nonexistent:/usr/sbin/nologin
$ sudo mkdir /var/log/ntpsec
$ sudo chown 112:122 /var/log/ntpsec
$ ls -ld /var/log/ntpsec
drwxr-xr-x 2 ntpsec ntpsec 4096 11月  5 11:02 /var/log/ntpsec
$ sudo systemctl status ntp
$ sudo systemctl restart ntp
$ sudo systemctl status ntp
$ ls -l /var/log/ntpsec

設定反映確認

$ ntpq -p
     remote                                   refid      st t when poll reach   delay   offset   jitter
=======================================================================================================
 ntp.nict.jp                             .POOL.          16 p    -  256    0   0.0000   0.0000   0.0010
*ntp-a2.nict.go.jp                       .NICT.           1 u    -   64  377   4.4718   1.3757   3.6481
-ntp-b2.nict.go.jp                       .NICT.           1 u   13   64  377   5.0246   1.0815   3.5915
+ntp-a3.nict.go.jp                       .NICT.           1 u    1   64  377   4.9172   1.4364   3.4305
+ntp-k1.nict.jp                          .NICT.           1 u    2   64  377  16.5057   0.5122   3.4384
+ntp-b3.nict.go.jp                       .NICT.           1 u    -   64  377   4.5500   5.6319   4.4448
 ntp-a3.nict.go.jp                       .INIT.          16 u    -  128    0   0.0000   0.0000   0.0010
 2001:ce8:78::2                          .INIT.          16 u    -  128    0   0.0000   0.0000   0.0010
 ntp-a2.nict.go.jp                       .INIT.          16 u    -  128    0   0.0000   0.0000   0.0010
ntp は、ホスト名に * が付いているサーバに同期している。
また、IPアドレスで確認したい場合は、オプションに -n を追加して ntpq -np 等とする。

その他

NTP サーバとして利用するなら追加設定が必要なので、別途 NTP サーバとしての設定を行う。
例えば、次のような認証を行う。
restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap

更新履歴

日付内容
2024.6.19Linux 12 (bookworm) 用に設定内容を変更した*1

*1 : Raspbian GNU/Linux 11 (bullseye) と Raspbian GNU/Linux 12 (bookworm) では、設定ファイルだけではなく、設定内容も微妙に変更が必要で同期しなかったため。