Na minha rede, tenho um servidor NTP confiável com o qual todos os PCs estão sincronizados. Devido aos vários problemas pelos quais o serviço Windows Time é conhecido (pelo menos no Windows 7 e versões inferiores), desativei-o nas máquinas Windows e instalei a porta NTPD para Windows da Meinberg .
Isso funcionou de maneira confiável por muitos anos em todos os PCs que já testei, mas hoje tenho um problema com uma de minhas máquinas Windows (Windows 7 Pro x64, todas as atualizações aplicadas no momento da redação deste artigo).
Observe que C:\Program Files (x86)\NTP\etc\ntp.conf
nessa máquina é literalmente o mesmo que em todos os outros PCs com Windows nessa rede, exceto pela última linha (veja abaixo).
ntpd.conf
(na máquina problemática, alguns comentários foram removidos):
restrict default noquery nopeer nomodify notrap
restrict -6 default noquery nopeer nomodify notrap
# allow status queries and everything else from localhost
restrict 127.0.0.1
restrict -6 ::1
# if you need to allow access from a remote host, you can add lines like this:
# restrict <IP OF REMOTE HOST>
# Use drift file
driftfile "C:\Program Files (x86)\NTP\etc\ntp.drift"
# Use specific NTP servers
server timeserver.in.my.local.network iburst minpoll 6 maxpoll 7
# End of generated ntp.conf --- Please edit this to suite your needs
interface ignore wildcard
interface ignore ipv6
interface listen 127.0.0.1
interface listen 192.168.20.100
Obviamente, a última linha é diferente em PCs diferentes. E sim, eu realmente não quero ntpd
ouvir em cada interface / endereço IP, mas apenas no endereço IP "principal" e assim por diante localhost
.
O problema:
Como primeiro teste rápido que faço em todos os PCs após a instalação, abri cmd32
como administrator
no PC em questão e executei
C:\Program Files (x86)\NTP>ntpq -p
Isso resultou na seguinte mensagem de erro:
ntpq: read: No such file or directory
Eu estava primeiro acreditando no que dizia e analisando seu comportamento ProcessMonitor
, mas sem sucesso. Não consegui encontrar nenhuma dica de que não foi possível abrir um arquivo. Cocei minha cabeça por um tempo e tentei
C:\Program Files (x86)\NTP>ntpq -p 192.168.20.100
Desta vez, eu tenho
192.168.20.100: timed out, nothing received
***Request timed out
Portanto, obviamente, de acordo com minhas conclusões de ProcessMonitor
, não há problema em ler um arquivo, mas talvez em abrir o dispositivo de rede.
Estranhamente,
C:\Program Files (x86)\NTP>ntpq -p 127.0.0.1
produziu o resultado esperado:
remote refid st t when poll reach delay offset jitter
==============================================================================
*192.168.20.10 ( 192.53.103.108 2 u 8 128 377 0.977 0.194 0.977
Isso me fez coçar a cabeça novamente. Para os testes, eu desliguei o firewall do Windows no PC (e não há nenhum outro firewall instalado lá), mas ntpq -p
e ntpq -p 192.168.20.100
ainda estavam jogando as mesmas mensagens de erro como antes.
Como último teste, eu corri
C:\Program Files (x86)\NTP>netstat -abno
e pegou
Active Connections
...
UDP 127.0.0.1:123 *:* 5076
[ntpd.exe]
...
UDP 192.168.20.100:123 *:* 5076
[ntpd.exe]
...
Portanto, ntpd
ouça os endereços IP do arquivo de configuração conforme o esperado.
Obviamente, reiniciar o serviço e até reiniciar o PC não ajudou.
Agora estou ficando sem ideias. Qual poderia ser a causa da ntpq
conversa com um dos endereços IP ntpd
, mas não com o outro, mesmo quando o firewall está completamente desligado?