systemd-timesyncd (日本語) - ArchWiki

# systemd-timesyncd (日本語)

関連記事

- 時刻
- Network Time Protocol daemon
- OpenNTPD
- Chrony
- systemd-networkd
- systemd

systemd メーリングリスト より:

  systemd-timesyncd はネットワークを介してシステム時刻を同期させるために追加されたデーモンです。SNTP クライアントが実装されています。chrony や NTP リファレンスサーバーなどの NTP 実装とは対照的に、timesyncd はクライアント側しか実装しておらず、完全な NTP の複雑性に悩むことなく、リモートサーバーに時刻を問い合わせてそれにローカルクロックを同期させることだけに焦点を置いています。NTP をネットワークのクライアントに提供したりローカルのハードウェアクロックに接続したいのでなければ、このシンプルな NTP クライアントだけでほとんどの場合は十二分に間に合います。デーモンは最小権限で動作し、networkd と紐付けられることでネットワーク接続が有効なときだけ同期を行います。Raspberry Pi や組み込みデバイスなどの　RTC を載せてないシステムのために、新しい NTP の同期が取得される度にディスクに現在の時刻を保存し、それを使って起動時にシステム時刻を修正することができ、時刻が常に正しいわけではないときでも、それらのシステムで時刻がモノトニックに進むことを保証します。このデーモンを利用するには systemd のインストール時に新しいユーザーとグループ "systemd-timesync" を作る必要があります。

## インストール

systemd-timesyncd サービスは systemd 213 から利用することができます。サービスを起動・有効化するには:

    # timedatectl set-ntp true

Tip: systemd 216 以前は systemd-timesyncd を使うにはネットワークの起動・停止イベントを拾うために systemd-networkd を起動させる必要がありました (ただし設定は不要)。現在はこの仕様は変更されており、dhcpcd や NetworkManager からのイベントも受信します。ネットワークの設定に依存するかネットワーク管理ツールを使わなくてはならないのは変わっていません。

## 設定

起動すると、systemd-timesyncd は `/etc/systemd/timesyncd.conf` から設定を読み込むます。systemd 217 現在、設定ファイルは以下のようになっています:

    /etc/systemd/timesyncd.conf

    [Time]
    #NTP=
    #FallbackNTP=0.arch.pool.ntp.org 1.arch.pool.ntp.org 2.arch.pool.ntp.org 3.arch.pool.ntp.org

時刻サーバーを追加したり変更するには、適当な行をアンコメントして、空白で区切られたホスト名か IP を記述してください。例えば、NTP プールプロジェクト によって提供されているサーバーやデフォルトの Arch のサーバーを使うことができます (こちらも NTP プールプロジェクトによって提供されています):

    /etc/systemd/timesyncd.conf

    [Time]
    NTP=0.arch.pool.ntp.org 1.arch.pool.ntp.org 2.arch.pool.ntp.org 3.arch.pool.ntp.org
    FallbackNTP=0.pool.ntp.org 1.pool.ntp.org 0.jp.pool.ntp.org

デーモンの設定だけでなく、systemd-networkd の設定の `NTP=` オプションを使ったり、動的に、DHCP サーバーを使うことで提供される NTP サーバーもあります (systemd 216 から)。

使用される NTP サーバーは以下のルールによって決まります:

- `systemd-networkd.service(8)` の設定や DHCP によるインターフェイスごとの NTP サーバーが優先されます。
- `/etc/systemd-timesyncd.conf` に定義された NTP サーバーは実行時にインターフェイスごとのリストに追加され、デーモンはサーバーのどれかが応答するまで通信を行います。
- 以上の手順を踏んでも NTP サーバーの情報がまったく得られなかったとき、`FallbackNTP=` に定義された NTP サーバーのホスト名や IP アドレスが使われます。

## 参照

- Forum: systemd-timesyncd is not syncing time
- Forum: Using systemd-timesync instead of NTP

Category:

- Networking (日本語)