Linuxサーバーでの時刻同期に問題があります。マシンとNTPサーバーはどちらも(より小さい)大学データセンターにあり、ローカルアドレスも同じです。
奇妙なことに、このntpdate
コマンドは機能します。
ntpdate -u 172.16.0.25
出力:
17 Jan 15:03:53 ntpdate[25993]: adjust time server 172.16.0.25 offset 0.036043 sec
しかし、そうではありませんchronyd
。 (ただ停止します。)
chronyd -q 'server 172.16.0.25 iburst'
自動時刻同期を設定するためにすべてを試してみましたが、成功しませんでしntpd
たchrony
。
これが起こったことですntpd
。ntpdate
以下の指示に従ってインストールしました。https://vitux.com/how-to-setup-ntp-server-and-client-on-debian-10。 confファイルにはコマンドがあります
server 172.16.0.25 prefer iburst
システム状態 ntp が報告する場合
Jan 18 10:26:11 akulab1 ntpd[26957]: kernel reports active service TIME_ERROR: 0x41: Clock Unsynchronized
ntpq -p
次の出力があります
HKS-SRV01.unica .LOCL. 1 u 9 64 15 0.557 2275.65 9.515 –
しかし、しばらくすると、サービスが報告されました。
Jan 18 10:31:01 akulab1 ntpd[26957]: ntpd exiting on signal 15 (Terminated)
NTP同期が失敗したためです。しかし ntpdate -u 172.16.0.25 レポートは sync: 18 Jan 10:33:13 ntpdate[26990]: step time server 172.16.0.25 offset 2.282101 sec
これは私の/etc/ntp.conf
ファイルです:
driftfile /var/lib/ntp/ntp.drift
leapfile /usr/share/zoneinfo/leap-seconds.list
statistics loopstats peerstats clockstats
filegen loopstats file loopstats type day enable
filegen peerstats file peerstats type day enable
filegen clockstats file clockstats type day enable
server 172.16.0.25 prefer iburst
restrict -4 default kod notrap nomodify nopeer noquery limited
restrict -6 default kod notrap nomodify nopeer noquery limited
restrict 127.0.0.1
restrict ::1
restrict source notrap nomodify noquery
NTPサービスを再起動しました。systemctl restart ntp
出力はntpq -np
次のとおりです。
root@akulab1:~# ntpq -np
remote refid st t when poll reach delay offset jitter
==============================================================================
172.16.0.25 .LOCL. 1 u 63 64 377 0.518 104.685 14.815
ただし、service(systemctl status ntp
)はまだ次のことを報告します。
Jan 18 11:04:10 akulab1 ntpd[27089]: kernel reports TIME_ERROR: 0x4041: Clock Unsynchronized
また、NTPサービスを設定した後、timedatectl set-ntp true
NTPサービスは終了し、非アクティブ状態で報告されます。
ntpdサービスを再起動しましたが有効になりました。また、同期のために1時間以上待っていましたが、同期を取得できませんでした(サーバーアドレスの前にアスタリスクやプラス記号はありません)。次の出力は次のとおりですntpq -np
。
remote refid st t when poll reach delay offset jitter
==============================================================================
172.16.0.25 .LOCL. 1 u 61 64 377 0.588 269.847 14.797
また、以下はコマンドの出力ですntpdate -qu
。
18 Jan 13:57:44 ntpdate[1975]: no servers can be used, exiting
いいですね。上記のコマンドはまだ完了していないため、次ntpdate -qu 172.16.0.25
の出力が表示されます。
server 172.16.0.25, stratum 1, offset 0.435131, delay 0.02621
18 Jan 14:51:56 ntpdate[6951]: adjust time server 172.16.0.25 offset 0.435131 sec
そしてntpq -np
以下が与えられる:
remote refid st t when poll reach delay offset jitter
==============================================================================
172.16.0.25 .LOCL. 1 u 17 64 377 0.554 436.092 14.279
解決策は、以下の許容される回答に記載されています。現在の時刻同期が機能していると想定していますが、正しく同期していない場合は、引き続き時計のドリフトを追跡して質問を更新します。
最終的な解決策はこの記事に掲載されています。NTPサーバーに接続できますが、時間が選択/設定されていません。
答え1
あなたの時計はほぼ確実に同期しています。 「同期化されていないクロック」は、ntpd
アップストリームソースとの同期を待っている間にのみ適用されるため、誤解を招く可能性があります。
NTPには2つのパスがあります。systemd
1つは管理を通じてtimedatectl
、ntpd
もう1つは監視を介してntpq
。一人で出発することをお勧めしますtimedatectl
。
systemctl start ntp # don't restart ntpd if it was already running
watch -n1 ntpq -pn # while :; do clear; date; echo; ntpq -pn; sleep 1; done
最初に接続可能性がゼロのアップストリームが一覧表示され、約5分間奇妙なことに377に増加することがわかります。+
左側の列には、時刻同期候補であることを示す1が必要であり、*
最終的に承認された時刻に変更されます。
レイテンシフィールドとオフセットフィールドはミリ秒単位で測定されます。大学WANでは待ち時間が低いと予想しており、500ナノ秒がかなり良いです。数時間と数日間、オフセットはゼロに近づく必要があります。
以下は、私のサーバーの安定した例から抜粋したものです。 xDSL回線の場合、37ミリ秒の遅延時間が合理的に感じられます。アップストリームサーバーのオフセットは驚くほど低く、ジッタは許容可能です。
remote refid st t when poll reach delay offset jitter
==============================================================================
*51.155.16.62 .GPS. 1 u 10 64 377 37.420 0.524 34.067
NTP コマンドを使用してsysinfo
同期状態を表示できます。ここでは、出力の最初の行を見ています。sync_ntp
この行があれば、クライアントがアップストリームサーバーと同期していることを確認できます。
ntpq -c sysinfo | head -n1
associd=0 status=0618 leap_none, sync_ntp, 1 event, no_sys_peer,
最後の警告。それ基本的な時間を正確に保つサービスがある場合は、ローカルシステムの時間を変更しません。サービスは時間の変化を確認し、現地の時計が正確な時間を維持できないと仮定します。その後、時計を修正するために非常に懸命に動作し、これは最終的にローカル時計がアップストリームと同期しなくなる可能性があります。バラよりNTPDはどのくらいの頻度で(そしていつ)更新されますか?
これが発生した場合は、NTPがそれを認識または変更するまで(長い間)待つ必要があります。 ntpd(systemctl stop ntp; systemctl disable ntp
)を無効にして停止し、すぐに削除して再起動してこの問題を直接解決できます/etc/adjtime
。 (このアンインストール/再起動手順を2回実行する必要があるかもしれません。)その後、ntpdate -u 51.155.16.62
時間を正しく設定して再起動してください。最後に、NTP()を再度有効にしますsystemctl enable ntp; systemctl start ntp
。
これをインストールした場合は、ntpdate
クエリを使用してサーバーのアップストリーム視差を指定できますntpdate -qu {server}
。ntpd
実行時に時間を設定しようとしないでください。
その他参考資料