Corrigindo desvio de horário do servidor - Sincronizando NTP com chrony e timedatectl
Por que o desvio de horário causa problemas reais
Poucos segundos de desvio de relógio podem quebrar a validação de certificados SSL/TLS, autenticação Kerberos, correlação de logs entre hosts e agendamento de cron. Quando a sincronização de horário falha, a falha geralmente parece ser outra coisa — tornando-a uma das coisas mais frustrantes de diagnosticar.
Primeira verificação (execute agora)
timedatectl status
System clock synchronized: yes significa que está tudo bem. no — siga os passos abaixo.
Como verificar o estado atual do horário
timedatectl status fornece um panorama completo em um único comando: status de sincronização NTP, fuso horário e estado do relógio 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 | Saudável | Precisa correção |
|---|---|---|
System clock synchronized |
yes |
no |
NTP service |
active |
inactive / n/a |
Verificar horário do sistema contra UTC
date date -u
A diferença entre o horário local e UTC deve corresponder exatamente ao deslocamento do seu fuso horário.
Qual cliente NTP está rodando?
O Linux moderno usa um de dois clientes NTP. Não execute ambos simultaneamente.
| Daemon | Comum em | Arquivo de configuração |
|---|---|---|
systemd-timesyncd |
Ubuntu (leve) | /etc/systemd/timesyncd.conf |
chronyd |
Ubuntu / RHEL / CentOS (alta precisão) | /etc/chrony.conf |
Verifique qual está ativo:
systemctl status systemd-timesyncd systemctl status chronyd
Executar tanto chronyd quanto systemd-timesyncd causa conflitos — nenhum dos dois sincronizará de forma confiável. Ative apenas um.
Usando chrony para diagnosticar e corrigir desvio de horário
Verificar estado de sincronização 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 além de poucos segundos justifica ação 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 próprios servidores NTP estão inalcançáveis.
Forçar sincronização imediata com makestep
Para grandes deslocamentos (segundos ou minutos), pule o ajuste gradual normal:
chronyc makestep
200 OK
makestep salta abruptamente o relógio para frente ou para trás. Isso cria lacunas ou sobreposições nos timestamps dos logs. Confirme o impacto antes de executar em sistemas de produção.
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 sincronização NTP está inativa (NTP service: inactive), ative-a:
sudo timedatectl set-ntp true
Verifique:
timedatectl status | grep NTP
NTP service: active
Corrigir um fuso horário mal configurado
Um fuso horário errado é uma causa comum de desvio aparente de horário:
# 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 têm modos de falha adicionais que servidores de hardware não têm.
Desvio de horário após suspensão/retomada de VM
Suspensão/retomada pode deixar o relógio 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 atualizações, 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 tráfego estiver bloqueado, a sincronização falhará silenciosamente:
# ufw sudo ufw allow out 123/udp # firewalld sudo firewall-cmd --add-service=ntp --permanent sudo firewall-cmd --reload
Testar alcançabilidade NTP para um servidor específico:
chronyc ntpdata <NTP_SERVER_IP>
Resumo
- Comece com
timedatectl status— o diagnóstico único mais rápido - Ative o NTP com
sudo timedatectl set-ntp truese estiver inativo - Use
chronyc trackingpara detalhes de deslocamento e qualidade da fonte - Force correção imediata com
chronyc makestep - Para VMs, adicione
makestep 1.0 3ao/etc/chrony.confpara sobreviver a suspensão/retomada