Ubuntu 22.04 では、追加パッケージを入れなくても systemd-timesyncd で時刻同期を行えます。クライアント用途や小規模なサーバーで、外部 NTP サーバーへ単純に同期するだけなら、まず timesyncd が選択肢になります。
一方で、複数の時刻ソースを細かく扱う、内部 NTP サーバーとして配布する、同期状態を詳しく監視する、といった用途では chrony を使う方が向いています。この記事では、Ubuntu 22.04 の既存環境で timesyncd を使う場合の最小設定と確認方法を扱います。
systemd-timesyncdの位置づけ- 時刻同期状態の確認
timesyncd.confによる NTP サーバー指定- 設定反映と同期先確認
chronyを選ぶべき場面
書籍
Advanced Ubuntu Administration and Management Best Practices
Ubuntu Server の運用項目を体系的に確認したい場合の参考書籍です。価格や在庫はリンク先で確認してください。
Amazon で見るこのリンクは Amazon アソシエイトリンクです。
timesyncd の位置づけ
systemd-timesyncd は systemd に含まれるシンプルな時刻同期サービスです。NTP クライアントとして動作し、システム時刻を外部の NTP サーバーへ同期します。
- 追加パッケージなしで使える
- 設定項目が比較的少ない
- 通常のクライアント用途では扱いやすい
- NTP サーバーとして配布する用途には向かない
- 詳細なサーバー運用では
chronyの方が扱いやすい
現在の状態を確認する
まず、時刻同期の状態を確認します。
timedatectl status
systemctl status systemd-timesyncd.serviceSystem clock synchronized が yes になっていれば、システム時刻は同期済みです。同期先や遅延まで見る場合は、後述の timedatectl timesync-status を確認します。
NTP サーバーを指定する
timesyncd の設定は /etc/systemd/timesyncd.conf で行います。ファイル全体を書き換える例です。
sudo tee /etc/systemd/timesyncd.conf >/dev/null <<'EOF'
[Time]
NTP=ntp.nict.jp ntp.jst.mfeed.ad.jp
FallbackNTP=ntp.ubuntu.com
EOFNTP には優先して使う NTP サーバーを指定します。FallbackNTP は、指定した NTP サーバーが使えない場合の予備です。
設定を反映する
設定を変更したら、timesyncd を再起動します。
sudo systemctl restart systemd-timesyncd.service
systemctl status systemd-timesyncd.service起動していれば、同期状態を確認します。
timedatectl timesync-statusServer、Poll interval、Offset などを見ると、どの NTP サーバーに同期しているかを把握できます。
chrony を使うべき場合
timesyncd は軽量で扱いやすい一方、サーバー運用では chrony の方が向いている場面があります。
- 複数の NTP サーバーをより明確に管理したい
- 内部ネットワーク向けに時刻を配布したい
- 同期状態を詳細に確認したい
- 時刻同期をサーバー運用の重要要素として扱いたい
- 認証、ログ、証明書、監視との関係を重視したい
特に、認証基盤、証明書、ログ分析、監視を扱うサーバーでは、時刻のずれが障害原因になります。そのような環境では chrony の記事へ進む方がよいです。
まとめ
Ubuntu 22.04 の systemd-timesyncd は、追加パッケージなしで使えるシンプルな時刻同期機能です。小規模な構成やクライアント用途では、NTP サーバーを指定して状態を確認するだけで十分に使えます。
ただし、サーバー運用として時刻同期を明確に管理したい場合は、timesyncd だけで完結させず、chrony を使う構成を検討します。時刻同期は DNS、証明書、認証、ログの信頼性に影響するため、初期設定の中で必ず確認しておく項目です。

