Включить синхронизацию системных часов

14

timedatectl дает следующий вывод -

                      Local time: Wed 2018-06-13 18:08:51 IST
                  Universal time: Wed 2018-06-13 12:38:51 UTC
                        RTC time: Wed 2018-06-13 12:38:51
                       Time zone: Asia/Kolkata (IST, +0530)
       System clock synchronized: no
systemd-timesyncd.service active: yes
                 RTC in local TZ: no

Как установить синхронизацию системных часов на да?

BEWARB
источник

Ответы:

10

Одним из способов сделать это является использование, ntpкоторое все еще работает в Ubuntu 18.04. Запустите следующую команду для установки ntp.

sudo apt install ntp

После установки вы можете запустить, ntpq -pчтобы убедиться, что он работает.

~$ ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 0.ubuntu.pool.n .POOL.          16 p    -   64    0    0.000    0.000   0.000
 1.ubuntu.pool.n .POOL.          16 p    -   64    0    0.000    0.000   0.000
 2.ubuntu.pool.n .POOL.          16 p    -   64    0    0.000    0.000   0.000
 3.ubuntu.pool.n .POOL.          16 p    -   64    0    0.000    0.000   0.000
 ntp.ubuntu.com  .POOL.          16 p    -   64    0    0.000    0.000   0.000

Затем в вашем /etc/crontabфайле добавьте @reboot root /usr/sbin/ntpd -nтак, чтобы ntpdон автоматически запускался при перезагрузке системы. Используйте ваш любимый редактор, как geditили, mousepadили как вам нравится:

pkexec gedit /etc/crontab

Это должно выглядеть примерно так при добавлении строки:

# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# m h dom mon dow user  command
17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly
25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6    * * 7   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6    1 * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
@reboot     root    /usr/sbin/ntpd -n
#

Затем перезагрузите компьютер, чтобы настройки вступили в силу.

~$ timedatectl status
                      Local time: Wed 2018-06-13 06:55:35 MDT
                  Universal time: Wed 2018-06-13 12:55:35 UTC
                        RTC time: Wed 2018-06-13 12:55:36
                       Time zone: America/Denver (MDT, -0600)
       System clock synchronized: yes
systemd-timesyncd.service active: yes
                 RTC in local TZ: no

Если вы хотите изменить серверы на серверы Азиатского пула, добавьте их в # Use servers from the NTP Pool Project.часть /etc/ntp.confфайла следующим образом:

# Use servers from the NTP Pool Project. Approved by Ubuntu Technical Board
# on 2011-02-08 (LP: #104525). See http://www.pool.ntp.org/join.html for
# more information.
server 0.asia.pool.ntp.org
server 1.asia.pool.ntp.org
server 2.asia.pool.ntp.org
server 3.asia.pool.ntp.org

Надеюсь это поможет!

Терренс
источник
17

Это можно сделать без развертывания NTP следующим образом:

sudo nano /etc/systemd/timesyncd.conf  

Изменить детали NTP-сервера

[Time]
NTP=ur.ntp.srv
FallbackNTP=ur.fallbackntp.srv

затем

sudo systemctl daemon-reload
sudo timedatectl set-ntp off
sudo timedatectl set-ntp on

и вы можете проверить это с

timedatectl status
Макс Роббертзе
источник
Вы также можете предоставить список серверов ntp (разделенный пробелами список) в вашем timesyncd.confфайле NTP=0.ur.ntp.srv 1.ur.ntp.srv:; Вы также можете предоставить пул серверов (глобальный пул или определенный для региона или страны): pool.ntp.org/zone/@
Géraud
4

Следующее работало для меня:

timedatectl set-ntp true

а потом...

systemctl restart systemd-timesyncd

Пример:

введите описание изображения здесь

tgogos
источник
3

Опция Gui: Перейдите в «Настройки» -> «Детали» -> «Дата и время» -> Включить «Автоматическая дата и время».

systemctl restart systemd-timesyncd может помочь

NZ Dev
источник
3

Для тех, кто использует Ubuntu 18+ на экземплярах AWS EC2, я обнаружил, что это работает фантастически. Он использует сервис внутренней синхронизации времени AWS:

sudo apt install chrony
sudo nano /etc/chromny/chrony.conf

Добавьте следующую строку перед любой другой записью сервера:

server 169.254.169.123 prefer iburst minpoll 4 maxpoll 4

а потом

sudo /etc/init.d/chrony restart

Лучшая часть этого метода для экземпляров EC2 заключается в том, что вам не нужно изменять правила группы безопасности, даже если ваш экземпляр не подключен к Интернету :)

Источник

jtcotton63
источник
2

Связанный случай, который не совсем этот, но я хочу добавить его куда-нибудь:

Возможно, как это было для меня, для этого timedatectl выходные данные соответствуют порту NTP, заблокированному вашим брандмауэром.

В Ubuntu вы можете явно разрешить связь через порт NTP 123 с помощью следующей команды:

sudo ufw allow out from any to any port 123

Это позволит исходящему трафику от службы, работающей на вашем ПК, используя любую комбинацию порта / сетевого протокола, к службам, работающим на удаленной машине, использующей порт 123 с любым сетевым протоколом. Это включает службы, работающие на удаленных машинах, которые реализуют сетевой протокол времени, который требуется для возможности запрашивать время с удаленной машины.

user973021
источник