W jaki sposób Ubuntu synchronizuje czas bez NTTP?


39

Klikając „Ustawienia systemu -> Czas i data -> Automatycznie z Internetu”, mogę zsynchronizować czas z Internetu.

Uważam jednak, że nie mam ntpddemona (nie jest nawet zainstalowany). Jak działa synchronizacja?


6
Zauważ, że ten interfejs jest, IMHO, wprowadzający w błąd. Powinien to być przycisk, a nie przełącznik, ponieważ uruchamia jednorazową akcję, używając ntpdate: --- musisz ręcznie zainstalować, ntpaby synchronizacja czasu kontynentalnego z Internetem. Zgłosiłem to w bugs.launchpad.net/ubuntu/+source/gnome-control-center/+bug/...
Rmano

Nie jestem pewien, czy to wprowadza w błąd. Miałem wrażenie, że uruchamiał ntpdate raz przy każdym uruchomieniu, chyba że ta opcja była wyłączona. Czy ktoś może potwierdzić?
thomasrutter

w Kubuntu 16.04 widżet zegara nie pokazuje nawet Automatically from the Internetopcji ani nic związanego z tym.
kmonsoor,

Odpowiedzi:


38

Odbywa się to poprzez synchronizację z ntpdatenarzędziem.

man ntpdate

NAME
       ntpdate - set the date and time via NTP

ntpdate sets the local date and time by polling the Network Time Proto‐
       col (NTP) server(s) given as the server arguments to determine the cor‐
       rect time. It must be run as root on the local host (unless the  option
       -q  is used). A number of samples are obtained from each of the servers
       specified and a subset of the NTP clock filter and selection algorithms
       are  applied  to  select  the best of these. Note that the accuracy and
       reliability of ntpdate depends on the number of servers, the number  of
       polls each time it is run and the interval between runs.

       ntpdate  can  be run manually as necessary to set the host clock, or it
       can be run from the host startup script to set the clock at boot  time.
       This is useful in some cases to set the clock initially before starting
       the NTP daemon ntpd. It is also possible to run  ntpdate  from  a  cron
       script.  However,  it  is important to note that ntpdate with contrived
       cron scripts is no substitute for the NTP daemon, which uses  sophisti‐
       cated  algorithms to maximize accuracy and reliability while minimizing
       resource use. Finally, since ntpdate does not discipline the host clock
       frequency as does ntpd, the accuracy using ntpdate is limited.

Możesz to zrobić za pomocą

sudo ntpdate TIME-SERVER

Listy TIME-SERVER można założyć tutaj


6
ale pytanie brzmi: ntpdate nie jest domyślnie instalowane na Ubuntu, więc w jaki sposób Ubuntu kiedykolwiek synchronizuje czas?
John Allard

2
Uwaga: ta zaakceptowana odpowiedź jest bardzo nieaktualna. W najnowszych wersjach Ubuntu (16.04+) zamiast ntpdate używany jest timedatectl. timedatectl kontroluje usługę timesyncd systemu.
Corey Goldberg,

Tak, ta odpowiedź jest nie na temat. To nie jest „jak zsynchronizować czas bez ntpd + ntpq”, ale „Jak UBUNTU robi to bez żadnego z powyższych (ntpdate / ntpq). Znalazłem to pytanie zaraz po zauważeniu, że mój zegar jest zsynchronizowany i spodziewałem się, że będzie wyłączony przez co najmniej kilkadziesiąt sekund (Ubuntu 18.04). Pamiętam też, do diabła, że ​​jest pełnoobsługowy NTPd, kiedy odmawia on synchronizacji czasu „zbyt daleko” itp. A teraz - zegar jest zsynchronizowany! Magia
Tomasz Gandor

21

Ubuntu synchronizuje się z ntpdatenarzędziem za każdym razem, gdy pojawia się połączenie sieciowe (co zwykle dzieje się podczas uruchamiania).

To narzędzie jest instalowane domyślnie, ale działa tylko wtedy, gdy Ubuntu go wywołuje i nie działa w tle jako demon.

Zainstalowanie ntppakietu powoduje zainstalowanie demona NTP. Demon NTTP pozwala na ciągłą synchronizację czasu podczas działania systemu.


Aktualizacja : w najnowszych wersjach Ubuntu (np. 16.04) ntpdatejest zastąpiony przez timedatectl, który synchronizuje się raz podczas rozruchu, a także kiedy pojawia się sieć, ale nie działa w innym czasie. Więcej informacji na stronie https://help.ubuntu.com/lts/serverguide/NTP.html .


4
Nie ma go przy każdym rozruchu; podążaj dpkg-query --listfiles ntpdateza /etc/network/if-up.d/ntpdate.
ændrük

1
Ach, dzięki, więc myślę, że za każdym razem, gdy pojawia się interfejs sieciowy, niekoniecznie będzie to każdy rozruch dla każdego.
thomasrutter

ah na pewno jest to domyślnie zainstalowane? Siedzę tutaj na nowej, klapsującej instancji serwera Ubuntu 16.04 i nie ma zainstalowanego narzędzia ntpdate.
John Allard

