NTP(Network Time Protocol)は、ネットワークを介してコンピューターのクロックを同期するためのネットワークプロトコルです。ネットワークシステム上にサーバーとクライアントプログラムの両方があります。各サーバーには、時計をネットワークタイムサーバーに同期するためのNTPクライアントソフトウェアが必要です。ほとんどの場合、サーバーはデフォルトでデバイスのオペレーティングシステムに常駐しています。
NTPサーバーの重要な機能
NTPの基本的な機能は次のとおりです。
- NTPには、すべてのシステムクロックに正しい時刻があるため、標準時刻を提供する基準クロックが必要ですが、ビットの変動はわずかである可能性がありますが、NTPはいくつかの標準計算を使用して正しい時刻を計算します。
- 基準時間としてUTC(協定世界時)に依存します
- NTPは、複数のタイムソースを解決し、累積エラーを最小限に抑えることで時間を同期するフォールトトレラントプロトコルです。一時的または永続的な不正確なタイムソースを破棄します。
- 非常にスケーラブルです。各ノードが双方向または単方向で通信し、基準クロックが上にあるツリーのような構造を形成することで時間を送信するので、できるだけ多くのタイムソースを追加できます。
- 利用可能なタイムソースの中からナノ秒未満の許容誤差で最良のものを選択するため、非常に正確です。
- ネットワークが一時的にダウンしている場合でも、過去からの時間を計算して現在の時間と許容誤差を推定するため、機能します。
このガイドでは、NTPサーバーとそのクライアントプログラムをUbuntuにインストールする方法を説明します。
要件
- 実行中のUbuntuサーバー
- sudo権限を持つユーザー(rootまたは非root)
UbuntuへのNTPサーバーのインストール
まず、UbuntuにNTPサーバーをインストールする手順を段階的に説明します。
ステップ1:システムリポジトリの更新
デフォルトでは、NTPサーバーパッケージはUbuntuのデフォルトのパッケージリポジトリで利用できますが、インストールする前に、以下のコマンドを使用してパッケージリポジトリを更新しましょう。
$ sudo apt update -y
ステップ2:NTPサーバーをインストールする
これで、以下のコマンドを使用してNTPサーバーをインストールできます
$ sudo apt install ntp
確認プロンプトで「Y」と入力し、Enterキーを押して、インストールプロセスを続行します。
ステップ3:NTPサーバーのインストールを確認する
次に、以下のコマンドを使用してNTPサーバーのインストールステータスを確認します
$ sntp --version
ステップ4:NTPサーバーを構成する
インストールが正常に完了したら、パブリックNTPサーバーから時刻を同期できるように構成します。これを行うには、以下のコマンドを使用してntp.confファイルを編集する必要があります。
$ sudo nano /etc/ntp.conf
次に、以下の行を置き換える必要があります
pool 0.ubuntu.pool.ntp.org iburst pool 1.ubuntu.pool.ntp.org iburst pool 2.ubuntu.pool.ntp.org iburst pool 3.ubuntu.pool.ntp.org iburst
このチュートリアルで希望するNTPプールサーバーを使用して、ヨーロッパを使用しています。 NTPプールサーバーのリストはここで確認できます
pool 0.europe.pool.ntp.org iburst pool 1.europe.pool.ntp.org iburst pool 2.europe.pool.ntp.org iburst pool 3.europe.pool.ntp.org iburst
上記の行を置き換えたら、構成ファイルを保存して終了してください。これらの設定を適用するには、以下のコマンドを使用してNTPサービスを再起動する必要があります
$ sudo systemctl restart ntp
再起動後、以下のコマンドを使用してNTPサービスのステータスを確認できます
$ sudo systemctl status ntp
UbuntuへのNTPクライアントのインストール
このセクションでは、NTPサーバーと同期できるようにNTPクライアントをインストールする手順を段階的に説明します。
ステップ1:Ntpdateをインストールする
Ntpdateは、システムがNTPサーバーに接続することによって時刻と日付を同期できるようにするプログラムです。したがって、以下のコマンドを使用してNtpdateをインストールします
$ sudo apt install ntpdate
ステップ2:ホストファイルにNTPサーバーIPを追加する
NTPクライアントはホスト名でNTPサーバーを解決する必要があるため、そのためには、NTPサーバーのIPアドレスとホスト名を/ etc/hostsファイルに追加する必要があります。
以下のコマンドを使用して/etc/hostsファイルを編集するには
$ sudo nano /etc/hosts
次に、次のように/ etc/hostsファイルにホスト名を使用してサーバーIPを追加します
ステップ3:クライアントの時刻同期を確認する
次に、クライアントシステムがNTPサーバーの時刻と同期しているかどうかをテストし、コマンドを実行します。
$ sudo ntpdate ntp-server-host
ステップ4:NTPクライアントのインストール
次に、クライアントシステムにNTPサービスをインストールする必要があります。これを実現するには、以下のコマンドを使用します。
$ sudo apt install ntp
ステップ5:NTPクライアントの構成
この手順の目的は、NTPサーバーとして機能するように以前に構成されたNTPサーバーを使用することです。これを行うには、/ etc/ntp.confファイルを編集する必要があります。
$ sudo nano /etc/ntp.conf
このようなサーバー設定を追加します
構成ファイルを保存して終了します。
変更を有効にするには、以下のコマンドを使用してNTPサービスを再起動します
$ sudo systemctl restart ntp
ステップ6:NPT時刻同期キューの確認
これで、クライアントとNTPサーバーが非同期になり、コマンドを実行して同期の詳細を表示できます。
$ ntpq -p
出力は次のようになります
この時点で、UbuntuでNTPサーバーを正常に構成し、NTPサーバーから同期するようにNTPクライアントを設定しました。