Olá, atualmente tenho um servidor ntp local (chrony) e um cliente ntp (chrony), todos estão funcionando, mas quando tento alterar o tempo do servidor ntp para dizer menos 6 anos a partir do horário atual. O cliente ntp não pode sincronizar com ele, apenas dirá no syslog:
9 de janeiro 17:29:11 localhost chronyd[9192]: relógio do sistema errado em 6780812.328260 segundos, ajuste iniciado
cliente ntp (chrony) /etc/chrony.conf está na configuração padrão, exceto que o servidor é apontado para meu servidor NTP local (chrony). Aqui está minha configuração
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst
server local.ntp.server iburst
# Ignore stratum in source selection.
stratumweight 0
# Record the rate at which the system clock gains/losses time.
driftfile /var/lib/chrony/drift
# Enable kernel RTC synchronization.
rtcsync
# In first three updates step the system clock instead of slew
# if the adjustment is larger than 10 seconds.
makestep 10 3
# Allow NTP client access from local network.
#allow 192.168/16
# Listen for commands only on localhost.
bindcmdaddress 127.0.0.1
bindcmdaddress ::1
# Serve time even if not synchronized to any NTP server.
#local stratum 10
keyfile /etc/chrony.keys
# Specify the key used as password for chronyc.
commandkey 1
# Generate command key if missing.
generatecommandkey
# Disable logging of client accesses.
noclientlog
# Send a message to syslog if a clock adjustment is larger than 0.5 seconds.
logchange 0.5
logdir /var/log/chrony
#log measurements statistics tracking
Não sei se não vai sincronizar, li que vai demorar mais, mas deixei minha máquina parada por 1 dia e mesmo assim o cliente ntp não teve o mesmo tempo que o servidor ntp (não sincronizado) . Alguma ideia? estou tentando não reiniciar o serviço chronyd e apenas deixá-lo sincronizar automaticamente a hora
Observe que "local.ntp.server" está definido em meu arquivo /etc/hosts. Além disso, o servidor NTP e o cliente NTP não estão usando o serviço ntpd, mas estão usando o chronyd. E esse tipo de configuração é isolado
Se o seu tempo estiver muito atrasado (dias ou mesmo meses), a sincronização de tempo não funcionará (" vai demorar muito ") porque clientes NTP como o Chrony ajustam o relógio gradualmente diminuindo ou acelerando .
Anexe esta linha à sua configuração do Chrony (por exemplo,
/etc/chrony.conf
ou/etc/chrony/chrony.conf
):Em seguida, reinicie o Chrony.
Explicação:
https://chrony.tuxfamily.org/faq.html#_is_code_chronyd_code_allowed_to_step_the_system_clock
Seu problema parece ser que você está tentando realizar uma mudança de tempo de seis anos , distorcendo o relógio e desistindo depois de um dia .
Se o algoritmo de inclinação desviar o relógio em até um por cento - o que é bastante - levará seiscentos anos para distorcer tanto o relógio. Mesmo que o relógio pare completamente , seis anos precisarão se passar para atrasá-lo em seis anos. A única maneira de conseguir um retrocesso de seis anos em menos de seis anos é retroceder o relógio , e não acho que nada reagirá bem a isso. Fazer isso em um dia significaria retroceder o relógio em pouco mais de duas mil vezes a taxa de tempo real!
Meu sentimento é que executar servidores NTP que mentem é uma péssima ideia, mas se você insistir em fazer isso e de repente distorcer o servidor em qualquer quantidade significativa, precisará alterar à força os relógios do cliente antes que eles tenham qualquer chance de sincronizar . Isso é feito com mais facilidade garantindo que os clientes redefinam forçosamente seus relógios do servidor no momento da inicialização (com
ntpd
, isso é feitontpdate
no momento da inicialização; não sei sobre chrony) e reinicializando os clientes.Se a diferença de horário for grande
chrony
, pode não aceitar sua fonte. Meu relógio estava alguns anos atrás echronyc tracking
informava:O que funcionou para mim foi adicionar
maxdistance 1000000000
e/etc/chrony.conf
depois (após achronyd
reinicialização) fazerchrnoyc -a makestep 1000 -1
.