Como sincronizar o tempo do Linux com o servidor NTP 1

Como sincronizar o tempo do Linux com o servidor NTP

Relógios de computador não são perfeitos. Dado alguns dias, semanas ou meses, eles flutuam e param de mostrar o tempo real. Depois que eles se desviam, eles podem mostrar que são “10:30” quando na verdade são “10:33”. Era prática comum em computadores mais antigos reajustar periodicamente o relógio do computador manualmente. Mas depois que as conexões com a Internet se tornaram onipresentes, os sistemas operacionais modernos começaram a ajustar o relógio automaticamente com a ajuda de servidores NTP.

O que é NTP?

NTP é um acrônimo para Network Time Protocol. É um algoritmo que sincroniza os relógios dos computadores por meio de conexões de rede e os mantém precisos.

Como habilitar a sincronização de tempo no Linux

Felizmente, a maioria das distribuições implementa uma forma ou outra de sincronização de tempo pronta para uso. Se você nunca observou o relógio do seu computador se afastando do relógio do seu telefone, é quase certo que você já tenha um cliente/daemon NTP em execução.

No sistema operacional Linux com systemd

A maioria das distribuições Linux adotaram o systemd, e com ele vem o daemon “systemd-timesyncd”. Isso significa que você tem um cliente NTP já pré-instalado no Ubuntu, Debian, Fedora, Arch Linux, openSUSE, Manjaro e outros. Nessas distribuições e outras baseadas nelas (por exemplo, elementary OS e Zorin OS), execute isto para verificar se a sincronização NTP está habilitada:

timedatectl

Se você ver Network time on: yes na saída, então o relógio do seu computador é ajustado periodicamente automaticamente através do NTP. Você também pode notar NTP synchronized: no, o que pode significar que o relógio é sincronizado por meio de outra ferramenta além de “systemd-timesyncd”. Também pode significar que o systemd-timesyncd ainda não foi sincronizado, mas o fará mais tarde.

Se você ver Network time on: noexecute o seguinte comando para habilitar a sincronização de horário NTP.

sudo timedatectl set-ntp true

Isso é tudo que você precisa fazer nessas distribuições.

No sistema operacional Linux Sem systemd

Com o MX Linux sendo uma das distribuições Linux mais populares, parece apropriado começar com um exemplo sobre este sistema operacional. É também um caso especial, pois “tipo de” tem systemd, mas também “tipo de” não. timedatectl informa que a hora da rede está “ativada”, mas systemd-timesyncd não é usado.

Como ele sincroniza? Você pode verificar com o próximo comando, que pode ser usado em qualquer outro sistema operacional Linux.

sudo cat /var/log/syslog | grep ntp

No MX Linux, você obterá um resultado semelhante ao que vê na figura a seguir.

Sincronizar hora do Linux Ntp 02 Mx Linux Grep Time

A partir desta mensagem de log filtrada, você pode ver que o cliente “ntpdate” foi executado uma vez. Este é um cliente popular, instalado por padrão em muitas distribuições Linux. É leve e só consulta servidores NTP esporadicamente. Ele não é executado em segundo plano e é acionado por scripts e sincronizações e, em seguida, é encerrado.

Esse tempo não é sincronizado com precisão extremamente alta (pense em milissegundos ou microssegundos), mas é preciso o suficiente para a maioria dos propósitos. É normalmente preciso, pelo menos até o segundo.

Em outros sistemas operacionais, você pode ver “ntpd”, que é um daemon em execução constante em segundo plano e extremamente preciso. Quanto mais ele roda, mais preciso ele se torna.

Se, por algum motivo, você deseja instalar ntp ou ntpdate em sistemas operacionais com systemd, primeiro desative o cliente ntp do systemd.

sudo timedatectl set-ntp false

Obviamente, o comando acima não é necessário em distros sem sistema.

Instalar cliente ntpdate

Isso é adequado para computadores domésticos, laptops e outros dispositivos que não estão constantemente na Internet.

No Debian, Ubuntu, Linux Mint, Zorin e outras distribuições baseadas nelas, execute:

sudo apt install ntpdate

Em todas as distribuições baseadas no Debian acima, ele é configurado imediatamente para ser executado depois de ver uma nova conexão de rede. Você pode forçar uma sincronização de horário agora se se desconectar da rede e se reconectar.

Tanto no Fedora quanto no Ubuntu, o ntpdate é um software obsoleto, portanto, é recomendável usar o daemon ntpd (como mostrado abaixo). O mesmo é recomendado para todas as outras distribuições por dois motivos:

  • Às vezes, eles não incluem o ntpdate em um pacote separado, mas o agrupam com o ntpd da próxima seção.
  • Eles não automatizam o ntpdate para ser executado automaticamente em todas as conexões de rede. Você precisa inserir o ntpdate em um script que é executado automaticamente após a conexão da rede.

Nesse caso, faz mais sentido instalar o ntpd conforme as instruções da próxima seção.

Instale o daemon ntpd

No Debian, Ubuntu, Zorin, Mint e outras distribuições baseadas no Debian ou Ubuntu, execute:

sudo apt install ntp

