Verifique se o seu cliente NTP também define o relógio do hardware (através do BIOS), e não apenas o relógio do software Linux.
Você pode verificar o relógio do hardware usando o programa hwclock
(localizado em /usr/sbin
ou /sbin
) e compará-lo ao relógio do software usando o comando date
.
Explicação chata :
Seu computador possui um pequeno chip, chamado de "relógio de tempo real" ou RTC. Este relógio funciona com uma bateria e conta o tempo como um relógio de pulso. Quando o computador liga, o relógio é lido e é assim que o seu sistema operacional sabe que horas são quando é iniciado. Mas depois da primeira leitura, os sistemas operacionais não precisam usar o RTC - ele pode simplesmente continuar contando o tempo (segundos, horas e qualquer outro) sozinho. Sempre que o usuário perguntar a que horas é, ele pode simplesmente informar seu próprio horário (em vez do tempo que o RTC reporta).
O truque vem quando o RTC não tem a hora certa. Quando você tenta corrigir o relógio, é realmente o sistema operacional que faz isso para você. O sistema operacional só pode atualizar seu relógio interno, software. Nesse caso, quando você reinicializar, o tempo incorreto será carregado novamente a partir do RTC. Ainda me lembro disso nos dias do DOS. Você tinha que ir para o BIOS para mudar o relógio. ugh.
De qualquer forma, o último prego no caixão é o seguinte: o tempo lido no RTC é apenas um número. E o sistema operacional tem permissão para alterar esse número. Por exemplo, talvez seja necessário adicionar 3.600.000 milissegundos (1 hora) a esse número, para que os usuários do GMT + 1 se sintam à vontade. Outras vezes, há algo de errado com as configurações de fuso horário.De qualquer maneira, configurar o relógio do hardware dentro do sistema operacional tende a corrigir isso, já que ele passa pelo mesmo processo de filtragem. Portanto, mesmo que seu sistema operacional adicione 5 minutos ao RTC, ele também subtrairá 5 minutos antes de atualizar o RTC.
Boa sorte!