Як Ubuntu синхронізує час без ntp?


39

Натиснувши "Налаштування системи -> Час і дата -> Автоматично з Інтернету", я можу синхронізувати час з Інтернету.

Однак я вважаю, що у мене немає ntpdдемона (він навіть не встановлений). То як працює синхронізація?


6
Зауважте, що цей інтерфейс, IMHO, вводить в оману. Це має бути кнопка, а не перемикач, тому що вона спрацьовує одноразовою дією, використовуючи ntpdate, --- вам потрібно вручну встановити ntpсинхронізацію часу Continouos з Інтернетом. Про це я повідомив у bugs.launchpad.net/ubuntu/+source/gnome-control-center/+bug/…
Rmano

Я не впевнений, що це вводить в оману. Я мав враження, що він запускав ntpdate один раз при кожному завантаженні, якщо цю опцію не було вимкнено. Чи може хтось підтвердити?
thomasrutter

на Kubuntu 16.04, віджет годинника навіть не показує Automatically from the Internetпараметр або що-небудь пов’язане з цим.
kmonsoor

Відповіді:


38

Це робиться синхронізацією з ntpdateінструментом.

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.

Ви можете зробити це за допомогою

sudo ntpdate TIME-SERVER

Список TIME-SERVER можна створити тут


6
але питання полягає в тому, що ntpdate не встановлений за замовчуванням на Ubuntu, тож як Ubuntu колись синхронізує час?
Джон Аллард

2
Примітка: ця прийнята відповідь дуже застаріла. В останніх версіях Ubuntu (16.04+) замість ntpdate використовується timedatectl. timedatectl керує службою Timesdncncd системи systemd.
Корі Голдберг

Так, ця відповідь поза темою. Це не "як синхронізувати час без ntpd + ntpq", а "як UBUNTU робить це без будь-якого з перерахованого вище (ntpdate / ntpq). Це питання я знайшов лише після того, як помітив, що мій годинник синхронізований, і я очікував, що він вимкнеться . , по крайней мере , кілька десятків секунд (Ubuntu 18.04) Я також пам'ятаю , що пекло повномасштабна Ntpd є, коли він відмовляється від часу синхронізації «занадто далеко» і т.д. А тепер - годинник синхронізуються Magic !.
Томаш Gandor

21

Ubuntu синхронізується з ntpdateутилітою раз при кожному підключенні до мережі (що зазвичай відбувається під час завантаження).

Ця утиліта встановлена ​​за замовчуванням, але працює лише тоді, коли Ubuntu викликає її і не працює у фоновому режимі як демон.

Встановлення ntpпакета встановлює демон NTP. Демон ntp дозволяє час синхронізувати час під час роботи системи.


Оновлення : в останніх версіях Ubuntu (наприклад, 16.04) ntpdateзамінено на timedatectl, який синхронізується один раз під час завантаження, а також коли мережа з’являється, але не продовжує працювати в інший час. Див. Https://help.ubuntu.com/lts/serverguide/NTP.html для отримання додаткової інформації.


4
Справа не в кожному завантаженні; слідувати dpkg-query --listfiles ntpdateв /etc/network/if-up.d/ntpdate.
ændrük

1
А, дякую, тож я думаю, що кожного разу з’являється мережевий інтерфейс, який не обов’язково буде кожним завантажувачем для всіх.
thomasrutter

ах, ви впевнені, що це встановлено за замовчуванням? Я сиджу тут на шиплячому новому екземплярі сервера Ubuntu 16.04, і утиліта ntpdate не встановлена.
Джон Аллард

ntpdate був встановлений за замовчуванням у 14.04, але вже не в 16.04, тепер він вважається застарілим, завдяки timedatectlчому працює аналогічно - він встановлюється за замовчуванням і синхронізується один раз під час завантаження, але також коли з’являється мережа.
thomasrutter

12

Для тих, хто з 16.04 LTS синхронізацією часу, як видається, обробляється sytemd, спеціально "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 є

/etc/systemd/timesyncd.conf

Більше інформації тут: Синхронізація часу з NTP AND timedatectl


1
Це найкраща відповідь на даний момент. Решта - практично поза темою (крім відредагованих, де згадується systemd-timedatectl).
Томаш Гандор

2

Зауважте також, що цілком можливо існувати інтерфейсний інтерфейс до служби, яка не встановлена.

Ви можете змінити налаштування в інтерфейсі інтерфейсу (GUI) все, що вам потрібно, але якщо служба, яка фактично виконує завдання, не встановлена, нічого не відбудеться.

Однак зауважте, що я вважаю, що "перемикач" є дійсним, тому що він говорить йому зробити разове оновлення при кожному завантаженні. (або не робити цього).

Якщо це не підключена до мережі система, або є якась основна причина, для якої НЕ встановлено час, який відповідає «стандартному» часу, я б настійно закликав вас встановити ntpd і правильно налаштувати та запустити його.


1

Зверніться до: https://help.ubuntu.com/community/UbuntuTime

Ubuntu стандартно поставляється з ntpdate, і він запустить його один раз під час завантаження, щоб встановити свій час відповідно до NTP-сервера Ubuntu. Однак годинник системи, швидше за все, буде значно переміщатися між перезавантаженнями, якщо час між перезавантаженнями буде довгим. У цьому випадку є сенс час від часу коригувати час. Найпростіший спосіб зробити це - це змусити cron запускати його щодня.

ntpdate ntp.ubuntu.com

Або ви можете використовувати ntpd( help.ubuntu.com/lts/serverguide/NTP.html#ntpd ) для підтримки синхронізації.
Гаурав

FYI, сторінка, яку ви переглянули, не оновлювалася до 16.04, відтепер не є дуже корисною.
kmonsoor

1

Чомусь 16.04 відповідь Мейту не працює відразу.

Але взявши на себе керівництво, це працювало для мене.

$ sudo ntpdate-debian

Зауважте sudo, очевидно, що для цього потрібні пільги.

Під кришкою використовується ntpdateінструмент, що відрізняється лише конфігураційним файлом.

ntpdate-debian є ідентичним, за ntpdate(8) винятком того, що він використовує конфігурацію /etc/default/ntpdateза замовчуванням. ntpdate встановлює локальну дату та час шляхом опитування серверів Network Time Protocol (NTP).


16.04 використовує systemd, тому я би очікував, що у нього буде еквівалентна нова команда для використання.
Rinzwind

@ Rinzwind, що було б фантастично, звичайно. На жаль, головна сторінка на вікі Ubuntu не оновлюється 16.04. На ній видно повідомлення "msgstr" Ця стаття потребує оновлення, щоб включити останні версії Ubuntu ".
kmonsoor

Принаймні в 14.04 sudo ntpdate-debianробить те саме, що і sudo ntpdate ntp.ubuntu.com. Дивно, чому вони відібрали та вимкнули цей пакунок з debian, коли ми його читали is identical to ntpdate(8) except that it uses the configuration in /etc/default/ntpdate by defaultі перебирали цей файл, який ми читали 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"???
корисно

1

Ну а пізніші версії Ubuntu часто роблять це за допомогою chrony, що є альтернативною реалізацією ntp з деякими відмінностями: -

  1. Деякі з більш рідко використовуваних функцій ntp не реалізовані
  2. Він намагається добре впоратися з ситуацією, коли у вас переривчастий доступ до мережі - при підключенні він синхронізує локальний годинник і відстежує, як швидко він дрейфує. При відключенні він використовує локальний годинник, але налаштовує час, щоб врахувати, як він зазвичай дрейфує.

Див. Https://chrony.tuxfamily.org/ для отримання додаткової інформації.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.