質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
NTP

NTP (Network Time Protocol) とは、時計の時刻をネットワーク上のNTPサーバーの持つ正しい時刻に同期するためのプロトコルです。

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Q&A

解決済

4回答

22822閲覧

NTPサーバーと同期がとれない

giftend

総合スコア13

NTP

NTP (Network Time Protocol) とは、時計の時刻をネットワーク上のNTPサーバーの持つ正しい時刻に同期するためのプロトコルです。

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

0グッド

1クリップ

投稿2019/02/13 03:14

同一セグメント上に以下のコンピュータがあります。

コンピュータA IPアドレス:XXX.XXX.XXX.100 OS:Windows10
コンピュータB IPアドレス:XXX.XXX.XXX.101 OS:CentOS7

今回、コンピュータBをNTPサーバのあるコンピュータAに同期させようとしたのですがうまくいきません

# chronyc sources 210 Number of sources = 1 MS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== ^? XXX.XXX.XXX.100 0 7 0 - +0ns[ +0ns] +/- 0ns

/etc/chronyc.confには以下のように記述しています。

# Use public servers from the pool.ntp.org project. # Please consider joining the pool (http://www.pool.ntp.org/join.html). server XXX.XXX.XXX.100 iburst . . # Allow NTP client access from local network. allow XXX.XXX.XXX.0/24

コンピュータBのfirewall、SELinuxは無効にしています。
そのため、サーバ側(コンピュータA)の設定が悪いのか疑いコンピュータC(IPアドレス:XXX.XXX.XXX.102 OS:Windows7)からコンピュータAにNTP同期を試したところ成功しました。
また、コンピュータBもntp.nict.jpとは同期がとれることを確認しています。

どのような設定をしたらコンピュータBがコンピュータAのNTPサーバと同期がとれるようになるのか教えていただきたいです。よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

y_waiwai

2019/02/13 03:16

A←Bにpingは通るんでしょうか
giftend

2019/02/13 03:28

情報が足りずすいません。pingは両者とも通ります。 よろしくお願いします。
otn

2019/02/13 03:29

> OS:Windows7)からコンピュータAにNTP同期を試したところ成功しました。 これは具体的に、何をやって、どうなったのですか?
giftend

2019/02/13 03:44

コンピュータCより「コントロールパネル」ー「インターネット時刻タブ」ー「設定の変更」 コンピュータAのIPアドレスを入力し、「今すぐ更新」をクリックして同期がとれたため成功したと表現しました。 また、コンピュータAのNTPサーバ化は以下のURLを参考にしました。 https://www.eaton-daitron.jp/techblog/5751.html よろしくお願いします。
otn

2019/02/13 03:49

じゃあ、サーバー側は正常ですね。もしかして、net timeコマンドでの同期の事を言ってないかという心配でした。
kunai

2019/02/13 04:09

telnet *.*.*.100 123 で、ntpのポートにつなぐことは出来ますか?
giftend

2019/02/13 07:37

試してみたところタイムアウトしてしまいつながりませんでした。ここら辺が怪しそうです。 ただコンピュータBからntp.nict.jpに同期がとれることから123番ポートがあいていると思っていたのですがこれは認識が間違っているでしょうか?コンピュータCからコンピュータAに同期がとれたのでファイアーウォールの設定も正しいと思うのですが、、
otn

2019/02/13 07:43

ntpはUDPなので、telnetで繋がらなくて正常です。
giftend

2019/02/13 08:32

疑問に答えていただきありがとうございます。 回答にあるようにwindowsとlinuxの親和性に問題がありそうなのでもう少し調べてみようと思います。
guest

回答4

0

Windowsで提供するNTPサービスは、Linux系OSからの同期に対しては親和性がありません。
いろいろとパラメータを調整する必要があります。
「Linux Windows NTP」または「Cisco Windows NTP」で検索すればご期待のサイトが見つかると思います。

投稿2019/02/13 04:42

over

総合スコア4313

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

giftend

2019/02/13 07:26

回答ありがとうございます。windowsとlinuxでいろいろ違うのですね。それらのワードで調べてみようと思います。
guest

0

NTPクライアント(CentOS7.2 + Chrony3.4)からNTPサーバ(Windows10)に
同期させようとしたのですが、私の場合もうまくいかず、対策を調査して
いたらこのページにたどり着きました。おかげさまで、原因と対策が
わかったので、報告したいと思います。

Windows NTPサーバは、[インターネット時刻サーバと同期する]設定が OFF の
場合、内部クロックの精度を[LocalClockDispersion]レジストリの値を
"Root Dispersion"(ゆらぎ/精度)として、NTP クライアントに提供している(*1)
ようです。

NTP クライアントは、"Root Dispersion"を以下のコマンドで確認できます。

# chronyc ntpdata ... Root dispersion : 10.000061 seconds ...

