Ubuntu で時刻同期に NTP を使用する

Ubuntu で時刻同期に NTP を使用する

NTP は、ネットワーク上で時間を同期するための TCP/IP プロトコルです。通常、クライアントはサーバーから現在の時刻を要求し、その結果に基づいてクロックを設定します。

この説明は非常にシンプルですが、この機能の実装は非常に複雑です。まず、複数層の NTP サーバーが必要です。最初の層の NTP サーバーは原子時計に接続し、2 番目と 3 番目の層のサーバーは負荷分散の役割を担い、インターネットからのすべての要求を処理します。また、クライアントはあなたが思っているよりも複雑かもしれません。クライアントは通信の遅延を考慮し、時間を調整し、サーバー上で実行されている他のプロセスに干渉しないようにする必要があります。幸いなことに、この複雑さはすべてカプセル化されているため、ユーザーはそれを見ることはなく、見る必要もありません。

Ubuntu では、ntpdate と ntpd を使用して時間を同期します。

タイムデート

最新の Ubuntu バージョンでは、timedatectl が古い ntpdate に置き換わります。デフォルトでは、timedatectl はシステムの起動時にすぐに時刻を同期し、ネットワーク接続がアクティブなときにソケット経由で再度確認します。

ntpdate / ntp がすでにインストールされている場合、timedatectl はフォールバックして以前の設定を使用できるようにします。これにより、アップグレード時に元の動作と構成が維持され、2 つの時間同期サービスが互いに競合することがなくなります。しかし、これは、古いディストリビューションからアップグレードする場合、ntp/ntpdate が引き続きインストールされ、新しい systemd ベースのタイム サービスが無効になることを意味します。

タイムシンク

最新の Ubuntu バージョンでは、timesyncd が ntpd のクライアント部分を置き換えます。デフォルトでは、timesyncd は定期的に時間を検出して同期します。また、更新された時刻をローカルに保存して、システムの再起動時に単一ステップの調整を行えるようにします。

timedatectl および timesyncd によって設定された現在の時間ステータスと時間構成は、timedatectl status コマンドを使用して確認できます。

timedatectl ステータス
     現地時間: 2016-04-29 金 06:32:57 UTC
   世界時間: 2016-04-29 金曜日 06:32:57 UTC
      RTC 時間: 金曜日 2016-04-29 07:44:02
      タイムゾーン: Etc/UTC (UTC, +0000)
   ネットワーク時間オン: はい
  NTP同期: いいえ
   ローカル TZ の RTC: いいえ

NTP がインストールされており、timedatectl の代わりに時刻を同期するために使用される場合、NTP synchronized は yes に設定されます。

timedatectl と timesyncd が時刻を取得するために使用するネームサーバーは、/etc/systemd/timesyncd.conf で指定できます。さらに、/etc/systemd/timesyncd.conf.d/ の下には柔軟な追加の設定ファイルがあります。

ntpdate

timedatectl の存在により、ディストリビューションでは ntpdate が非推奨となり、デフォルトではインストールされなくなりました。これをインストールすると、システムの起動時に Ubuntu の NTP サーバーに従ってコンピューターの時刻が設定されます。その後、新しいネットワーク インターフェイスが起動されるたびに、時刻の同期が再試行されます。同期が試行される間に、時間差が大きすぎない限り、時刻は徐々にずれていきます。この動作は -B/-b スイッチで制御できます。

タイムサーバー

デフォルトでは、systemd ベースのツールは ntp.ubuntu.com から時刻同期を要求します。従来の ntpd ベースのサービスは、基本的に [0-3].ubuntu.pool.ntp.org プールの 2.ubuntu.pool.ntp.org と ntp.ubuntu.com を使用し、必要に応じて IPv6 をサポートします。 IPv6 の使用を強制したい場合は、ipv6.ntp.ubuntu.com を使用できますが、これはデフォルトの設定ではありません。

ntpd
ntp デーモン ntpd はシステム クロックの時間オフセットを計算し、それを継続的に調整するため、たとえばログの不連続の原因となるような大きな修正は行われません。このプロセスは少量のプロセス リソースとメモリを消費しますが、最新のサーバーではそれほど重要ではありません。

インストール

ntpdをインストールするには、ターミナルのコマンドラインに次のように入力します: sudo apt install ntp

構成

/etc/ntp.conf を編集し、サーバー行を追加/削除します。デフォルト構成には次のサーバーが含まれます。

# NTP プール プロジェクトのサーバーを使用します。Ubuntu 技術委員会によって承認されています
  # 2011-02-08 (LP: #104525)。詳細はhttp://www.pool.ntp.org/join.htmlを参照。
  # 詳細情報。
  サーバー 0.ubuntu.pool.ntp.org
  サーバー 1.ubuntu.pool.ntp.org
  サーバー 2.ubuntu.pool.ntp.org
  サーバー 3.ubuntu.pool.ntp.org

