VOOZH about

URL: https://qiita.com/dan-go/items/d7e6e9f69d783f57a141

⇱ 【Linux,Windows】時刻同期設定・確認 #Ubuntu - Qiita


👁 Image
10

Go to list of users who liked

12

Share on X(Twitter)

Share on Facebook

Add to Hatena Bookmark

@dan-go(dan-go)

【Linux,Windows】時刻同期設定・確認

10
Last updated at Posted at 2020-07-17

OS別時刻同期設定です。

RHEL/CentOS

確認バージョンは7.4。
6まではntpdでしたが、現在はchronydが使用されています。

時刻設定(手動)

# date -s "01/30 20:00 2018"

ステータス確認

# systemctl status chronyd

できない場合はYUMインストール

# yum install chrony

自動起動設定

# systemctl enable chronyd

参照先設定

設定ファイルは/etc/chrony.confです。
デフォルトだと以下の項目があるので、これらをコメントアウト。

/etc/chrony.conf 
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst

で、以下を追記

/etc/chrony.conf 
server [NTPサーバ] iburst
port 0

iburstは起動直後に4回問い合わせを行い、同期を早めるオプション。
port0は「クライアントとしてのみ動作する」というオプションです。


ちなみにstepモード(即時同期)を無効にして、slewモード(長時間かけて時刻を補正)にすればうるう秒対策となります。
(サービス起動後、1秒以上時間がズレていた場合に、即座に時間調整する設定(数字の「3」は試行回数を示す)を無効にし、slewモードのみで動作させて緩やかに時間を調整する)

/etc/chrony.conf 
#makestep 1 3 ###コメントアウトで上限超えた時のstepモードを解除し、slewモード補正
leapsecmode slew ### chronyd がうるう秒を徐々に調整することでシステム時計を修正

確認はchronyc trackingコマンド。

chronyd再起動

# systemctl restart chronyd

確認① 

# chronyc sources -v

 .-- Source mode '^' = server, '=' = peer, '#' = local clock.
 / .- Source state '*' = current best, '+' = combined, '-' = not combined,
| / 'x' = may be in error, '~' = too variable, '?' = unusable.
|| .- xxxx [ yyyy ] +/- zzzz
|| Reachability register (octal) -. | xxxx = adjusted offset,
|| Log2(Polling interval) --. | | yyyy = measured offset,
|| \ | | zzzz = estimated error.
|| | | \
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^+ 10.0.0.1 4 9 377 362 -24us[ -219us] +/- 21ms
^* 10.0.0.2 4 10 377 264 -37us[ -235us] +/- 22ms
^+ 2400:2000:8:3528::2:1 4 10 377 508 -41us[ -233us] +/- 21ms
^+ 2400:2000:8:3528::2:2 4 8 377 66 +39us[ +39us] +/- 22ms

-nをつけることで名前解決しない. -vで詳細まで表示
同期先のIPアドレスの左側に * or + がついていればOK。

^ : server
* : 現在同期中
+ : 組み合わせ対象
- : 除外
? : 未選択 / 使用していない

確認②

# timedatectl

NTP enabled: yes
NTP synchronized: yes

と表示されていればOK。

Debian/Ubuntu

確認バージョンは16.04
こちらではsystemd-timesyncdが使用されています。

ステータス確認

# systemctl -l status systemd-timesyncd

設定は/etc/systemd/timesyncd.confで行います。

/etc/systemd/timesyncd.conf
[Time]
NTP=[NTPサーバ]
FallbackNTP=[NTPサーバ]

NTP=との同期がうまくいかなかった場合に、FallbackNTP=の方へ同期する設定です。

確認①

# systemctl -l status systemd-timesyncd

Status:に
Synchronized to time server [NTPサーバ]
と表示されればOK。

確認②

# timedatectl

NTP enabled: yes
NTP synchronized: yes
と表示されていればOK。

Windows

確認バージョンは2012R2。2016でもできます。

設定

[コントロールパネル]→[時計、言語、および地域]
[日付と時刻の設定]→[インターネット時刻]

👁 20180516183802.jpg

[サーバー]ボックスに同期先サーバのIPアドレスかホスト名を入力して
今すぐ更新をクリック。 

確認

管理者でコマンドプロンプトを開き、以下コマンドを実行する。

> w32tm /monitor /computers:[NTPサーバ]
> w32tm /query /status /verbose

ステータスに設定が反映されていればOK。
他にも最終同期時刻や遅延なども確認できます。
ちなみに、ActivceDirectoryに参加していれば自動でドメインコントローラ―の方へ参照します。

リアルタイム確認

> w32tm /stripchart /computer:[NTPサーバ]

👁 20180516183820.jpg

チャートの@が真ん中まで移動し、*に変わるまで待ちます。

> w32tm /resync

で再同期します。

> w32tm /monitor /computers:[NTPサーバ]

で再確認。


当然ながら、設定した時の時刻と同期先の時刻にずれが大きいほど時間がかかります。
あまりにもかけ離れているとエラーになるので、
設定時は手動の時間設定とかでなるべく近づけましょう。

NTPサーバ構築(RHEL9系)

検証などで時刻元を作りたい場合。
サーバのクロックを元に、chronyでNTPサーバを設定します。

/etc/chrony.conf
# Use public servers from the pool.ntp.org project.
# 同期先を指定しない
#pool 2.rhel.pool.ntp.org iburst

# Use NTP servers from DHCP.
# DHCPからのNTPサーバ指定を試験環境では無効化
#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
# (初期同期ステップは保持)
makestep 1.0 3

# Enable kernel synchronization of the real-time clock (RTC).
rtcsync

# Serve local time as a source (ローカルクロックとして動作)
# NTPのローカルクロック用の特別な擬似アドレス
server 127.127.1.0
local stratum 10
#refclock SHM 0 refid LOCL

# Allow specific IP ranges or hosts.
# エントリがないとすべてNGになる
allow 0.0.0.0/0

# Disable all external synchronization sources.
# 外部同期は全て無効化
pool 0.pool.ntp.org offline
#server example.external.ntp.server offline

# Require authentication
# 不要なら無効化
#authselectmode require

# Disable NTS keys and cookies, since not needed in this test environment.
#ntsdumpdir /var/lib/chrony

# Insert/delete leap seconds by slewing instead of stepping.
#leapsecmode slew

# Disable leap second synchronization
# TAI-UTCオフセットの仕様読み込み
#leapsectz right/UTC

# Specify directory for log files.
logdir /var/log/chrony

# Select which information is logged.
# ログ出力
log measurements statistics tracking

確認

# chronyc tracking
Reference ID : 7F7F0101 ()
Stratum : 10
Ref time (UTC) : Wed Oct 31 20:18:44 2035
System time : 0.000000043 seconds slow of NTP time
Last offset : +0.000000000 seconds
RMS offset : 0.000000000 seconds
Frequency : 7.647 ppm slow
Residual freq : +0.000 ppm
Skew : 0.000 ppm
Root delay : 0.000000000 seconds
Root dispersion : 0.000000000 seconds
Update interval : 0.0 seconds
Leap status : Normal
[odnsys777@ntptestvm01 ~]$
[odnsys777@ntptestvm01 ~]$ chronyc tracking -v
Reference ID : 7F7F0101 ()
Stratum : 10
Ref time (UTC) : Wed Oct 21 20:18:44 2024
System time : 0.000000043 seconds slow of NTP time
Last offset : +0.000000000 seconds
RMS offset : 0.000000000 seconds
Frequency : 7.647 ppm slow
Residual freq : +0.000 ppm
Skew : 0.000 ppm
Root delay : 0.000000000 seconds
Root dispersion : 0.000000000 seconds
Update interval : 0.0 seconds
Leap status : Normal

# chronyc sources
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^? 127.127.1.0 0 9 377 - +0ns[ +0ns] +/- 0ns

ローカルクロックの場合、
・外部同期が無い
・自己参照
なので chrony は「本物の外部ソースではない」扱いになります。
?で問題ありません。サーバとしては動作しています。

いじょ

10

Go to list of users who liked

12
0

Go to list of comments

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10

Go to list of users who liked

12