自動時刻同期: `ntpdate`は機能しますが、 `chrony`は機能しません。

自動時刻同期: `ntpdate`は機能しますが、 `chrony`は機能しません。

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'

自動時刻同期を設定するためにすべてを試してみましたが、成功しませんでしntpdchrony

これが起こったことですntpdntpdate以下の指示に従ってインストールしました。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 trueNTPサービスは終了し、非アクティブ状態で報告されます。

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つのパスがあります。systemd1つは管理を通じてtimedatectlntpdもう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実行時に時間を設定しようとしないでください。

その他参考資料

関連情報