Essas distribuições iniciarão o ntpd imediatamente e, em seguida, o iniciarão automaticamente a cada inicialização; nenhuma ação adicional é necessária de você.

No Fedora, instale com:

sudo dnf install ntp

Para Arch Linux, use:

sudo pacman -S ntp

No openSUSE, digite:

sudo zypper install ntp

Depois, habilite o serviço para iniciar na inicialização e inicie-o:

sudo systemctl enable ntpd
sudo systemctl start ntpd

Em outras distribuições executadas sem o systemd, talvez seja necessário executar estes comandos:

sudo update-rc.d ntpd enable
sudo service ntpd start

ou o que for equivalente para o seu sistema operacional.

Se você receber um erro informando que o ntpd não existe, substitua “ntpd” por “ntp” nos comandos acima. Algumas distribuições nomeiam os arquivos de serviço do daemon ntpd de forma diferente.

Monitorando ntpd

Com o ntpd em execução, agora você pode usar suas ferramentas internas para verificar o status de seus servidores de horário. Por exemplo, você pode executar o seguinte comando para verificar se sua máquina está conversando com um servidor de horário:

ntpstat
Sincronizar hora do Linux Ntp 03 Ntpstat em execução

Você também pode pesquisar os servidores de horário ativos em sua instância ntpd atual. Isso pode ser útil se você estiver tentando sincronizar a hora em sua máquina Linux e quiser ver os hosts mais confiáveis ​​que você pode usar. Para fazer uma pesquisa de servidor de horário, execute o seguinte comando:

ntpq -p
Sincronizar Linux Time Ntp 04 Ntpq Listar servidores de tempo

Por fim, o ntpq também é um prompt que você pode usar para interagir diretamente com o daemon NTP. Para usar este prompt, execute ntpq na janela do seu terminal.

Sincronizar Linux Time Ntp 05 Ntpq Modo Interativo

Uma vez dentro, entre ? para listar todos os comandos disponíveis para o daemon NTP. Por exemplo, executar o seguinte comando forçará o daemon a sincronizar o horário da sua máquina Linux com o NTP4:

ntpversion 4
Sincronizar hora do Linux Ntp 06 Ntpq Alterar versão do Ntp

Instale o Chrony Daemon

Além de executar o ntpd, também é possível usar um protocolo moderno de cronometragem e front-end para NTP. Chrony é uma implementação simples e moderna do daemon NTP.

Uma das maiores vantagens de usar o Chrony é que ele calcula automaticamente a quantidade de segundos que seu relógio local se afasta de seu servidor de tempo de referência. A partir daí, o daemon compensa o horário local do Linux para estar sempre sincronizado com essa referência.

Essa abordagem pode ser útil se você estiver usando sua máquina para tarefas urgentes, como monitorar previsões do tempo. Para instalar o Chrony no Debian e no Ubuntu, execute o seguinte comando:

sudo apt install chrony
Sincronizar Linux Time Ntp 07 Apt Instalar Chrony

Com Arch Linux, use pacman para instalar o programa:

sudo pacman -S chrony

Usar dnf para instalar o Chrony no Fedora:

sudo dnf install chrony

Quando o Chrony estiver em seu sistema, verifique se ele está pesquisando um servidor de tempo remoto executando o seguinte comando:

chronyc sources
Sincronizar Linux Time Ntp 08 Chrony List Timeservers

Depois disso, efetue logout ou reinicie sua máquina para certificar-se de que o horário em seu sistema Linux será sincronizado com seu servidor de horário remoto.

perguntas frequentes

É possível instalar o Chrony e o ntpd na mesma máquina?

Não, pois tanto o Chrony quanto o ntpd são daemons que fornecem o mesmo conjunto de serviços para sua máquina. Ambos os programas visam sincronizar o horário local do Linux com um servidor de horário. No entanto, Chrony e ntpd diferem em seu aplicativo de destino.

Os desenvolvedores do Chrony projetaram o programa para funcionar com hardware Linux moderno, por isso inclui recursos que consomem muitos recursos do seu sistema. O ntpd é mais simples e pode funcionar com hardware legado e menor.

A mistura de servidores de tempo torna meu relógio mais preciso?

Sim! Alguns desktops Linux usam “pool timeservers” para manter a hora do sistema. Esses são serviços que coletam dados de tempo de outros servidores de horário. Um “pool timeserver” usa esses dados para criar uma estimativa da hora atual. Por exemplo, o Ubuntu usa “ubuntu.pool.ntp.org” como seu servidor de tempo principal para seus desktops e servidores.

Estou usando o SystemD. Chrony e ntpd causarão conflitos com timesyncd?

Não! Por padrão, os SystemDs timesyncd é apenas um módulo opcional para o sistema init. É possível usar daemons NTP alternativos mesmo com uma distribuição SystemD. Por exemplo, instalar o Chrony no Ubuntu e no Debian removerá automaticamente o timesyncd do sistema.

Apoie o nosso trabalho ❤️

Se você gostou deste artigo, considere deixar uma gorjeta para nos ajudar a continuar publicando conteúdo de qualidade.

Pagamento seguro no PayPal