設定ファイルを変更した後、ntpd をリロードする必要があります。

sudo systemctl ntp.service をリロードします

ステータスを表示

詳細情報を表示するには、ntpq を使用します。

# sudo ntpq -p
     リモートrefid st t ポーリング到達遅延オフセットジッター
  ==============================================================================
  +stratum2-2.NTP. 129.70.130.70 2 u 5 64 377 68.461 -44.274 110.334
  +ntp2.m-online.n 212.18.1.106 2 u 5 64 377 54.629 -27.318 78.882
  *145.253.66.170 .DCFa. 1 u 10 64 377 83.607 -30.159 68.343
  +stratum2-3.NTP. 129.70.130.70 2 u 5 64 357 68.795 -68.168 104.612
  +ユーロピウム.カノーニ 193.79.237.14 2 u 63 64 337 81.534 -67.968 92.792

PPSサポート

Ubuntu 16.04 以降、ntp は PPS 仕様をサポートしており、これにより ntp にローカル時間ソースが提供され、より高い精度が実現します。詳細な構成情報については、以下のリンクを参照してください。

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Ubuntu で NTP を使用して時刻同期を設定する
  • Ubuntu でパスワードを変更し、パスワードの複雑さのポリシーを設定する方法
  • Ubuntuはポート22を開きます
  • Ubuntu 20.04 に GitLab をインストールして設定する方法
  • Ubuntu 20.04にvncserverをインストールする方法
  • Ubuntu20.04 VNCのインストールと設定の実装
  • Ubuntu 20.04の新バージョンでルートユーザーを使用してシステムにログインする方法の詳細なチュートリアル
  • ubuntu20.04 LTS システムのデフォルト ソース ソース リスト ファイルの変更

<<:  MySQLスローログクエリの詳細な説明

>>:  Web プロジェクト開発 VUE の混合と継承の原則

推薦する

js を使用して数字推測ゲームを実装する

先週、先生が私に数字当てゲームをするちょっとした宿題を出しました。とても面白いと思ったので、適当に書...

MySQL で主キーと ROWID を使用する際の落とし穴の概要

序文MySQL の rowid の概念については聞いたことがあるかもしれませんが、テストや実践が難し...

ES6分解課題の原理と応用

目次配列分割代入オブジェクトの分解代入分割割り当ての適用変数の値の交換関数から複数の値を返すマップ構...

Vue3の一般的なAPIの使用方法の紹介

目次ライフサイクルの変化反応的な参照vue2.x では ref を使用して要素タグを取得します。vu...

MySQLでカーソルを宣言する方法

MySQL でカーソルを宣言する方法: 1. 変数とカーソルを宣言する 結果をvarchar(300...

MySQL テーブルとデータベース シャーディングのアプリケーション シナリオと設計方法

多くの友人がフォーラムやメッセージエリアで、どのような状況で MySQL をシャーディングする必要が...

Alibaba Cloud Centos7.X で外部にポートを開く方法

一言で言えば、大手メーカーからクラウド サーバーを購入する場合は、セキュリティ グループに移動して、...

JavaScriptの原理と方向性

これが何を指しているのかをどのように判断するのでしょうか? ①グローバル環境で呼び出された場合はwi...

ハイパーリンクを表示して開く方法

<br />インターネット上の無数の情報は基本的に HTML ドキュメントで構成されてお...

jQueryは広告を上下にスクロールする効果を実現します

この記事では、広告を上下にスクロールする効果を実現するためのjQueryの具体的なコードを参考までに...

MySQLの整数データ型tinyintの詳細な説明

目次1.1Tinyint型の説明1.2 練習環境の説明1.3 未署名属性の追加1.3.1 SQLモー...

Linux でのマルチスレッドおよびマルチプロセス クラッシュのシミュレーションに関する簡単な説明

結論:マルチスレッド環境では、スレッドの 1 つがクラッシュすると、他のスレッド (プロセス全体) ...

js のループメソッドとさまざまなトラバーサルメソッド

目次forループwhileループdo-while ループループのネストトラバーサルメソッド~のために...

JavaScriptで配列かどうかを判断するためのさまざまな方法のまとめ

目次序文配列.isArrayコンストラクタインスタンスプロトタイプオブジェクト.プロトタイプ.toS...

英語のシングルクォーテーション「''」を含むSQLの記述の失敗について徹底解説

問題が発生しました。情報の編集をテストする際、編集した内容に一重引用符 (') が含まれてい...