Como sincronizar a hora do servidor Linux com NTP usando chrony ou systemd-timesyncd e os servidores públicos do NTP.br, e como conferir se funcionou.
Relógio errado causa problemas que parecem não ter relação com a hora: certificados SSL recusados, códigos de autenticação em dois fatores que não batem, e-mails com data errada, tarefas do cron fora de hora e até a licença do cPanel recusada. O NTP mantém o relógio certo o tempo todo, conversando com servidores de hora na internet. No Brasil, o NTP.br, mantido pelo NIC.br, oferece servidores públicos e gratuitos.
Antes de começar
- Acesso SSH como
rootou comsudo. - Saída liberada no firewall para a porta
123/udp(NTP) e, se for usar NTS,4460/tcp. - Se o problema é o fuso (a hora está certa, mas em UTC), veja como alterar o fuso horário.
Veja se a hora já está sincronizada
timedatectl
Procure duas linhas: System clock synchronized: yes e NTP service: active. Se as duas estão assim, o servidor já sincroniza; o que segue serve para trocar os servidores de hora pelos do NTP.br. Se aparecer NTP service: inactive, ative com sudo timedatectl set-ntp true; se aparecer n/a, não há serviço de hora instalado e você deve instalar o chrony.
Cada sistema usa um serviço por padrão:
- AlmaLinux e Rocky: chrony (serviço
chronyd). - Ubuntu 22.04 e 24.04: systemd-timesyncd, um cliente simples que só acerta o relógio.
- Debian 12: normalmente systemd-timesyncd.
Opção 1: chrony com os servidores do NTP.br (recomendada)
O chrony é o cliente NTP mais completo e é o recomendado pelo NTP.br. Ele também suporta o NTS, que autentica a resposta do servidor de hora.
- Instale o chrony. No AlmaLinux e no Rocky ele já vem instalado. No Ubuntu e no Debian:
O apt remove o systemd-timesyncd automaticamente, porque os dois não podem rodar juntos.sudo apt install chrony - Desative os servidores padrão. O arquivo de configuração é
/etc/chrony.confno AlmaLinux e no Rocky e/etc/chrony/chrony.confno Ubuntu e no Debian. Comente as linhas que começam compool:# AlmaLinux e Rocky sudo sed -i 's/^pool /#pool /' /etc/chrony.conf # Ubuntu e Debian sudo sed -i 's/^pool /#pool /' /etc/chrony/chrony.conf - Acrescente os servidores do NTP.br. Troque o caminho do arquivo no Ubuntu e no Debian:
sudo tee -a /etc/chrony.conf > /dev/null <<'EOF' # Servidores públicos do NTP.br, com NTS 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.ce.ntp.br iburst nts EOF - Reinicie o serviço.
# AlmaLinux e Rocky sudo systemctl restart chronyd # Ubuntu e Debian sudo systemctl restart chrony - Confira a sincronização. Espere uns 30 segundos e rode:
Nochronyc sources chronyc trackingchronyc sources, a linha marcada com^*é o servidor em uso. Nochronyc tracking, System time mostra a diferença atual, que deve ficar abaixo de alguns milissegundos. Para ver se o NTS funcionou, usesudo chronyc -N authdata: a coluna Mode deve mostrarNTS.
sudo chronyc makestep, em vez de esperar o ajuste gradual.Opção 2: manter o systemd-timesyncd do Ubuntu
Se você só precisa da hora certa e prefere não instalar nada, aponte o systemd-timesyncd para o NTP.br com um arquivo de configuração extra:
sudo mkdir -p /etc/systemd/timesyncd.conf.d
sudo tee /etc/systemd/timesyncd.conf.d/ntp-br.conf > /dev/null <<'EOF'
[Time]
NTP=a.ntp.br b.ntp.br c.ntp.br
FallbackNTP=a.st1.ntp.br b.st1.ntp.br c.st1.ntp.br
EOF
sudo systemctl restart systemd-timesyncd
timedatectl timesync-status
A linha Server do último comando deve mostrar um dos servidores do NTP.br. O systemd-timesyncd não suporta NTS.
Servidores públicos do NTP.br
| Endereço | Tipo |
|---|---|
a.st1.ntp.br a e.st1.ntp.br | Estrato 1, com NTS |
gps.ce.ntp.br, gps.jd.ntp.br, gps.nu.ntp.br | Estrato 1 ligados a GPS, com NTS |
a.ntp.br, b.ntp.br, c.ntp.br | Estrato 2 |
pool.ntp.br | Grupo de servidores do NTP.br |
Use de 4 a 5 servidores no chrony. Com menos de 3, ele não consegue identificar um servidor com a hora errada.
E o pacote ntp dos tutoriais antigos?
O ntpd clássico, citado em guias do Ubuntu 14.04 e do CentOS 6, saiu de cena. No AlmaLinux e no Rocky ele não existe mais nos repositórios oficiais, e no Ubuntu 24.04 o pacote ntp instala o ntpsec no lugar. Para um servidor, use o chrony.
Problemas comuns
chronyc sources mostra ^? em todos os servidores
O servidor não está alcançando os servidores de hora. Confira se a saída para 123/udp está liberada no firewall. Teste a resolução de nomes com getent hosts a.st1.ntp.br.
Os servidores respondem, mas o NTS não funciona
O NTS precisa de saída para 4460/tcp. Firewalls como o CSF costumam liberar só algumas portas de saída (opção TCP_OUT); acrescente a 4460 ou remova a palavra nts das linhas server, que o chrony passa a usar NTP comum.
O chrony não inicia e o log mostra Operation not permitted
O servidor é um VPS de contêiner (OpenVZ ou LXC). Nele, o relógio é o do servidor físico e não pode ser ajustado de dentro. Desative o chrony e, se a hora estiver errada, peça ao provedor para corrigi-la.
Licença do cPanel inválida por causa da hora
Depois de sincronizar, use no WHM o botão Sync Time with Time Server, em Server Configuration » Server Time, e verifique a licença de novo.