RHEL7でもchronyは標準で導入されていましたが、RHEL8からChronyのみがサポートされるようになりました。
この記事では、chronyの設定について詳細をまとめました。
Red Hat Enterprise Linux 9.xでchronyを使って時効同期する方法、時刻同期しているかを確認する方法をまとめました。
ChronyはRHEL8, RHEL9, RHEL10で使用します。
RHEL9ではchronydはデフォルトで使用できる
RHEL9ではデフォルトでchronydがデフォルトで使えます。
systemctl status chronyd
RHEL9.5で上記コマンドを実行してみた結果は以下です。
[root@RHEL95 ~]# systemctl status chronyd
* chronyd.service - NTP client/server
Loaded: loaded (/usr/lib/systemd/system/chronyd.service; enabled; preset: enabled)
Active: active (running) since Mon 2025-12-08 16:46:17 JST; 43s ago
Docs: man:chronyd(8)
man:chrony.conf(5)
Process: 861 ExecStart=/usr/sbin/chronyd $OPTIONS (code=exited, status=0/SUCCESS)
Main PID: 910 (chronyd)
Tasks: 1 (limit: 10736)
Memory: 4.2M
CPU: 63ms
CGroup: /system.slice/chronyd.service
`-910 /usr/sbin/chronyd -F 2

/etc/chrony.confの記載内容
以下のコマンドでchrony.confの内容を確認します。
# cat /etc/chrony.conf
RHEL9.5インストール時点でのchrony.confをcatコマンドで確認します。以下の設定値の詳細について解説してきます。
[root@localhost ~]# cat /etc/chrony.conf
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (https://www.pool.ntp.org/join.html).
pool 2.rhel.pool.ntp.org iburst
# Use NTP servers from DHCP.
sourcedir /run/chrony-dhcp
# Record the rate at which the system clock gains/losses time.
driftfile /var/lib/chrony/drift
# Allow the system clock to be stepped in the first three updates
# if its offset is larger than 1 second.
makestep 1.0 3
# Enable kernel synchronization of the real-time clock (RTC).
rtcsync
# Enable hardware timestamping on all interfaces that support it.
#hwtimestamp *
# Increase the minimum number of selectable sources required to adjust
# the system clock.
#minsources 2
# Allow NTP client access from local network.
#allow 192.168.0.0/16
# Serve time even if not synchronized to a time source.
#local stratum 10
# Require authentication (nts or key option) for all NTP sources.
#authselectmode require
# Specify file containing keys for NTP authentication.
keyfile /etc/chrony.keys
# Save NTS keys and cookies.
ntsdumpdir /var/lib/chrony
# Insert/delete leap seconds by slewing instead of stepping.
#leapsecmode slew
# Get TAI-UTC offset and leap seconds from the system tz database.
leapsectz right/UTC
# Specify directory for log files.
logdir /var/log/chrony
# Select which information is logged.
#log measurements statistics tracking
/etc/chrony.confのパラメータ(設定値)について
/etc/chrony.confに設定するパラメータについて詳細を解説します。
allowディレクティブ
NTPサーバーとして接続されることを許可するために記載するディレクティブがallowです。
必要に応じて、NTP サーバーとして動作しているマシンへの NTP 接続が許可されるホスト、サブネット、またはネットワークを指定します。デフォルトでは、接続は許可されません。
NTPサーバーとして接続されることを許可するにはfirewalldコマンドでポートを許可しておきます。
firewall-cmd --permanent --zone=public --add-port=123/udp
firewalldの詳細は以下の記事でまとめています。
cmdallowディレクティブ
コマンドでのNTPサーバーの操作を許可するディレクティブです。chronyc で cmdallow コマンドを実行します。
hwtimestampディレクティブ
hwtimestampディレクティブは、ハードウェアのタイムスタンプで非常に精度の高い同期を可能にします。詳細はchrony.conf(5)man ページを参照してください。
localディレクティブ
localキーワードは、現在の同期ソースがない場合でも、(それをポーリングしているクライアントから見ると)chronydがリアルタイムに同期しているように見えるようにします。このオプションは、通常、孤立したネットワークで master となるコンピューターで使用されます。ここでは、いくつかのコンピューターが相互に同期するようになり、master は、手動入力でリアルタイムと一致させます。以下はコマンド例を示します。
local stratum 1010 という大きな値が示しているのは基準クロックからのホップ数が非常に多いため、時間の信頼性が低いということです。基準クロックに最終的に同期している別のコンピューターにアクセスするコンピューターは、確実に 10 よりも下の階層に存在することになります。このため、
localコマンドで 10 のように高い値を設定すると、リアルサーバーの視認性があるクライアントにリークしたとしても、マシン自体の時間がリアルタイムと混同することを防ぎます。
logdirディレクティブ
このディレクティブは、ログファイルが書き込まれるディレクトリーを指定します。
このディレクティブの使用例は、以下のようになります。
logdir /var/log/chrony
makestepディレクティブ
時刻がずれた際に修正されるパラメータを調整するディレクティブです。
以下のパラメータでは、1.0秒のずれを3回検知した際にstepモードで同期します。
makestep 1.0 3
通常、
chronydは、必要に応じてクロックの速度を下げるかまたは上げることで、システムに対して時間オフセットの段階的修正を実施します。特定の状況では、このスルーイング (slewing) プロセスでシステムクロックを修正するのに非常に時間がかかり、システムクロックが不安定な状態になることがあります。このディレクティブは、調整がしきい値を上回ったときに、chronydでシステムクロックを一度に修正 (step) します。ただし、chronydが開始してからのクロックの更新が、指定した制限を上回らなかった場合に限ります (負の値は、制限を無効にします)。initstepslewディレクティブはNTPのソースのみに対応しているため、この方法は基準クロックを使用しているときに特に有用です。このディレクティブの使用例は、以下のようになります。
makestep 1000 10この場合は、調整幅が 1000 秒よりも大きければシステムクロックが更新されますが、最初の 10 回の更新しか行われません。
minsourcesディレクティブ
minsourcesディレクティブは、ローカルクロックを更新する前にソース選択アルゴリズムで選択可能なものとして考慮されるべきソースの最小数を設定します。構文は以下のようになります。
minsources number-of-sourcesnumber-of-sources は、デフォルトでは 1 です。minsource を 1 よりも大きくすると、信頼性が向上します。複数のソースが互いに対応することが必要となるためです。
rtcsyncディレクティブ
カーネルが同期するのに使用するディレクティブです。
rtcsync ディレクティブは、デフォルトで /etc/chrony.conf ファイルにあります。これにより、システムクロックが同期されていることがカーネルに知らされ、カーネルによりリアルタイムクロックが 11 分ごとに更新されます。
chronyでの時刻同期を確認する
以下のコマンドでRHEL9がchronyを使って時刻同期しているかを確認します。
chronyc sources
このコマンドはntpdのntpq -pコマンドに当たるコマンドです。
RHEL9.5での実行例は以下です。
[root@RHEL95 ~]# chronyc sources
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^- 138.3.209.153 2 6 123 111 -2672us[+3524us] +/- 92ms
^- tama.paina.net 2 6 37 52 +746us[ +746us] +/- 48ms
^* ntp1.hnd.jp.hojmark.net 2 6 37 52 +416us[+6613us] +/- 38ms
^- 122x215x240x51.ap122.ftt> 2 6 37 52 +96ms[ +96ms] +/- 156ms
[root@RHEL95 ~]#