ntpdate zostało zainstalowane domyślnie w 14.04, ale już nie w 16.04, teraz jest uważane za przestarzałe, dzięki timedatectlczemu działa podobnie - jest instalowane domyślnie i synchronizuje się przy starcie, ale także gdy pojawia się sieć.
thomasrutter

12

Dla tych z was, którzy mają 16.04 LTS synchronizacja czasu wydaje się być obsługiwana przez sytemd, a konkretnie „timedatectl”

timedatectl status
Local time: Wed 2016-11-30 17:45:18 CST
Universal time: Wed 2016-11-30 23:45:18 UTC
RTC time: Sun 2016-12-04 06:50:39
Time zone: America/Chicago (CST, -0600)
Network time on: yes
NTP synchronized: yes
RTC in local TZ: no

Config is

/etc/systemd/timesyncd.conf

Więcej informacji tutaj: Synchronizacja czasu z NTP ORAZ timedatectl


1
To najlepsza odpowiedź na teraz. Reszta jest praktycznie nie na temat (z wyjątkiem tych edytowanych, które wspominają systemd-timedatectl).
Tomasz Gandor

2

Należy również pamiętać, że istnieje całkowicie możliwe, aby istniał interfejs front-end dla usługi, która nie jest zainstalowana.

Możesz zmienić ustawienia tego interfejsu (GUI), ile chcesz, ale jeśli usługa, która faktycznie wykonuje zadania, nie zostanie zainstalowana, nic się nie wydarzy.

Zauważ jednak, że myślę, że „przełącznik” jest prawidłowy, ponieważ nakazuje mu wykonanie jednorazowej aktualizacji przy KAŻDYM rozruchu. (lub tego nie robić).

Jeśli nie jest to system niepołączony z siecią lub istnieje jakiś inny nadrzędny powód, aby NIE ustawiać czasu na czas „standardowy”, zdecydowanie zachęcam do zainstalowania ntpd oraz prawidłowej konfiguracji i uruchomienia go.


1

Zobacz: https://help.ubuntu.com/community/UbuntuTime

Ubuntu jest standardowo wyposażony w ntpdate i uruchomi go raz podczas rozruchu, aby skonfigurować czas zgodnie z serwerem NTP Ubuntu. Jednak zegar systemu może znacznie dryfować między restartami, jeśli czas między restartami jest długi. W takim przypadku warto od czasu do czasu korygować czas. Najłatwiej to zrobić, uruchamiając crona codziennie.

ntpdate ntp.ubuntu.com

Lub możesz użyć ntpd( help.ubuntu.com/lts/serverguide/NTP.html#ntpd ), aby zachować synchronizację.
Gaurav

Do Twojej wiadomości, strona, którą poleciłeś, nie jest aktualizowana do 16.04, dlatego nie jest bardzo pomocna.
kmonsoor

1

Z jakiegoś powodu 16.04 odpowiedź Maythuxa nie działa od razu.

Ale stamtąd przewodzenie, to zadziałało dla mnie.

$ sudo ntpdate-debian

Należy pamiętać, że wymaga to sudooczywiście uprawnień.

Pod maską używa ntpdatenarzędzia, różniącego się tylko plikiem konfiguracyjnym.

ntpdate-debian jest identyczny z ntpdate(8) wyjątkiem tego, że /etc/default/ntpdatedomyślnie korzysta z konfiguracji . ntpdate ustawia lokalną datę i godzinę, odpytując serwery Network Time Protocol (NTP).


16.04 używa systemd, więc spodziewałbym się, że będzie miał równoważne nowe polecenie do użycia.
Rinzwind

@Rinzwind to oczywiście fantastycznie. Niestety, rzekomo główna strona wiki Ubuntu nie została zaktualizowana do 16.04. Pokazuje msg z informacją: „Ten artykuł wymaga aktualizacji, aby uwzględnić najnowsze wersje Ubuntu”.
kmonsoor,

Przynajmniej w 14.04 sudo ntpdate-debianrobi to samo co sudo ntpdate ntp.ubuntu.com. Dziwne jest to, dlaczego wybrali i poprawili ten pakiet z Debiana, kiedy go czytamy is identical to ntpdate(8) except that it uses the configuration in /etc/default/ntpdate by defaulti catting ten plik, który czytamy NTPDATE_USE_NTP_CONF=yes # List of NTP servers to use (Separate multiple servers with spaces.) # Not used if NTPDATE_USE_NTP_CONF is yes. NTPSERVERS="ntp.ubuntu.com"???
przydatne

1

Późniejsze wersje Ubuntu często robią to przy użyciu chrony, która jest alternatywną implementacją NTTP z pewnymi różnicami:

  1. Niektóre z rzadziej używanych funkcji NTTP nie są zaimplementowane
  2. Stara się dobrze poradzić sobie z sytuacją, w której masz przerywany dostęp do sieci - Po podłączeniu synchronizuje zegar lokalny i śledzi, jak szybko dryfuje. Po rozłączeniu używa lokalnego zegara, ale dostosowuje czas, aby pozwolić na to, jak zwykle dryfuje.

Zobacz https://chrony.tuxfamily.org/ aby uzyskać więcej informacji.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.