背景
顧客は LAN を持っていますが、LAN 内のデバイスの時間が不一致であるため、対話中に問題が発生する可能性があります。
ここで、たまたま 2 つのイーサネット インターフェイスを持つホストがあり、そのうちの 1 つは外部ネットワークに接続でき、ネットワーク時刻を取得できるので、このホストを LAN 内の他のホストと時刻同期するための NTP サーバーにすることができます。
関連する手順は次のとおりです。
WindowsでNTPサーバーを設定する方法
手動構成
-
レジストリ エディタを開きます。Win+R キーを押し、 Enter キー
regedit
を押して Enter キーを押します。 -
案内する
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer
-
右側のパネルで「有効」をダブルクリックし、データ値フィールドに「1」を入力します。
-
案内する
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config
-
右側のパネルで、「AnnounceFlags」をダブルクリックし、データ値フィールドに「5」を入力します。
-
レジストリ エディタを閉じます。
-
コマンド プロンプトを (管理者として) 開き、次のコマンドを入力して Windows タイム サービスを再起動します。
net stop w32time && net start w32time
Windows ホストは NTP サーバーとして設定されており、他のデバイス (Linux ホストや NVR デバイスなど) はこのホストから時刻情報を取得できる必要があります。Linux ホストおよび NVR デバイスの場合、NTP クライアントが Windows ホストの IP アドレスを指すようにする必要があります。
設定パラメータAnnounceFlags
とEnabled
意味
Windows レジストリ設定では、AnnounceFlags
これらEnabled
2 つのキー値は NTP サーバーの構成に対して特別な意味を持ちます。
-
AnnounceFlags
:このキーは、W32Time サービス (Windows タイム) が利用可能なタイム ソースとしてネットワークに自身を通知するかどうか (およびその方法) を制御します。その値は、さまざまなフラグを表すビットマスクです。AnnounceFlags
の値が 5 に設定されている場合は、次の 2 つの条件を意味します。-
値 4 (バイナリ 100) は、ローカル マシンが信頼できるタイム サーバーである (たとえば、ハードウェア クロックまたは外部 NTP サーバーと手動で同期するように構成されている) 場合にのみ、W32Time サービス自身をタイム サーバーとしてアドバタイズするように指示します。 。
-
値 1 (バイナリ 001) を指定すると、W32Time サービスは、正規の時刻更新を受信したかどうかに関係なく、常に自身をタイム サーバーとしてアドバタイズします。
-
-
Enabled
:このキーは、NTPServer を有効にするかどうかを決定します。この値を 1 に設定すると、NTPServer が有効になります。つまり、W32Time サービスが NTP サーバーとして機能し、他のデバイスに時刻を提供します。
レジストリを変更する前に、必ず復元ポイントを作成するか、レジストリをバックアップしてください。間違った変更を行うと、システムが不安定になる可能性があります。
ソフトウェア設定(NetTime)の使用
Windows には、NTP サーバーを簡単にセットアップできるサードパーティ アプリケーションがあります。
たとえば、「ネットタイム」です。NetTime は、サーバーとしても実行できる、シンプルで使いやすい時刻同期クライアントです。設定方法の手順は次のとおりです。
-
NetTime をダウンロードしてインストールします: http://www.timesynctool.com/
-
NetTime を実行し、システム トレイの NetTime アイコンを右クリックして、[設定] を選択します。
-
「設定」ウィンドウで「常に時刻を提供する」オプションをチェックして、NetTime が時刻サービスを提供するサーバーとして機能するようにします。
-
「OK」をクリックして設定を保存します。
このようにして、Windows ホストを NTP サーバーとして設定します。その後、他のデバイス (Linux ホストや NVR デバイスなど) 上の NTP クライアントに Windows ホストの IP アドレスを指定して、LAN 内で時刻同期を実現できます。
実際の操作
ダウンロードしてください:
ダウンロードが完了したら、デフォルトのインストールをクリックします。
[設定] をクリックし、[他のコンピューターがこのコンピューターと同期することを許可する] にチェックを入れます。
警告がポップアップ表示され、このホストを NTP サーバーとして使用する場合は、このホストの正確性を確認する必要があることを思い出させます。ホストの時間です。「いいえ」をクリックしてください:
関連する質問: 0.nettime.pool.ntp.org とは何ですか?
0.nettime.pool.ntp.org
NTP プール プロジェクトの一部であるパブリック ネットワーク タイム プロトコル (NTP) サーバー アドレスです。
NTP プール プロジェクトは、ボランティアとスポンサーによって維持される NTP サーバーの大規模なプールです。世界中のインターネット ユーザーに正確な時刻サービスを提供します。「pool.ntp.org」プロジェクトは、DNS ラウンド ロビンを使用してトラフィックをさまざまなタイム サーバーに分散します。つまり、「pool.ntp.org」にクエリを実行すると、DNS サーバーはプール内の任意のサーバーの IP アドレスを返します。
0.nettime.pool.ntp.org
このアドレスは、NTP0
プール内のサーバーの論理番号を示しており、サーバー グループの名前である可能性がありますが、それに関する具体的な情報はnettime
見つかりませんでした。nettime
通常、次のようなアドレスが表示されます0.pool.ntp.org
。1.pool.ntp.org
数字 (0、1 など) はさまざまなサーバーまたはサーバーのグループを表します。
ただし、ネットワークがインターネットにアクセスできない場合は、インターネット経由で NTP プールのサーバーにアクセスする必要があるため、このアドレスは使用できません。この場合、前に説明したように内部 NTP サーバーをセットアップする必要があります。
予防
Windows ホストのポート 123 が占有されているかどうかを必ず確認してください。方法については、Windows のポート占有の確認、ポートからプロセス番号を見つける (プロセス番号を見つける)、プロセス番号からアプリケーション名を見つける (アプリケーションを見つけます) (netstat、タスクリスト)
ubuntu20.04でNTPサーバーの時間を同期するにはどうすればよいですか?
timedatectl systemd-timesyncd サービスの使用
Ubuntu 20.04 では、systemd-timesyncd
デフォルトでこのサービスを使用して時刻を同期するため、NTP を個別にインストールする必要はありません。timedatectl
NTP サーバーで時刻を同期する方法は次のとおりです。
-
まずターミナルを開きます。
-
systemd-timesyncd
次のコマンドを使用してサービスのステータスを確認します。
timedatectl status
NTP service: active
行に が表示されている場合は、サービスが実行中であることyes
を意味します。systemd-timesyncd
そうでない場合は、次のようにして開始できます。
sudo timedatectl set-ntp on
- これで、システムはデフォルトの NTP サーバーから時刻を自動的に同期するようになります。
/etc/systemd/timesyncd.conf
ファイルを変更して NTP サーバーを変更することもできます。たとえば、nano エディターを使用すると、次のようになります。
sudo nano /etc/systemd/timesyncd.conf
- このファイルで、
#NTP=
で始まる行を見つけて、#
NTP サーバーを削除し、複数のサーバーをスペースで区切って追加します。例えば:
NTP=server1 server2
- ファイルを保存して閉じます。次に、
systemd-timesyncd
サービスを再起動して変更を適用します。
sudo systemctl restart systemd-timesyncd
7. 時刻の同期が成功したかどうかを確認します。コマンド
を使用してtimedatectl
確認します。同期が成功すると、ボックスの RTC 時刻の時刻が 1970xxxx ではなく正しく表示されます。
timedatectl
次のコマンドを使用して、systemctl status systemd-timesyncd.service --no-pager
systemd-timesyncd サービスのステータスと重要なログを表示します。
systemctl status systemd-timesyncd.service --no-pager
同期が成功すると、次のテキスト行が表示されます。
Initial synchronization to time server 192.168.19.232:123 (192.168.19.232).
これらは、 Ubuntu 20.04 でtimedatectl
NTP サーバー時刻を同期するために使用される手順です。
Windows NTP サーバーの送信トラフィックと受信トラフィックを設定する (代替)
注: この方法は代替手段であり、ntp を同期できない場合は、ntp をオンにして同期できるかどうかをテストできます。
Windows では、次の手順に従って、UDP ポート 123 での受信および送信トラフィックを許可するようにファイアウォールを確認および構成できます。
-
コントロールパネルを開きます。
-
「システムとセキュリティ」をクリックします。
-
「Windows Defender ファイアウォール」をクリックします。
-
左側のメニューで「詳細設定」をクリックします。
-
新しいウィンドウには、「受信ルール」と「送信ルール」という 2 つのオプションが表示されます。まず、受信 UDP ポート 123 を許可するルールを作成しましょう。
-
「受信ルール」をクリックし、右側の「新しいルール」をクリックします。
-
ポップアップウィザードで「ポート」を選択し、「次へ」をクリックします。
-
「UDP」を選択し、「特定のローカルポート」に「123」を入力して「次へ」をクリックします。
-
「接続を許可する」を選択し、「次へ」をクリックします。
-
すべてのネットワークの種類がチェックされていることを確認し、「次へ」をクリックします。
-
ルールに名前を付けて (たとえば、「NTP UDP 123 Inbound」)、「完了」をクリックします。
次に、UDP ポート 123 の送信を許可するルールを作成します。
-
左側のメニューで「送信ルール」をクリックし、右側の「新しいルール」をクリックします。
-
手順 9 で [接続を許可する] を選択する以外は、手順 7 ~ 11 を繰り返します。
これで、UDP ポート 123 での受信および送信トラフィックを許可するように Windows ファイアウォールが構成されます。