Last active
February 8, 2025 08:57
-
-
Save azass/8658983ffc1fa6a45656f21befaa177e to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 に設定 | |
これらを順に確認すれば、問題が特定できるはずです。 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment