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 の混合と継承の原則

推薦する

CSSで検索ボックスを非表示にする機能を実装します(アニメーション順方向と逆方向のシーケンス)

上部のメニュー バーに検索ボックスを配置するのは一般的なシナリオですが、検索機能がそれほど頻繁に使用...

MySQL からエクスポートされた scv ファイル内の文字化けやジャンプ行の問題をすばやく解決します

仕事上の理由により、完全なオンライン化(​​つまり、すべてのデータがオンラインで完了し、インポートや...

一般的な Linux ツール vi/vim の完全版

なぜvimを学ぶのかLinuxには多数の設定ファイルがあるため、Linuxには多くのテキスト処理ツー...

JavaScript の組み込みオブジェクト 数学と文字列の詳細な説明

目次数学オブジェクト共通プロパティ一般的な方法Math.random()文字列メソッド長さプロパティ...

Docker を使用して Nginx+Flask+Mongo アプリケーションをデプロイする

サーバーにはNginx、データベースサポートにはMongo、Python言語のWebフレームワークに...

Ubuntuサーバーの一般的なコマンドの概要

以下のコマンドのほとんどは、コンソール/ターミナル/シェルで入力する必要があります。 'su...

シンプルなナビゲーションバー機能を実現するHTML+CSS

さっそく、コードを見てみましょう(初心者:特に言うことはありません) <!DOCTYPE ht...

HTML 終了タグの問題と W3C 標準

W3C の原則によれば、XML の各開始タグには対応する終了タグが必要です。つまり、<html...

Mac 向け MySQL のインストールと設定のチュートリアル

この記事では、MacでのMySQLインストールチュートリアルを参考までに紹介します。具体的な内容は次...

フォーム内のどの隠し属性をフォームとともに送信できるか

フォーム内の visibility=hidden および display=none のフォーム要素は...

CSS 背景画像を設定するための 6 つの興味深いヒント

background-image は、おそらくすべてのフロントエンド開発者がキャリアの中で少なくとも...

Mysql論理アーキテクチャの詳細な説明

1. 全体的なアーキテクチャ図他のデータベースと比較すると、MySQL は、そのアーキテクチャがさま...

Linux システムで PATH 環境変数を設定する方法 (3 つの方法)

1. Windows システムでは、JDK のインストールなど、多くのソフトウェアのインストールで...

MySQL の詳細な単一テーブルの追加、削除、変更、クエリの CRUD ステートメント

MySQL の追加、削除、変更、クエリステートメント1. 練習シートを作成するここでの練習表は3つの...

MySQL 8 の新機能: 非表示のインデックス

背景インデックスは諸刃の剣です。クエリ速度は向上しますが、DML 操作も遅くなります。結局のところ、...