OpenNTPD

提供: ArchWiki
移動先: 案内検索

OpenNTPD (OpenBSD プロジェクトのメンバー) は Network Time Protocol を使ってインターネット上の時刻サーバーとシステムクロックを同期することができるデーモンです。必要ならば OpenNTPD 自体も時刻サーバーとして使うことができます。

インストール

openntpd パッケージをインストールしてください。ローカルコンピュータの時刻を同期したいだけならデフォルト設定で問題ありません。詳しい設定をしたいときは、/etc/ntpd.conf ファイルを編集してください:

特定のサーバーと同期するには、"server" ディレクティブをアンコメント・編集します。www.pool.ntp.org/zone/@ であなたの地域にあるサーバーの URL を確認できます。

server ntp.example.org

"servers" ディレクティブも "server" ディレクティブと同じように機能しますが、DNS で複数の IP アドレスが解決される場合、全てのサーバーに同期されます。大抵の場合はデフォルトの "pool.ntp.org" で何の問題もありません。

pool.ntp.org

"server" や "servers" ディレクティブはいくらでも使うことができます。

OpenNTPD を時刻サーバーとしてコンピュータで実行したい場合、"listen" ディレクティブをアンコメント・編集してください。例:

listen on *

上記の設定だと全てのインターフェイスを listen します。ループバックインターフェイスだけを listen するには:

listen on 127.0.0.1

精度を高めるために、まず現在の時刻を同期してから時刻サーバーは時刻を送信し始めます。システムの精度によって、数時間から数日かかることもあります。

systemd で OpenNTPD を有効化

openntpd サービスを起動・有効化してください。

openntpd をネットワーク接続に依存させる

ネットワーク接続が必ずしもあるわけではない場合 (ノートパソコンで無線接続している場合やダイアルアップ接続を使っている場合など)、起動時にシステムデーモンとして openntpd を実行することは理にかなっていません。以下はネットワーク接続にあわせて openntpd を制御する方法です。以下の設定は ntpd でも使うことができます。

NetworkManager dispatcher を使う

NetworkManager の dispatcher スクリプトを使うことでネットワーク接続に合わせて OpenNTPD を立ち上げたり停止することができます。networkmanager-dispatcher-openntpd で必要なスクリプトをインストールすることが可能です。

dhcpcd フックを使う

/usr/lib/dhcpcd/dhcpcd-hooks/*

dhcpcd#フックを見てください。

トラブルシューティング

時刻が同期されない

時刻が正しく設定されずログに以下のように表示される場合:

openntpd adjtime failed: Invalid argument

以下を実行してみてください:

ntpd -s -d

上記のコマンドでシステムを手動で同期することができます。

時刻のズレが増える

バックグラウンドで openntpd を実行すると実際の時刻とコンピュータに保存されている時刻の同期エラーが発生することがあります。デスクトップの時計と実際の時刻のズレが増えていっている場合、openntpd デーモンをバックグラウンドではなく通常の方法で起動してください。

参照