Corrigindo desvio de horario do servidor - Sincronizando NTP com chrony e timedatectl
Por que o desvio de horario causa problemas reais
Poucos segundos de desvio de relogio podem quebrar a validacao de certificados SSL/TLS, autenticacao Kerberos, correlacao de logs entre hosts e agendamento de cron. Quando a sincronizacao de horario falha, a falha geralmente parece ser outra coisa — tornando-a uma das coisas mais frustrantes de diagnosticar.
Primeira verificacao (execute agora)
timedatectl status
System clock synchronized: yes significa que esta tudo bem. no — siga os passos abaixo.
Como verificar o estado atual do horario
timedatectl status fornece um panorama completo em um unico comando: status de sincronizacao NTP, fuso horario e estado do relogio de hardware.
timedatectl status
timedatectl status
Local time: Mon 2026-06-01 10:00:00 JST
Universal time: Mon 2026-06-01 01:00:00 UTC
RTC time: Mon 2026-06-01 01:00:00
Time zone: Asia/Tokyo (JST, +0900)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no
| Campo | Saudavel | Precisa correcao |
|---|---|---|
System clock synchronized |
yes |
no |
NTP service |
active |
inactive / n/a |
Verificar horario do sistema contra UTC
date date -u
A diferenca entre o horario local e UTC deve corresponder exatamente ao deslocamento do seu fuso horario.
Qual cliente NTP esta rodando?
O Linux moderno usa um de dois clientes NTP. Nao execute ambos simultaneamente.
| Daemon | Comum em | Arquivo de configuracao |
|---|---|---|
systemd-timesyncd |
Ubuntu (leve) | /etc/systemd/timesyncd.conf |
chronyd |
Ubuntu / RHEL / CentOS (alta precisao) | /etc/chrony.conf |
Verifique qual esta ativo:
systemctl status systemd-timesyncd systemctl status chronyd
Executar tanto chronyd quanto systemd-timesyncd causa conflitos — nenhum dos dois sincronizara de forma confiavel. Ative apenas um.
Usando chrony para diagnosticar e corrigir desvio de horario
Verificar estado de sincronizacao com chronyc tracking
chronyc tracking
Reference ID : 133.243.238.163 (ntp.nict.jp) Stratum : 2 Ref time (UTC) : Mon Jun 01 01:00:00 2026 System time : 0.000123456 seconds fast of NTP time Last offset : +0.000123456 seconds RMS offset : 0.000012345 seconds Frequency : -1.234 ppm fast Residual freq : +0.001 ppm Skew : 0.123 ppm Root delay : 0.012345678 seconds Root dispersion : 0.000123456 seconds Update interval : 64.2 seconds Leap status : Normal
System time mostra o deslocamento atual. Qualquer coisa alem de poucos segundos justifica acao imediata.
Ver lista de servidores NTP
chronyc sources -v
MS Name/IP address Stratum Poll Reach LastRx Last sample ^* ntp.nict.jp 1 6 37 43 -0.123ms[+0.456ms] +/- 12.3ms
^* marca o servidor atualmente selecionado. Muitas fontes com ? ou x indicam que os proprios servidores NTP estao inalcancaveis.
Forcar sincronizacao imediata com makestep
Para grandes deslocamentos (segundos ou minutos), pule o ajuste gradual normal:
chronyc makestep
200 OK
makestep salta abruptamente o relogio para frente ou para tras. Isso cria lacunas ou sobreposicoes nos timestamps dos logs. Confirme o impacto antes de executar em sistemas de producao.
Instalar e iniciar chronyd se ausente
# Ubuntu sudo apt install chrony sudo systemctl enable --now chronyd # RHEL / CentOS / Rocky Linux sudo dnf install chrony sudo systemctl enable --now chronyd
Ativar NTP com timedatectl
Quando a sincronizacao NTP esta inativa (NTP service: inactive), ative-a:
sudo timedatectl set-ntp true
Verifique:
timedatectl status | grep NTP
NTP service: active
Corrigir um fuso horario mal configurado
Um fuso horario errado e uma causa comum de desvio aparente de horario:
# Verificar fuso horario atual timedatectl status | grep "Time zone" # Buscar fusos disponiveis timedatectl list-timezones | grep America # Definir fuso horario sudo timedatectl set-timezone America/Sao_Paulo
Configurando systemd-timesyncd
Ambientes usando systemd-timesyncd em vez de chrony:
timedatectl show-timesync --all
Para alterar servidores NTP, edite /etc/systemd/timesyncd.conf:
[Time] NTP=0.pool.ntp.org 1.pool.ntp.org FallbackNTP=2.pool.ntp.org 3.pool.ntp.org
Aplique:
sudo systemctl restart systemd-timesyncd
Ambientes de VM e cloud
VMs e containers tem modos de falha adicionais que servidores de hardware nao tem.
Desvio de horario apos suspensao/retomada de VM
Suspensao/retomada pode deixar o relogio muito atrasado. Corrija imediatamente com chronyc makestep, ou previna adicionando uma diretiva makestep ao /etc/chrony.conf:
makestep 1.0 3
Isso diz ao chrony: se o deslocamento exceder 1.0 segundo nas primeiras 3 atualizacoes, ajuste imediatamente em vez de fazer slew gradual.
Endpoints NTP de provedores cloud
Use o endpoint NTP interno do provedor para melhor confiabilidade:
| Provedor | NTP recomendado |
|---|---|
| AWS | 169.254.169.123 |
| Azure | time.windows.com |
| GCP | metadata.google.internal |
Firewall bloqueando NTP
NTP usa porta UDP 123. Se o trafego estiver bloqueado, a sincronizacao falhara silenciosamente:
# ufw sudo ufw allow out 123/udp # firewalld sudo firewall-cmd --add-service=ntp --permanent sudo firewall-cmd --reload
Testar alcancabilidade NTP para um servidor especifico:
chronyc ntpdata <NTP_SERVER_IP>
Resumo
- Comece com
timedatectl status— o diagnostico unico mais rapido - Ative o NTP com
sudo timedatectl set-ntp truese estiver inativo - Use
chronyc trackingpara detalhes de deslocamento e qualidade da fonte - Force correcao imediata com
chronyc makestep - Para VMs, adicione
makestep 1.0 3ao/etc/chrony.confpara sobreviver a suspensao/retomada