NTPはNationalTimeProtocolの略で、複数のコンピューター間のクロック同期に使用されます。 NTPサーバーは、一連のコンピューターの同期を維持する役割を果たします。ローカルネットワークでは、サーバーはすべてのクライアントシステムを互いに1ミリ秒以内に保つことができる必要があります。
このような構成は、たとえば、システムが正確な時間に同時にタスクを開始または停止する必要がある場合に必要になります。この記事では、Ubuntu 20.04 Focal FossaでNTPサーバーを構成する方法と、システム時刻をサーバーと同期するようにクライアントシステムを構成する方法を説明します。
このチュートリアルでは、次のことを学びます。
- NTPサーバーをインストールして構成する方法
- クライアントマシンからNTPサーバーに接続する方法
Ubuntu20.04NTPサーバー
カテゴリ | 使用する要件、規則、またはソフトウェアバージョン |
---|---|
Ubuntu20.04をインストールまたはUbuntu20.04FocalFossaをアップグレード | |
NTPサーバーデーモン | |
rootまたはsudo を介したLinuxシステムへの特権アクセス コマンド。 | |
# –指定されたLinuxコマンドは、rootユーザーとして直接、またはsudo を使用して、root権限で実行する必要があります。 コマンド$ –特定のLinuxコマンドを通常の非特権ユーザーとして実行する必要があります |
NTPサーバーをインストールする
まず、NTPサーバーをインストールする必要があります。これを行うには、ターミナルを開いて次のコマンドを入力します。
$ sudo apt install ntp
NTPサーバーの構成
NTPサーバーには、いくつかのサーバープールが事前に構成されています。これは、/etc/ntp.conf
内で確認できます。 ファイル。
$ cat /etc/ntp.confNTP構成ファイル内のデフォルトのサーバープール
一般に、これらの回線を自国または少なくとも自国のサーバープールに置き換えるのが最善です。あなたとタイムサーバーの間の待ち時間が少ないほど良いです。 NTPプールプロジェクトのWebサイトを使用して、現在地に最も近いNTPサーバープールを見つけることができます。
NTPプールプロジェクトのWebサイトから最も近いサーバープールを見つけます最も関連性の高いゾーンを見つけたら、nanoまたはお好みのテキストエディタを使用して設定ファイルに行を追加するだけです。
$ sudo nano /etc/ntp.confサーバーをNTP構成ファイルに入力します
これらの変更を行ったら、構成ファイルを保存して終了します。変更を有効にするには、NTPサービスを再起動します。
$ sudo systemctl restart ntp
次のコマンドを使用して、いつでもNTPサービスのステータスを確認できます。
$ sudo systemctl status ntpNTPサーバーデーモンのステータス
NTPサーバーに接続しようとしているクライアントは、UDPポート123
で接続します。 。システムでUFWファイアウォールを有効にしている場合は、次の着信接続要求を許可するように構成してください。
$ sudo ufw allow from any to any port 123 proto udp Rules updated Rules updated (v6)
NTPクライアント構成
NTPサーバーが稼働しているので、クライアントシステムが時間同期のためにNTPサーバーに接続する方法を示します。クライアントシステムで以下の手順に従ってください:
- まず、
ntpdate
をインストールする必要があります パッケージ。これを使用して、クライアントと作成したNTPタイムサーバー間の接続を確認できます。$ sudo apt install ntpdate
- 次に、システム時刻をNTPサーバーと手動で同期してみましょう。次のコマンドを入力し、必要に応じてNTPサーバーのIPアドレスまたはホスト名を置き換えます。
$ sudo ntpdate 192.168.1.55
NTPサーバーへの接続が成功しました - それは期待どおりに機能しているようです。次に、Ubuntuのデフォルトの
timesyncd
を必ず無効にしてください これは、NTPサーバーとの同期の試みと競合するためです。$ sudo timedatectl set-ntp off
- 次に、クライアントシステムにNTPデーモンをインストールして、以前に設定したNTPサーバーから時間を取得するように構成できるようにする必要があります。
$ sudo apt install ntp
-
ntp.conf
に1行追加するだけで済みます ファイル、そして私達は単一のコマンドでそれを非常に簡単に行うことができます。以下のIPアドレスをNTPサーバーのホスト名またはIPアドレスに置き換えてください。$ sudo bash -c "echo server 192.168.1.55 prefer iburst >> /etc/ntp.conf"
> - 次に、NTPデーモンを再起動します。
$ sudo systemctl restart ntp
- 最後に、
ntpq
を使用します NTP時間同期キューを一覧表示するコマンド:$ ntpq -p
ntpqコマンドからの出力アスタリスク
*
上のスクリーンショットは、NTPサーバーが192.168.1.55
であることを示しています。 現在の時刻同期ソースとしてが選択されています。ntp.conf
内でNTPサーバーを構成した方法であるため、NTPサーバーがオフラインにならない限り、これは当てはまるはずです。 構成ファイル。ntpq
の解釈方法の詳細については、以下の付録をお読みください。 コマンドの出力。
付録
NTPQコマンド列の出力の解釈 :
- リモート –時計を同期させたいリモートサーバー
- refid –リモートサーバーへのアップストリーム階層。ストラタム1サーバーの場合、これはストラタム0ソースになります。
- st –層レベル、0から16。
- t –接続のタイプ。ユニキャストまたはマルチキャストの場合は「u」、ブロードキャストまたはマルチキャストの場合は「b」、ローカル基準クロックの場合は「l」、対称ピアの場合は「s」、メニーキャストサーバーの場合は「A」、ブロードキャストサーバーの場合は「B」、またはマルチキャストサーバーの「M」
- いつ –サーバーがその時間について最後に照会されたとき。デフォルトは秒です。「m」は分、「h」は時間、「d」は日で表示されます。
- ポーリング –サーバーがその時間に照会される頻度(最小16秒から最大36時間)。また、2の累乗の値として表示されます。通常、64秒から1024秒の間です。
- リーチ –これは、リモートサーバーとの通信の成功率と失敗率を示す8ビットの左シフト8進値です。成功はビットが設定されていることを意味し、失敗はビットが設定されていないことを意味します。 377が最高値です。
- 遅延 –この値はミリ秒単位で表示され、リモートサーバーと通信しているコンピューターのラウンドトリップ時間(RTT)を示します。
- オフセット –この値は、二乗平均平方根を使用してミリ秒単位で表示され、サーバーから提供された報告時刻から時計がどれだけ離れているかを示します。正または負の場合があります。
- ジッター –この数値はミリ秒単位の絶対値であり、オフセットの二乗平均平方根偏差を示します。
NTPQコマンド行の出力の解釈 :
- 」「 無効として破棄されます。リモートマシンと通信できない(オンラインではない)可能性があります。このタイムソースは「.LOCL」です。 refidタイムソース、高層サーバー、またはリモートサーバーがこのコンピューターをNTPサーバーとして使用しています。
- x 交差アルゴリズムによって破棄されます。
- 。 テーブルオーバーフローによって破棄されます(使用されません)。
- – クラスターアルゴリズムによって破棄されます。
- + 結合アルゴリズムに含まれています。これは、同期している現在のサーバーが何らかの理由で破棄された場合に適しています。
- # 代替バックアップとして使用するのに適したリモートサーバー。これは、リモートサーバーが10台を超える場合にのみ表示されます。
- * 現在のシステムピア。コンピューターは、このリモートサーバーをタイムソースとして使用して、時計を同期しています。
- o パルス/秒(PPS)ピア。これは一般的にGPSタイムソースで使用されますが、PPSを配信するタイムソースならどれでも使用できます。この集計コードと前の集計コード「*」は同時に表示されません。
参照:https://pthree.org/2013/11/05/real-life-ntp/
結論
この記事では、National Time Protocol(NTP)と、Ubuntu 20.04FocalFossaで独自のNTPサーバーをセットアップする方法について学習しました。また、時刻同期のためにNTPサーバーに接続するようにクライアントマシン(または通常は複数のマシン)を構成する方法も確認しました。