WindowsをNTPサーバーに設定し、Linuxクライアントが時刻同期できない場合、以下の原因が考えられます。 ① WindowsのNTPサーバーが正しく動作していない 確認方法 Windowsで以下のコマンドを実行し、NTPサーバーとして動作しているか確認してください。 w32tm /query /configuration 出力の確認ポイント • NtpServer が Enabled: 1 になっているか • AnnounceFlags が 5 になっているか • Type が NTP または AllSync になっているか Windows NTPサーバーの状態確認 w32tm /query /status NTPサーバーとして動作している場合、時刻情報やストラタム(階層)が表示されます。 ② WindowsのファイアウォールでUDP 123がブロックされている NTPは UDP 123 を使用します。ファイアウォールで開放されていないとクライアントが接続できません。 開放確認(PowerShell) Get-NetFirewallRule | Where-Object { $_.DisplayName -like "*NTP*" } 開放されていない場合は追加 New-NetFirewallRule -DisplayName "NTP Server" -Direction Inbound -Protocol UDP -LocalPort 123 -Action Allow またはGUIで確認 1. 「Windows Defender ファイアウォール」を開く 2. 「受信の規則」→「新しい規則」→「ポート」→「UDP 123」→「許可」 ③ LinuxクライアントがWindowsのNTPサーバーに接続できない Linux側でWindowsのNTPサーバーに接続できるか確認します。 接続テスト NTPポートが開いているか確認 nc -zvu 192.168.1.100 123 → succeeded と表示されない場合、ネットワークかファイアウォールの問題 ntpdateで直接時刻取得(Chrony/NTPクライアントの代わりにテスト) sudo ntpdate -q 192.168.1.100 → no server suitable for synchronization found なら、WindowsのNTPサーバーが動作していない可能性あり chronyc sources でサーバーの状態確認(Chrony使用時) chronyc sources -v → Reach の値が 0 ならサーバーに接続できていない ④ WindowsのNTPサーバーが時刻同期を許可していない WindowsのNTPサーバーがクライアントからの同期リクエストを拒否している可能性があります。 対処方法 1. Windowsのレジストリ設定を見直す HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config の LocalClockDispersion を 0 に設定 reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config" /v LocalClockDispersion /t REG_DWORD /d 0 /f WindowsのNTPサービスを再起動 net stop w32time net start w32time 2. Windowsの時刻サービスを強制的に同期させる w32tm /resync /force ⑤ Windows NTPサーバーのストラタムが高すぎる WindowsのNTPサーバーが「信頼性の低い時間源」として扱われると、Linuxクライアントが同期しません。 ストラタム確認 w32tm /query /status → Stratum: 16 の場合、サーバーが無効な状態なので 外部NTPと同期するか、LocalClockDispersion を 0 にする 必要があります。 ⑥ LinuxクライアントのNTP設定ミス LinuxクライアントがWindowsのNTPサーバーを正しく指定しているか確認します。 Chronyの場合(推奨) sudo nano /etc/chrony/chrony.conf 以下のように記述: server 192.168.1.100 iburst Chronyを再起動: sudo systemctl restart chronyd chronyc tracking NTP(ntpd)の場合 sudo nano /etc/ntp.conf server 192.168.1.100 iburst 再起動: sudo systemctl restart ntp ntpq -p まとめ チェック項目 対処方法 WindowsのNTPサーバーが動作しているか w32tm /query /status WindowsのファイアウォールがUDP 123を開放しているか New-NetFirewallRule LinuxクライアントがWindowsに接続できるか nc -zvu 192.168.1.100 123 LinuxがWindowsのNTPサーバーを信頼しているか ntpq -p や chronyc sources -v Windowsのストラタムが高すぎないか w32tm /query /status Windowsが時刻同期を許可しているか LocalClockDispersion を 0 に設定 これらを順に確認すれば、問題が特定できるはずです。