NTP サービスに「timedatectl status」とともに「Inactive」と表示されます。

NTP サービスに「timedatectl status」とともに「Inactive」と表示されます。

Archlinuxホストはコマンドがtimedatectl status正しい時刻結果(ローカルとUTC)を返したことを確認しましたが、NTPサービスが非アクティブであることにも言及しました。

存在するがアクティブではないntpd.service場合でも、そのコンピュータでアクティブになってアクティブになっているため、これは奇妙だと思います。systemd-timesynd.service

存在するhttps://unix.stackexchange.com/a/542959/72707可能であれば、systemd-timesync.service次のことができます。

# timedatectl set-ntp true

出力にアクティブなNTPサービスを表示するだけで十分ですtimedatectl status

また、自動的に有効になって有効になっていることがわかりますsystemd-timesync.service

だから私の質問は:私に
それが必要ですか?そして、ntpd.service2つの要件が異なりますか?systemd-timesync.servicentpd.service

答え1

OPのクエリに直接答えるために@don_crisstiからのコメントを引用します。

timesyncd を使用する場合、ntpd.service は必要ありません。私はntpパッケージがインストールされていないいくつかのデスクトップで後者を使用しています。これに関するアーチウィキエントリをここで読んでください:wiki.archlinux.org/title/Systemd-timesyncd

この文に加えて、最新バージョンtimedatectl(およびそのバージョンsystemd-timedated)にはファイルに時刻同期サービスのリストがあります/usr/lib/systemd/ntp-units.d/*.list。いつものように、/usr/local/lib/systemd/ntp-units.d/*.listファイルを使用してtimedatectlローカルに管理されている(=パッケージにインストールされていない)時刻同期サービスを調べたり、既存の時刻同期/etc/systemd/ntp-units.d/*.listサービスリストの管理上書きを実行したりできます。

SYSTEMD_TIMEDATED_NTP_SERVICESサービスの環境変数を設定することは、systemd-timedated時間同期サービスのリストをオーバーライドする別の方法です。

を実行すると、時刻timedatectl set-ntp true同期systemd-timedatedサービス名のリストが表示され、実際に使用可能な最初のリストのサービスが開始されます。

timedatectlこれを知らせるにはntpd.service

echo "ntpd.service" | sudo tee /etc/systemd/ntp-units.d/10-ntpd.list

systemd-timesyncdもともとは、NTPサーバー(実際にはSNTPクライアント)から定期的に時間を取る最小限のサービスとして開発されました。より完全なNTPクライアントに発展しているようですが、ntpd現在のクラシックバージョンと比べるとどうかわかりません。

chronydあるいは、より完全な機能を備えたNTP同期サービスは、ntpdローカルシステムとNTPタイムソース間のパケットラウンドトリップ時間を継続的に測定および補償し、ローカルシステムクロックのシステムエラーも測定および補償します。

systemd-timesyncdもともとは、「人間規模」の正確なタイミングを持つことをお勧めしますが、必ずしも非常に高い精度を保証する必要はない組み込みシステムやその他のユースケースのために設計されました。

良いNTPサーバーセットが構成されているかchronyd近くにntpdある場合は、システムをミリ秒以下に同期できます。

システムをマイクロ秒以上に同期する必要がある場合は、慎重に調整してNTPを使用できますが、この場合はPTPを使用することをお勧めします。

クラシック開発はntpd過去1〜2年間中断されており、いくつかの既知のセキュリティ問題があります。次のchronyd最新実装NTPセキュリティおそらくより安全です。

関連情報