開発運用

Ubuntu NTP 時刻同期設定

NTP(Network Time Protocol)を使用して、Ubuntuサーバーでの時刻同期を行う方法について、完全かつ包括的な記事を以下に記載します。NTPは、インターネットを介してネットワーク上のコンピュータの時計を正確に同期させるためのプロトコルであり、システムの時刻が正確であることは、ログの記録やタイムスタンプを管理するために非常に重要です。

NTPとは?

NTPは、時刻同期のために開発されたプロトコルで、インターネット越しに精度の高い時刻を提供します。これにより、分散システムで実行されている複数のコンピュータが同じ基準の時間を使用することができ、誤差を最小限に抑えることができます。

UbuntuでのNTPの設定方法

UbuntuサーバーにNTPを設定するための手順を詳しく説明します。以下の手順に従うことで、簡単にNTPを使用して時刻同期を行うことができます。

1. NTPパッケージのインストール

まず、NTPをインストールする必要があります。以下のコマンドを実行して、最新のパッケージリストを更新し、NTPをインストールします。

bash
sudo apt update sudo apt install ntp

インストールが完了したら、NTPサービスが自動的に起動します。

2. NTPサービスの確認

インストール後、NTPサービスが正しく動作しているかどうかを確認します。次のコマンドを実行して、サービスのステータスを確認します。

bash
sudo systemctl status ntp

ステータスが「active (running)」と表示されていれば、NTPが正常に動作しています。

3. NTPサーバーの設定

デフォルトでは、Ubuntuは「ubuntu.pool.ntp.org」などのパブリックNTPサーバーを使用しますが、独自のNTPサーバーを指定することも可能です。設定ファイルを編集して、使用するNTPサーバーを指定します。

bash
sudo nano /etc/ntp.conf

設定ファイルが開かれたら、server 行を編集または追加して、信頼性のあるNTPサーバーを指定します。例えば、以下のように設定できます。

bash
server 0.centos.pool.ntp.org server 1.centos.pool.ntp.org

変更を保存してファイルを閉じた後、NTPサービスを再起動して設定を反映させます。

bash
sudo systemctl restart ntp

4. NTPクライアントの設定

NTPクライアントが正しく時刻を同期するようにするためには、ntpd(NTPデーモン)を使用するか、軽量な chrony を利用することができます。chronyは特にモバイルデバイスや仮想マシン環境で有用です。

5. NTPの動作確認

NTPが正しく動作しているかどうかを確認するために、次のコマンドを実行します。

bash
ntpq -p

このコマンドは、現在使用中のNTPサーバーとそのステータスを表示します。表示されるリストの中で、時刻が同期されているサーバーが確認できるはずです。

また、timedatectlコマンドを使ってシステムの時刻を確認することもできます。

bash
timedatectl

このコマンドにより、システムの現在時刻とタイムゾーン、NTPの状態などが確認できます。

6. NTPのトラブルシューティング

NTPが正しく動作していない場合、以下の手順で問題を解決できます。

  • NTPサービスが停止していないか確認:systemctl status ntpでサービスが正常に動作しているか確認します。
  • サーバーの選択を変更:時刻同期に失敗している場合、別のNTPサーバーを指定してみてください。
  • ファイアウォール設定:ファイアウォールがNTPのポート(UDP 123)をブロックしている場合、これを許可する必要があります。以下のコマンドでファイアウォールの設定を確認します。
bash
sudo ufw allow 123/udp

7. NTPの代替ツール(Chrony)

ntpの代わりに、chronyを使う方法もあります。chronyは、特に仮想環境やネットワークが不安定な場合に強力なパフォーマンスを発揮します。

chronyをインストールするには、以下のコマンドを使用します。

bash
sudo apt install chrony

インストール後、chronydサービスを起動します。

bash
sudo systemctl start chrony sudo systemctl enable chrony

chronyが正常に動作しているか確認するために、以下のコマンドを実行します。

bash
chronyc tracking

これにより、時刻同期の状態を確認することができます。

8. NTPによる時刻同期の自動化

Ubuntuはデフォルトでシステムの時刻を自動的に同期しますが、systemd-timesyncdというシステムサービスを使用しても、時刻の同期を簡単に管理できます。systemd-timesyncdは、chronyntpよりも軽量で、シンプルな時刻同期が可能です。

systemd-timesyncdを有効にするには、以下のコマンドを使用します。

bash
sudo timedatectl set-ntp true

これにより、systemd-timesyncdが自動的にシステムの時刻を同期します。

結論

UbuntuサーバーでのNTP設定は、システムの時刻を正確に保つために非常に重要です。ntpchronysystemd-timesyncdを使用することで、サーバーやクライアントが正確な時刻を維持することができます。正確な時刻管理は、特に分散システムやログの管理において不可欠です。時刻同期の問題を解決するために、適切なNTP設定を行うことがシステム運用の品質向上につながります。

Back to top button