O problema foi resolvido, o sistema funciona agora. Eu faço este resumo para mim e para todos os outros que precisam configurar um servidor NTP offline (novamente). O problema real parecia ser que a experimentação com o modo de transmissão quebrou o ntpd no servidor, ele trabalhou novamente em outra reinicialização do servidor. Por que não funcionou quando eu segui os posts acima, eu não tenho certeza.
Backgound
Parte do problema é que eu não entendi como o NTP funciona e o que eu estava fazendo. Nem a página man nem o guia do servidor 16.04 forneceram uma visão geral simplificada sobre os diferentes computadores trabalhando juntos.
Primeiro, o cliente e o servidor NTP são enganosos. É sempre o mesmo programa, o deamon NTP, "ntpd". Ele deve ser instalado em todos os computadores da rede local para que a sincronização de horário funcione. Eu não verifiquei sobre os clientes Windows ainda, mas tenho certeza que há uma versão para eles em algum lugar também (por favor, comente se você tiver informações sobre isso - construir em funções seria preferido).
O sistema offline funcionaria apenas nos relógios do sistema. É vantajoso usar vários relógios do sistema, não apenas o servidor principal, porque cada relógio é adicionado para reduzir o desvio de tempo. Em outras palavras, um relógio tornaria todos os computadores sincronizados, mas o tempo absoluto seria mais estável e preciso quando mais relógios fossem considerados. Pelo que li, 4 deve ser um bom número.
O NTP pode atuar como servidor e como cliente ao mesmo tempo. O arquivo de configuração padrão não tem realmente uma seção de configuração para a função de servidor. Como modelo simples, cada ntpd
instance é um cliente que obtém informações de tempo de algum lugar, consultando-as regularmente. Pesquisando outro ntpd
ou pesquisando o relógio onboard local. Torna-se um servidor quando responde a enquetes de outros.
Por exemplo, uma rede conectada por um servidor proxy à internet. Esse servidor proxy executaria ntpd
para pesquisar vários servidores NTP da Internet e, assim, transferir seu próprio tempo para eles. Quando todos os clientes locais consultam o servidor proxy para o seu tempo (sincronizado) e ele começa a responder às pesquisas, ele se torna o próprio servidor NTP. O caso off-line é exatamente isso, exceto que os servidores on-line são substituídos pelo relógio onboard.
Configuração
Para a configuração, o arquivo /etc/ntp.conf
deve ser editado. O padrão é bastante cheio de coisas. Eu deletei todos, exceto:
# this is the IP or name of the local networks NTP server. This line
# should be commented out on the server
server 192.168.1.111
# this enables checking the local clock. Do not change that IP values!
server 127.127.1.0
fudge 127.127.1.0 statum 10
# this lines are required to run the ntpq -p command to verify the
# function of the system
restrict 127.0.0.1
restrict ::1
O servidor nesse exemplo tem o IP 192.168.1.111. Essa configuração pode ser a mesma para todos os PCs na rede. Apenas comente a seção do relógio local em clientes que não são laptops. A linha deve ser mantida em laptops e outros dispositivos que possam operar fora da rede por algum tempo. A primeira seção do servidor deve ser comentada no servidor.
Após a edição, reinicie o serviço com o script de início / parada
sudo /etc/init.d/ntp restart
Para verificar a execução
ntpd -p
é um pouco menor que a versão da pergunta e dá a mesma saída. Existe um "*" antes da linha do relógio para indicar que está sendo usado. Aqui a saída para um servidor em funcionamento:
remote refid st t when poll reach delay offset jitter
==============================================================================
*LOCAL(0) .LOCL. 2 1 6 64 377 0.000 0.000 0.000
Quando a coluna está em contagem, o alcance é qualquer coisa > 0. Aqui a saída para um cliente em funcionamento:
remote refid st t when poll reach delay offset jitter
==============================================================================
*192.168.1.111 LOCAL(0) 3 u 31 64 377 0.206 -5.900 0.654
Se você ainda refid = .INIT. não funciona. Os números seriam diferentes obviamente. Os clientes não devem mostrar 0.000 0.000 0.000 valores. Uma saída para um cliente com relógio de retorno configurado adicional (note que ele não está sendo usado agora - não "*"):
remote refid st t when poll reach delay offset jitter
==============================================================================
*192.168.1.111 LOCAL(0) 3 u 31 64 377 0.206 -5.900 0.654
LOCAL(0) .LOCL. 8 l 6 64 1 0.000 0.000 0.000
adicionou informações
A configuração padrão descreve um envio de broadcast e uma opção de recebimento de broadcast. Não ative isso para operação normal. Não é necessário fazer o sistema funcionar e configurar o cliente e o servidor.
Se alguma coisa ficar parada, não apenas reinicie o serviço, mas reinicie totalmente. Mesmo um servidor Ubuntu.
Quando o sistema não foi executado, notei que ps -e |grep ntp
deveria processar 2 'ntpd'. O par pode ser iniciado e parado de forma consistente. A versão em execução mostrava apenas um em cada computador.
Existem outras opções de restrição e opção de registro do arquivo de configuração padrão que podem ser úteis. Não os testou.
Espero que isso se torne útil em algum momento. Se você tiver correções, por favor, comente, tentarei atualizar a resposta.
CatMan
PS: Muito obrigado a Ken Mollerup , cujos comentários me levaram a uma melhor compreensão do sistema NTP.