1. Introdução: Por Que a Sincronização de Tempo é Importante
Problemas Causados pelo Desvio do Tempo do Sistema
Em sistemas Linux, como o Ubuntu, manter o tempo do sistema preciso é de importância crítica. À primeira vista, uma pequena discrepância no relógio pode parecer trivial, mas em operações de servidor e ambientes de aplicação, mesmo um desvio de tempo mínimo pode levar a problemas sérios.
Por exemplo, os seguintes problemas podem ocorrer:
- Perda de consistência de logs Se os carimbos de data/hora em logs do sistema ou de aplicações estiverem desalinhados, torna-se difícil identificar a causa raiz de incidentes.
- Falhas em tarefas cron Tarefas agendadas, como backups ou jobs em lote, podem não executar no momento correto, causando comportamento inesperado.
- Falhas em certificados SSL e autenticação de segurança Comunicações HTTPS e autenticação SSH dependem de um tempo do sistema preciso. Se o relógio estiver incorreto, certificados podem ser julgados como “expirados” ou “ainda não válidos”, resultando em erros de conexão.
Esses problemas se tornam especialmente graves quando múltiplos servidores precisam ser sincronizados em uma rede.
O Papel e a Importância do NTP
Para prevenir tais problemas, utiliza-se o NTP (Network Time Protocol). O NTP se comunica com servidores de tempo pela internet ou uma rede local e corrige automaticamente o relógio do sistema.
No Ubuntu, várias ferramentas relacionadas ao NTP estão disponíveis, incluindo ntpd, chrony e systemd-timesyncd. Neste artigo, focamos no ntpd (Network Time Protocol daemon) e explicamos em detalhes como instalá-lo e usá-lo no Ubuntu.
Para servidores que executam continuamente por longos períodos ou sistemas onde a consistência de logs é essencial, o ntpd é altamente valorizado por sua estabilidade.
Na próxima seção, começamos explicando o que é o ntpd, seu papel principal e as opções disponíveis no Ubuntu.
2. O Que É o ntpd? Seu Papel e Alternativas no Ubuntu
Visão Geral e Recursos do ntpd
O ntpd (Network Time Protocol Daemon) é um serviço em segundo plano que mantém o tempo do sistema preciso usando NTP. Ele se comunica periodicamente com servidores NTP na internet ou rede local e ajusta automaticamente o relógio do sistema.
Uma característica chave do ntpd é sua capacidade de realizar “sincronização suave”, corrigindo gradualmente o desvio de tempo em vez de fazer mudanças abruptas. Esse design previne impactos negativos em sistemas e aplicações em execução.
O ntpd também suporta recursos avançados do NTP, como comunicação simétrica e autenticação, tornando-o adequado para ambientes empresariais.
Ferramentas de Sincronização de Tempo Disponíveis no Ubuntu
O Ubuntu oferece várias opções para sincronização de tempo:
- ntpd (pacote ntp) Amplamente usado em operações de longo prazo e ambientes que exigem configuração detalhada. Oferece alta flexibilidade e estabilidade e pode sincronizar com precisão servidores NTP públicos.
- chrony Uma alternativa moderna ao ntpd com alta precisão e sincronização inicial muito rápida. Funciona bem em sistemas de baixa especificação e máquinas virtuais, e muitas distribuições agora o usam por padrão.
- systemd-timesyncd Um serviço leve de sincronização de tempo ativado por padrão no Ubuntu 20.04 e posterior. É simples e conveniente, mas limitado em funcionalidade e não adequado para configurações avançadas ou execução de um servidor NTP local.
Por Que Escolher o ntpd?
A principal razão para escolher o ntpd no Ubuntu é sua confiabilidade e estabilidade. Ele é especialmente adequado nos seguintes cenários:
- Servidores que executam continuamente por longos períodos onde a precisão de tempo é crítica
- Ambientes que exigem a construção de um servidor NTP local em uma rede
- Casos de uso empresariais que requerem autenticação e controle fino
Como o ntpd tem um histórico operacional longo e ampla compatibilidade, oferece tranquilidade durante a implantação.
3. Instalação e Configuração Inicial do ntpd no Ubuntu
Instalando o ntpd
Para usar o ntpd no Ubuntu, você deve primeiro instalar o pacote ntp. Isso pode ser feito facilmente com os seguintes comandos:
.“` sudo apt update sudo apt install ntp
Esta instalação instala o `ntpd` e seus arquivos relacionados. Dependendo da sua versão do Ubuntu, `chrony` ou `systemd-timesyncd` podem estar habilitados por padrão. Nesses casos, recomenda‑se **desativá‑los ou removê‑los antecipadamente**.
sudo systemctl stop systemd-timesyncd sudo systemctl disable systemd-timesyncd
### Habilitando o Serviço e Verificando a Inicialização
Após a instalação, habilite o serviço ntpd e verifique se ele está em execução:
sudo systemctl enable ntp sudo systemctl start ntp sudo systemctl status ntp
Se o status mostrar `active (running)`, o ntpd está operando corretamente.
### Verificando e Editando o Arquivo de Configuração Inicial
A configuração do ntpd está definida em `/etc/ntp.conf`. Por padrão, vários servidores NTP (geralmente da rede pool.ntp.org) são configurados.
Primeiro, revise o arquivo de configuração:
cat /etc/ntp.conf
Se quiser especificar servidores localizados no Japão, você pode editar a configuração da seguinte forma:
server ntp.nict.jp iburst
A opção `iburst` melhora a velocidade de sincronização durante a conexão inicial e é recomendada.
Após fazer as alterações, reinicie o ntpd para aplicá‑las:
sudo systemctl restart ntp
### Verificando a Sincronização Automática de Horário
O ntpd sincroniza o horário automaticamente após a inicialização. Para verificar o funcionamento correto, use o comando a seguir:
ntpq -p
Este comando exibe uma lista de servidores NTP conectados, juntamente com atraso, deslocamento e outras informações detalhadas.
## 4. Configurando e Personalizando Servidores NTP
### Selecionando Servidores NTP Recomendados
Um dos aspectos mais importantes ao configurar o ntpd é escolher quais servidores NTP serão usados para sincronização. Ao conectar‑se à internet, especificar servidores NTP confiáveis e geograficamente próximos — como servidores domésticos — pode proporcionar uma sincronização de horário mais estável e precisa.
Servidores NTP representativos no Japão incluem:
* `ntp.nict.jp` (Instituto Nacional de Tecnologia da Informação e Comunicações)
* `ntp.jst.mfeed.ad.jp` (JST / Mfeed)
* `ntp.ring.gr.jp` (Internet Multi Feed)
Esses servidores são operados com base em relógios atômicos de alta precisão e podem ser usados para fins pessoais sem necessidade de registro especial.
Você pode configurar a sincronização com esses servidores adicionando as seguintes linhas ao `/etc/ntp.conf`:
server ntp.nict.jp iburst server ntp.jst.mfeed.ad.jp iburst server ntp.ring.gr.jp iburst
### Opções de Configuração Detalhadas no ntp.conf
O arquivo `/etc/ntp.conf` permite um controle mais refinado além de simplesmente especificar servidores NTP. Abaixo estão algumas diretivas comumente usadas.
* **restrict directive** Controla quais clientes são permitidos ou restritos de acessar o serviço NTP. Por razões de segurança, o acesso desnecessário deve ser limitado. Exemplo: permitindo acesso a partir de uma rede local.
restrict 192.168.0.0 mask 255.255.255.0 nomodify notrap
* **driftfile** Especifica o arquivo usado para registrar o desvio do relógio do sistema. Na maioria dos casos, a configuração padrão é suficiente.
driftfile /var/lib/ntp/ntp.drift
### Construindo um Servidor NTP Local Dentro de uma Rede
Usando o ntpd no Ubuntu, você também pode operar o sistema como um **servidor NTP local que distribui horário para outros dispositivos em uma rede interna**. Essa configuração é útil em ambientes sem acesso à internet ou onde a gestão consistente de horário entre múltiplos sistemas é necessária.
Um procedimento de configuração exemplo é o seguinte:
1. Adicione uma regra `restrict` ao `/etc/ntp.conf` para permitir acesso local: `restrict 192.168.0.0 mask 255.255.255.0 nomodify notrap`
2. Configure os PCs clientes para referenciar o servidor NTP local: `server 192.168.0.10 iburst # IP local do servidor NTP`
3. Permita a porta NTP no servidor (autorize a porta UDP 123 no firewall): `sudo ufw allow 123/udp`
Se a comunicação for bloqueada, a sincronização de horário falhará, e o comando ntpq não mostrará conexão com o servidor.
## 5. Verificando a Operação e Solucionando Problemas do ntpd
### Verificando o Status do Serviço
Para confirmar se o ntpd está em execução corretamente, use o seguinte comando:
sudo systemctl status ntp
Se for exibido `active (running)`, o ntpd está operando normalmente. Se o status for `inactive` ou `failed`, pode haver um erro de configuração ou um problema de dependência impedindo a inicialização.
Para logs detalhados, o comando a seguir é útil:
journalctl -u ntp
Ele permite que você revise o histórico de inicialização e as mensagens de erro do serviço ntpd em ordem cronológica.
### Verificando o Status da Sincronização (ntpq -p)
O comando `ntpq -p` é o mais usado para verificar se o ntpd está sincronizando corretamente com os servidores NTP.
ntpq -p
Exemplo de saída:
remote refid st t when poll reach delay offset jitter
============================================================================== *ntp.nict.jp .NICT. 1 u 25 64 377 1.123 -0.345 0.024
O significado de cada coluna é o seguinte:
* `remote` : Nome do servidor NTP conectado
* `st` : Estrato do servidor (quanto menor, mais preciso; 1 indica referência a um relógio atômico)
* `reach` : Registrador de alcançabilidade (histórico de 8 bits)
* `delay` : Atraso de rede (ms)
* `offset` : Desvio de tempo (ms)
* `jitter` : Variação do desvio
Um servidor marcado com `*` está atualmente selecionado como fonte de sincronização.
### Erros Comuns e Como Corrigi‑los
A seguir, estão os problemas mais frequentes ao implantar o ntpd e suas respectivas soluções.
#### 1. **Nenhuma saída de `ntpq -p` / reach permanece 0**
* **Causa** : A porta UDP 123 pode estar bloqueada por um firewall ou roteador
* **Solução** : Verifique as configurações de firewall tanto no servidor quanto no cliente para garantir que o tráfego NTP seja permitido.
sudo ufw allow 123/udp
#### 2. **`System clock not synchronized` é exibido**
* **Causa** : O ntpd não está em execução, ou outro serviço de sincronização (como o systemd-timesyncd) está em conflito
* **Solução** : Desative serviços de sincronização de horário desnecessários e reinicie o ntpd.
sudo systemctl disable systemd-timesyncd sudo systemctl restart ntp
#### 3. **Falha ao resolver nomes de servidores NTP**
* **Causa** : Problemas de configuração DNS ou de rede
* **Solução** : Verifique a resolução de nomes usando comandos como `ping ntp.nict.jp` e ajuste as configurações DNS, se necessário.
#### 4. **O horário está muito errado e não sincroniza**
* **Causa** : Por questões de segurança, o ntpd não corrige automaticamente desvios de tempo muito grandes
* **Solução** : Corrija manualmente o horário inicial e, em seguida, reinicie o ntpd.
sudo ntpd -gq # Perform a one-time immediate synchronization sudo systemctl restart ntp
### Para Monitoramento Contínuo
Em ambientes de produção, recomenda‑se registrar periodicamente a saída de `ntpq -p` e configurar alertas para anomalias. Detectar sinais como ausência de logs ou um valor de `reach` constantemente travado em 0 permite a identificação precoce de falhas.
## 6. Comparando o ntpd com Outras Ferramentas de Sincronização de Tempo
### Principais Ferramentas de Sincronização de Tempo no Ubuntu
O Ubuntu oferece várias ferramentas para sincronização de tempo, cada uma com características distintas. Escolher a ferramenta certa depende dos requisitos do seu sistema e do caso de uso.
* **ntpd (pacote ntp)**
* **chrony**
* **systemd-timesyncd**
### Características do ntpd
* **Vantagens**
* Estabilidade e confiabilidade comprovadas, respaldadas por um longo histórico de operação
* Conjunto rico de recursos com opções de configuração granulares (servidores NTP locais, autenticação, modo simétrico)
* Alta compatibilidade com servidores NTP públicos e ampla documentação de solução de problemas
* **Desvantagens**
* A sincronização inicial após a inicialização pode ser lenta
* Menos adaptável a ambientes modernos, como virtualização e redes altamente variáveis
### Características do chrony
.* **Vantagens**
* Sincronização inicial muito rápida, mesmo imediatamente após a inicialização
* Alta precisão em ambientes virtualizados ou com redes variáveis (laptops, VPNs)
* Aprendizado adaptativo melhora a precisão ao longo do tempo, às vezes superando o ntpd
* **Desvantagens**
* Configuração um pouco mais complexa quando usado como servidor NTP local
* Menos documentação e menos exemplos reais em comparação com o ntpd
### Características do systemd-timesyncd
* **Vantagens**
* Habilitado por padrão no Ubuntu 20.04 e posteriores, extremamente fácil de gerenciar
* Consumo mínimo de recursos com funcionalidade básica de sincronização
* Bem integrado ao systemd e adequado para configurações padrão do Ubuntu
* **Desvantagens**
* Recursos limitados; configuração avançada e operação como servidor NTP local não são suportadas
* Precisão e recursos de registro são básicos, tornando-o inadequado para sistemas de grande escala
### Tabela de Comparação
Feature ntpd chrony systemd-timesyncd Accuracy High Very High Moderate Initial Sync Speed Sometimes Slow Very Fast Moderate Local NTP Server Excellent Good (More Complex) Not Supported Configuration Flexibility High Medium Low Virtual Environment Support Limited Excellent Good Operational History & Resources Excellent Good Limited Recommended Use Cases Servers, Organization-wide Sync Virtual Environments, Laptops Single PCs, Beginners
### Ferramentas Recomendadas por Caso de Uso
* **Ambientes de servidor (especialmente sistemas sempre ligados)** → **ntpd** ou **chrony** para estabilidade e precisão.
* **Ambientes em nuvem, máquinas virtuais, laptops** → **chrony** oferece a maior flexibilidade e precisão.
* **PCs individuais com necessidades básicas de sincronização** → **systemd-timesyncd** é suficiente.
## 7. Perguntas Frequentes (FAQ)
### Q1. O ntpd é instalado por padrão no Ubuntu 22.04?
**A1.**
Não. No Ubuntu 22.04, o `ntpd` não é instalado por padrão. Em vez disso, o `systemd-timesyncd` está habilitado para sincronização básica de horário. Para usar o `ntpd`, você deve instalar explicitamente o pacote `ntp`.
sudo apt install ntp
Após a instalação, desabilitar o `systemd-timesyncd` ajuda a evitar conflitos.
### Q2. Por que o `ntpq -p` não exibe nenhum resultado?
**A2.**
Várias causas são possíveis:
* **O serviço não está em execução** : Verifique com `sudo systemctl status ntp` e inicie-o se necessário
* **Nenhuma comunicação com servidores NTP** : Certifique‑se de que a porta UDP 123 não esteja bloqueada por um firewall
* **Erros de configuração** : Verifique se o `/etc/ntp.conf` não contém erros
Comece executando o seguinte comando para checar a operação básica:
ntpq -p
Se a saída estiver vazia ou `reach` permanecer `0`, a comunicação com servidores externos provavelmente está falhando.
### Q3. Devo escolher ntpd ou chrony?
**A3.**
A escolha ideal depende do seu ambiente:
* **Servidores físicos de longa duração ou configurações de servidor NTP local** → `ntpd` é recomendado para estabilidade
* **Ambientes virtuais, laptops ou redes variáveis (Wi‑Fi)** → `chrony` oferece melhor precisão e sincronização mais rápida
* **Sincronização de horário simples** → `systemd-timesyncd` é suficiente
### Q4. O que o comando `ntpd -gq` faz?
**A4.**
`ntpd -gq` realiza uma sincronização única com um servidor NTP e então termina.
* `-g` : Permite correção mesmo que o deslocamento de tempo seja grande
* `-q` : Sincroniza uma vez e sai (não roda como daemon)
Esse comando é útil quando o horário do sistema está significativamente incorreto e a operação normal do ntpd não o ajustará automaticamente.
### Q5. Há benefício em especificar múltiplos servidores NTP?
**A5.**
Sim. Especificar vários servidores NTP melhora a redundância e a confiabilidade. Se um servidor ficar indisponível, o sistema pode continuar sincronizando com os demais.
Exemplo de configuração em `/etc/ntp.conf`:
server ntp.nict.jp iburst server ntp.jst.mfeed.ad.jp iburst server ntp.ring.gr.jp iburst “`
8. Conclusão: Melhorando a Confiabilidade do Sistema por Meio de Sincronização de Horário Estável
Revisitando o Valor do ntpd
Em sistemas Ubuntu, a sincronização precisa de horário não é apenas uma conveniência — ela impacta diretamente segurança, solução de problemas, gerenciamento de logs e a correção de processos automatizados.
Este artigo forneceu uma visão geral abrangente dos fundamentos do NTP, como a sincronização de tempo funciona com ntpd, etapas de instalação e configuração, opções de personalização, métodos de verificação e solução de problemas, e comparações com ferramentas alternativas.
Conselhos para Leitores
A escolha da ferramenta de sincronização de tempo no Ubuntu depende do propósito do sistema, arquitetura e requisitos de disponibilidade.
No entanto, o princípio permanece universal: sem tempo preciso, a operação estável do sistema é impossível.
- Ambientes de servidor e sistemas intensivos em logs → Configure cuidadosamente
ntpdouchrony - Sistemas únicos com requisitos simples → Use
systemd-timesyncdpara configuração rápida
Embora problemas de sincronização de tempo sejam frequentemente não notados nas operações diárias, eles se tornam um diferenciador crítico ao solucionar incidentes.
Use este guia para construir uma configuração de sincronização de tempo que melhor se adapte ao seu ambiente Ubuntu.

### Construindo um Servidor NTP Local Dentro de uma Rede
Usando o ntpd no Ubuntu, você também pode operar o sistema como um **servidor NTP local que distribui horário para outros dispositivos em uma rede interna**. Essa configuração é útil em ambientes sem acesso à internet ou onde a gestão consistente de horário entre múltiplos sistemas é necessária.
Um procedimento de configuração exemplo é o seguinte:
1. Adicione uma regra `restrict` ao `/etc/ntp.conf` para permitir acesso local: `restrict 192.168.0.0 mask 255.255.255.0 nomodify notrap`
2. Configure os PCs clientes para referenciar o servidor NTP local: `server 192.168.0.10 iburst # IP local do servidor NTP`
3. Permita a porta NTP no servidor (autorize a porta UDP 123 no firewall): `sudo ufw allow 123/udp`
Se a comunicação for bloqueada, a sincronização de horário falhará, e o comando ntpq não mostrará conexão com o servidor.
## 5. Verificando a Operação e Solucionando Problemas do ntpd
### Verificando o Status do Serviço
Para confirmar se o ntpd está em execução corretamente, use o seguinte comando:


