はじめに
LinuxでNTPクライアントの設定をするとき、いろいろなエラーに遭遇してきたので、解決策のメモです。
※この記事はNTPクライアントでのトラブルシューティングです。NTPサーバに問題があるときは、この記事を読んでも解決しません!
ログの確認方法
以下のコマンドを実行してログを確認します。正常な場合は次のようなログが表示されます。
$ sudo journalctl -u systemd-timesyncd
-- Logs begin at Wed 2023-02-01 10:15:00 JST, end at Fri 2024-02-16 12:41:13 JST. --
Feb 16 12:43:01 ntp-cli systemd[1]: Stopping Network Time Synchronization...
Feb 16 12:43:01 ntp-cli systemd[1]: systemd-timesyncd.service: Succeeded.
Feb 16 12:43:01 ntp-cli systemd[1]: Stopped Network Time Synchronization.
Feb 16 12:43:01 ntp-cli systemd[1]: Starting Network Time Synchronization...
Feb 16 12:43:01 ntp-cli systemd[1]: Started Network Time Synchronization.
Feb 16 12:43:01 ntp-cli systemd-timesyncd[10478]: Initial synchronization to time server 192.168.1.2:123 (192.168.1.2).
症状1 Server has too large root distance.
$ sudo journalctl -u systemd-timesyncd
~中略~
Feb 01 01:15:10 ntp-cli systemd-timesyncd[1]: Network configuration changed, trying to establish connection.
Feb 01 01:15:10 ntp-cli systemd-timesyncd[1]: Server has too large root distance. Disconnecting.
設定ファイルのRootDistanceMaxSecを設定すると直ることがあります。初期値は5ですが、この値を増やします。
$ sudo vi /etc/systemd/timesyncd.conf
[Time]
NTP=192.168.1.2
#FallbackNTP=ntp.ubuntu.com
RootDistanceMaxSec=30
#PollIntervalMinSec=32
#PollIntervalMaxSec=2048
設定ファイルを更新したら、サービスを再起動します。
$ sudo systemctl restart
systemd-timesyncd.service
症状2 Failed to run 'start' task: Not a directory
$ sudo journalctl -u systemd-timesyncd
~中略~
Jan 11 01:47:42 ntp-cli systemd[1]: systemd-timesyncd.service: Failed to run 'start' task: Not a directory
Jan 11 01:47:42 ntp-cli systemd[1]: systemd-timesyncd.service: Failed with result 'resources'.
Jan 11 01:47:43 ntp-cli systemd[1]: Failed to start Network Time Synchronization.
tmpがディレクトリではなくファイルになっていました。tmpを再作成したら直りました。
※ファイルを削除してしまうので、実行に注意してください!
$ sudo rm /var/tmp
$ sudo mkdir /var/tmp/
$ sudo chmod 777 /var/tmp/
$ sudo chmod +t /var/tmp/
$ sudo systemctl restart systemd-timesyncd.service
症状3 Timed out waiting for reply from
$ sudo journalctl -u systemd-timesyncd
~中略~
Jan 11 02:45:02 ntp-cli systemd-timesyncd[249]: Timed out waiting for reply from 192.168.1.2:123 (192.168.1.2).
Jan 11 02:45:12 ntp-cli systemd-timesyncd[249]: Timed out waiting for reply from 192.168.1.2:123 (192.168.1.2).
時刻設定を確認します。
$ date
表示された時刻が実際の時刻より大幅にずれている場合は、現在時刻に手動で合わせます。
※ 大幅に時間がずれていると、NTPサーバとの接続に失敗します。
$ date -s "2024-2-13 00:17:38"
時刻を更新したら、サービスを再起動します。
$ sudo systemctl restart
systemd-timesyncd.service
最後に
この記事が何かの役に立てれば幸いです。
またエラーに遭遇したら、記事を更新しようと思います。
謝辞
以下の投稿には大変お世話になりました。