Acerte o horário do servidor Linux: defina o fuso America/Sao_Paulo e sincronize com o NTP.br usando chrony e NTS no Debian, Ubuntu e Proxmox.

Para que serve

Relógio errado causa problemas difíceis de diagnosticar: certificados TLS recusados, tokens de 2FA inválidos, logs com horários que não batem, tarefas agendadas fora de hora, falhas de autenticação em domínio Windows (Kerberos tolera poucos minutos de diferença) e, no Proxmox, problemas de cluster e de backup. Este artigo mostra como acertar o horário do servidor Linux: definir o fuso de Brasília e manter o relógio sincronizado com os servidores do NTP.br, que distribuem a Hora Legal Brasileira.

Pré-requisitos

  • Acesso root.
  • Saída liberada no firewall para UDP 123 (NTP) e, se for usar NTS (NTP autenticado), TCP 4460.

Passo a passo para acertar o horário do servidor Linux

1. Ver a situação atual

timedatectl

Confira três linhas:

  • Time zone: o fuso configurado.
  • System clock synchronized: yes: o relógio está sincronizado.
  • RTC in local TZ: no: o relógio da placa-mãe está em UTC, que é o correto para servidores Linux.

2. Definir o fuso horário

timedatectl set-timezone America/Sao_Paulo

O fuso America/Sao_Paulo é o horário de Brasília (UTC−3) e já considera que o Brasil não adota horário de verão desde 2019, desde que o pacote tzdata esteja atualizado. Outras opções relevantes: America/Manaus, America/Cuiaba, America/Fortaleza, America/Noronha (liste com timedatectl list-timezones | grep America/). Alguns administradores preferem manter servidores em UTC e converter apenas na exibição; as duas abordagens funcionam, o importante é ser consistente entre os seus servidores.

Depois de trocar o fuso, reinicie serviços que gravam horário ou agendam tarefas (por exemplo systemctl restart cron rsyslog, se instalados) e, em bancos de dados, verifique o fuso configurado na própria aplicação.

3. Escolher o cliente de sincronização

O Debian vem com o systemd-timesyncd, um cliente simples. O Proxmox VE usa o chrony por padrão desde a versão 7, e o próprio NTP.br recomenda o chrony como cliente: ele corrige o relógio com mais precisão, lida bem com conexões instáveis e suporta NTS. Para instalar no Debian ou Ubuntu (o systemd-timesyncd é removido automaticamente):

apt install chrony

4. Apontar para os servidores do NTP.br

No Debian e no Proxmox, o arquivo principal é /etc/chrony/chrony.conf, que inclui os arquivos da pasta /etc/chrony/sources.d/. Crie /etc/chrony/sources.d/ntp-br.sources:

server a.st1.ntp.br iburst nts
server b.st1.ntp.br iburst nts
server c.st1.ntp.br iburst nts
server d.st1.ntp.br iburst nts
server gps.jd.ntp.br iburst nts

A opção nts autentica as respostas, impedindo que alguém na rede falsifique o horário. Se a saída TCP 4460 estiver bloqueada, remova o nts das linhas ou use simplesmente pool pool.ntp.br iburst.

Opcionalmente, comente a linha pool 2.debian.pool.ntp.org iburst em chrony.conf para usar só o NTP.br. Confira também se o arquivo tem a linha makestep 1 3, que permite corrigir de uma vez um relógio muito atrasado nos primeiros ajustes. Aplique:

chronyc reload sources
systemctl restart chrony

Por padrão, o chrony funciona apenas como cliente e não abre a porta 123 para a internet. Se quiser que as VMs usem o host como servidor de horário, crie /etc/chrony/conf.d/servidor.conf com a linha allow 10.0.0.0/8 (ajuste para a sua rede interna), nunca allow sem restrição.

5. Hosts Proxmox e VMs

  • Em cluster, todos os nós devem usar as mesmas fontes de horário.
  • VMs Linux: instale o chrony ou mantenha o systemd-timesyncd ativo; o QEMU Guest Agent ajuda a corrigir o relógio após restaurar snapshots.
  • VMs Windows fora de domínio: configure a fonte com w32tm /config /manualpeerlist:"a.st1.ntp.br b.st1.ntp.br" /syncfromflags:manual /update. Em domínio, só o controlador com papel PDC deve apontar para fora; os demais seguem a hierarquia do domínio.

Como saber se funcionou

chronyc tracking
chronyc sources -v
chronyc -N authdata
  • Em tracking, Leap status : Normal e um System time de poucos milissegundos indicam sincronização.
  • Em sources, a fonte em uso aparece marcada com ^*.
  • Em authdata, a coluna Mode mostra NTS e KeyID diferente de zero para as fontes autenticadas.
  • timedatectl deve mostrar System clock synchronized: yes.

Problemas comuns

  • Fontes marcadas com ? ou x: sem resposta ou consideradas incorretas. Verifique a saída UDP 123 (e TCP 4460 para NTS) no firewall do servidor e em qualquer firewall na frente dele.
  • NTS falha mas NTP comum funciona: o NTS depende de certificado TLS, que exige relógio razoavelmente correto. Se o relógio estiver muito errado, acerte primeiro com um servidor sem nts e depois volte a ativar.
  • Horário certo, mas fuso errado nos logs de uma aplicação: a aplicação (PHP, Java, banco de dados) pode ter fuso próprio. Ajuste na configuração dela.
  • Relógio da VM adianta ou atrasa: confirme que a VM tem cliente NTP ativo; não dependa apenas do host.
  • Dois clientes rodando ao mesmo tempo: não mantenha chrony e systemd-timesyncd (ou ntpsec) ativos juntos. Verifique com systemctl status systemd-timesyncd chrony.

Relógio certo é pré-requisito para códigos TOTP; veja também o artigo «Como ativar autenticação em dois fatores (2FA) no SSH, Proxmox, Windows e painéis». Em ambientes com domínio Windows, veja «Como criar um controlador de domínio Active Directory em uma VM no Proxmox».

Perguntas frequentes

Como mudar o fuso horário do Linux para o horário de Brasília?

Rode timedatectl set-timezone America/Sao_Paulo e confira com timedatectl. Depois, reinicie os serviços que agendam tarefas, como o cron.

Qual servidor NTP usar no Brasil?

Os servidores do NTP.br, como a.st1.ntp.br a d.st1.ntp.br e gps.jd.ntp.br, que suportam NTS. Se preferir algo mais simples, use pool pool.ntp.br iburst.

O fuso America/Sao_Paulo ainda aplica horário de verão?

Não. O Brasil não adota horário de verão desde 2019, e o pacote tzdata atualizado já considera isso. Mantenha o sistema atualizado.

Preciso abrir a porta 123 no firewall?

Só para saída (UDP 123 e, com NTS, TCP 4460). Como cliente, o chrony não precisa de nenhuma porta aberta para entrada.

Leitura complementar

Precisa de ajuda?

Se o servidor não consegue alcançar nenhuma fonte de horário mesmo com o firewall liberado, abra um ticket com a saída de chronyc sources -v e timedatectl.

Esta resposta lhe foi útil? 0 Usuários acharam útil (0 Votos)

Leia também