Włącz synchronizację zegara systemowego

14

„timedatectl” daje następujące wyniki:

                      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

Jak ustawić Zsynchronizowany zegar systemowy na tak?

BEWARB
źródło

Odpowiedzi:

10

Jednym ze sposobów na to jest użycie, ntpktóre nadal działa w Ubuntu 18.04. Uruchom następujące polecenie, aby zainstalować ntp.

sudo apt install ntp

Po zainstalowaniu możesz uruchomić, ntpq -paby upewnić się, że działa.

~$ 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

Następnie /etc/crontabdodaj plik, @reboot root /usr/sbin/ntpd -naby ntpdautomatycznie uruchomił się po ponownym uruchomieniu systemu. Użyj edytora podobnego geditlub mousepadczy cokolwiek takiego:

pkexec gedit /etc/crontab

Powinno to wyglądać tak po dodaniu wiersza:

# /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
#

Następnie uruchom ponownie komputer, aby ustawienia odniosły skutek.

~$ 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

Jeśli chcesz zmienić swoje serwery na serwery Asia Pool , dodaj je do # Use servers from the NTP Pool Project.części /etc/ntp.confpliku w następujący sposób:

# 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

Mam nadzieję że to pomoże!

Terrance
źródło
17

Można to zrobić bez wdrażania NTP w następujący sposób:

sudo nano /etc/systemd/timesyncd.conf  

Edytuj szczegóły serwera NTP

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

Następnie

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

i możesz to sprawdzić za pomocą

timedatectl status
Max Robbertze
źródło
Możesz również podać listę serwerów NT (lista rozdzielona spacjami) w swoim timesyncd.confpliku NTP=0.ur.ntp.srv 1.ur.ntp.srv:; Możesz także podać pulę serwerów (pula globalna lub specyficzna dla regionu lub kraju): pool.ntp.org/zone/@
Géraud
4

Dla mnie działało:

timedatectl set-ntp true

i wtedy...

systemctl restart systemd-timesyncd

Przykład:

wprowadź opis zdjęcia tutaj

tgogos
źródło
Nie działało dla mnie.
ATX
3

Opcja GUI: Wybierz „Ustawienia” -> „Szczegóły” -> „Data i czas” -> Włącz „Automatyczną datę i godzinę”.

systemctl restart systemd-timesyncd może pomóc

NZ Dev
źródło
3

Dla tych, którzy używają Ubuntu 18+ w instancjach AWS EC2, stwierdziłem, że działało to fantastycznie. Wykorzystuje wewnętrzną usługę synchronizacji czasu AWS:

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

Dodaj następujący wiersz przed jakimkolwiek innym wpisem na serwerze:

server 169.254.169.123 prefer iburst minpoll 4 maxpoll 4

i wtedy

sudo /etc/init.d/chrony restart

Najlepszą częścią tej metody dla instancji EC2 jest to , że nie musisz modyfikować reguł grupy zabezpieczeń, nawet jeśli instancja nie jest połączona z Internetem :)

Źródło

jtcotton63
źródło
2

Powiązany przypadek, który nie jest dokładnie ten, ale chcę go gdzieś dodać:

Możliwe jest, tak jak w moim przypadku, aby timedatectldane wyjściowe odpowiadały portowi NTP blokowanemu przez twoją zaporę ogniową.

W systemie Ubuntu możesz jawnie zezwolić na komunikację na porcie NTP 123, uruchamiając następujące polecenie:

sudo ufw allow out from any to any port 123

Umożliwi to ruch wychodzący z usługi działającej na twoim komputerze za pomocą dowolnej kombinacji port / sieć-protokół do usług działających na zdalnym komputerze używającym portu 123 z dowolnym protokołem sieciowym. Obejmuje to usługi działające na zdalnych komputerach, które implementują protokół czasu sieciowego, który jest wymagany, aby móc poprosić o czas ze zdalnego komputera.

użytkownik973021
źródło