[LocalClockDispersion]レジストリのデフォルト値は"10"、つまり10秒なので、
NTP クライアント側でも、"Root Dispersion"は近い値になるようです。

NTP クライアントである Crony は、"Root Dispersion"が[maxdistance]の
デフォルト値3秒を超える場合、NTP サーバと同期しない(*2, *3)ため、
結果として、Windows NTP サーバと同期できないという問題が発生していました。

解決方法は2つあります。
以下いずれの方法でも、うまく同期することを確認しました。

  • 方法1 Windows NTP サーバの設定を変更する
    "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config"レジストリキーの[LocalClockDispersion]レジストリの値を"0"に設定し、[Windows Time]サービス(W32Time)を再起動します。

  • 方法2 NTP クライアントの設定を変更する
    "/etc/chrony.conf"に、"maxdistance 20"という行を追加し、
    "systemctl restart chronyd"コマンドにより NTP クライアントを再起動
    します。[maxdistance]パラメータに指定する値は、"chronyc ntpdata"
    コマンドで表示された"Root dispersion"よりも大きめの値を指定します。

なお、Windows NTP サーバにて、Windows10 のデフォルトのインターネット
時刻サーバである"time.windows.com"を設定したところ、NTP クライアント
では、"Root dispersion : 7.789963 seconds"と表示されました。
これも、3秒以上なので、Chrony では同期できません。
おそらくこれが、over様のおっしゃる"親和性がない"理由なのでしょう。

逆に言えば、同じ Windows 同士なら、この程度のずれは許容範囲のようで、giftend様が報告しているように Windows7 からは問題なく同期できるのでしょう。

そのため、giftend様がNTPサーバの参考にされた下記サイトのように、
https://www.eaton-daitron.jp/techblog/5751.html
[LocalClockDispersion]レジストリについての説明がないため、Linux NTP
クライアントから Windows NTP サーバを利用したい方は、
この問題に陥りやすいのでしょう。

giftend様は、そのあと、このレジストリの値を"0"にしてコンピュータを
再起動したので、うまく同期がとれるようになったということだと思います。

*1 https://docs.microsoft.com/ja-jp/windows-server/networking/windows-time-service/windows-time-service-tools-and-settings
*2 https://chrony.tuxfamily.org/faq.html#_using_a_windows_ntp_server
*3 https://unix.stackexchange.com/questions/404046/chrony-3-1-refuses-to-sync-with-ntp-server

投稿2020/04/17 17:42

編集2020/04/18 02:45
woody_poco

総合スコア6

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

自己解決

今日確認してみると同期が成功していました。特に何も設定を変えた訳ではないですが、思い当たることといえばwindows側を再起動したことくらいです。
https://ips.nekotype.com/1498/
こちらのサイトにも時間が解決したと書いてあるのでそういうものなのでしょうか、、
あまりすっきりとした回答ではないですが以上が自己解決の方法でした。
回答してくださったみなさま、ありがとうございました。

投稿2019/02/15 02:03

giftend

総合スコア13

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

Chronyを参照したところ、Reachが0になっているため
CentOSからWindows10へのNTP同期通信に失敗しているようです。
pingは通るとのことですので、NTPサービス周りの設定がおかしいと思います。

Windows7からWindows10へのNTP同期は出来たとおっしゃっていますが、
こちらはどのようにして確認されたのでしょうか。

Windows10でNTPサービスを有効にするにはレジストリの[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer]をEnableにしなければいけませんがこちらは実施されましたか?

追記

overさんが回答されている通り、WindowsのNTPサービスについては色々と特殊な設定が必要なようです。
(レジストリを複数編集)参考
どうしてもWindowsをNTPサーバにしたいという理由がなければCentOSをNTPサーバとして使用するのが良いと思われます。
なお、調べてみたところWindows10より前はNTPサービスの精度がそもそも悪かったようです。

投稿2019/02/13 04:28

編集2019/02/13 07:43
ozwind918

総合スコア1140

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

giftend

2019/02/13 07:23

回答ありがとうございます。 https://www.eaton-daitron.jp/techblog/5751.html こちらのサイトを参考にNTPサーバをたてました。 その過程で[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer]の値を1に変更しています。 よろしくお願いします。
giftend

2019/02/13 08:36

回答ありがとうございます。自分も参考に上げているサイトを発見しregeditの以下を変更したのですが解決しませんでした。 ****************************************************** [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters] NtpServer time.windows.com,0x9 > time.windows.com,0x8 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config] LocalClockDispersion a > 0 AnnounceFlags a > 5 MinPollInterval a > 6 MaxPollInterval f > a [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer] Enabled 0 > 1 ****************************************************** もう少し頑張ってみて、それでもうまくいかなかった場合はあきらめてCentOSをNTPサーバーにしようと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問