Различия

Показаны различия между двумя версиями страницы.


Предыдущая версия
ntp [2025/07/06 12:39] (текущий) – внешнее изменение 127.0.0.1
Строка 1: Строка 1:
 +====== Настройки времени в Linux ======
 +~~Title: Настройки времени systemd-timesyncd и запуск сервера NTP ~~
 +{{htmlmetatags>
 +metatag-description=(NTP это сетевой протокол, для синхронизации внутренних часов компьютера с серверами точного времени. Примеры настройки NTP сервера FreeBSD, Linux.)
 +}}
 +В современных дистрибутивов с [[systemd|systemd]] служба синхронизации времени уже присутствует в дефолтной установке и реализуется через systemd-timesyncd. Эта служба призвана заменить ntpd, она интегрирована в systemd, поэтому для автоматической синхронизации времени рекомендуется использовать именно ее.
 +
 +<alert type="danger" icon="fa fa-info">systemd-timesyncd не может работать в качестве сервера времени. Если у вас одиночный сервер, вам вполне подойдет timesyncd. Если же вы хотите использовать свой сервер времени, то требуется настраивать ntp.</alert>
 +
 +Проверим, как в вашем дистрибутиве настроена служба обновления времени, используя утилиту timedatectl, которая рекомендуется использовать вместо морально устаревшей [[tzdata|tzdata]]:
 +
 +{{ ::timedatectl_wiki.dieg.info.jpg?nolink |}}
 +
 +Синхронизация времени уже включена и работает через timesyncd. Посмотрим ее настройки и статус:
 +<file bash>
 +# timedatectl timesync-status
 +       Server: 91.189.94.4 (ntp.ubuntu.com)
 +Poll interval: 34min 8s (min: 32s; max 34min 8s)
 +         Leap: normal
 +      Version: 4
 +      Stratum: 2
 +    Reference: 11FD6CFD
 +    Precision: 1us (-23)
 +Root distance: 51.085ms (max: 5s)
 +       Offset: -235us
 +        Delay: 7.893ms
 +       Jitter: 849us
 + Packet count: 126
 +    Frequency: +3.193ppm
 +</file>
 +Мы видим что синхронизация времени через интернет уже настроена и работает. Время обновляется с сервера ntp.ubuntu.com. При желании вы можете изменить сервер времени в файле /etc/systemd/timesyncd.conf.
 +
 +===== Установка, настройка и изменение часового пояса =====
 +Команды тестировались для  Ubuntu 20.04.1 LTS.
 +
 +  - Обновим список timezone на сервере:<file bash>
 +apt update && apt upgrade tzdata
 +</file>
 +  - Вывести список европейских timezоne:<file bash>
 +timedatectl list-timezones | grep Europe
 +</file>
 +  - Смена часового пояса:<file bash>
 +timedatectl set-timezone Europe/Kyiv
 +</file>
 +Проверим установился ли часовой пояс
 +<file bash>
 +timedatectl -a
 +           Local time: Sat 2022-05-28 17:34:57 EEST
 +           Universal time: Sat 2022-05-28 14:34:57 UTC
 +           RTC time: Sat 2022-05-28 14:34:58
 +           Time zone: Europe/Kiev (EEST, +0300)
 +System clock synchronized: yes
 +           NTP service: active
 +           RTC in local TZ: no
 +</file>
 +====== Настройка сервера времени NTP (ntpd) ======
 +NTP (Network Time Protocol — протокол сетевого времени) — сетевой протокол для синхронизации внутренних часов компьютера с серверами точного времени. NTP, основан на алгоритме Марзулло, использует для своей работы протокол UDP и учитывает время передачи.
 +
 +[[ntpdate]]
 +{{ :ntp_time.gif?nolink |}}
 +
 +**ntpd** - (Network Time Protocol (NTP) daemon) для [[FreeBSD]].
 +
 +<code>
 +#включим ntpd при загрузке сервера
 +> echo 'ntpd_enable="YES"' >> /etc/rc.conf
 +> man ntpd
 +...
 +FILES
 +     /etc/ntp.conf   the default name of the configuration file
 +     /etc/ntp.drift  the default name of the drift file
 +     /etc/ntp.keys   the default name of the key file
 +
 +SEE ALSO
 +     ntp.conf(5), ntpdate(8), ntpdc(8), ntpq(8)
 +...
 +
 +> ee /etc/ntp.conf
 +#
 +#ntp.time.in.ua 62.149.0.30
 +server 62.149.0.30 prefer iburst
 +#tick.usask.ca 128.233.3.100
 +server 128.233.3.100 iburst
 +#ntp2.imvp.ru 62.117.76.141
 +server 62.117.76.141 iburst
 +#ntp0.mao.kiev.ua 194.44.35.24
 +server 194.44.35.24  iburst
 +#
 +server 0.freebsd.pool.ntp.org iburst maxpoll 9
 +server 1.freebsd.pool.ntp.org iburst maxpoll 9
 +server 2.freebsd.pool.ntp.org iburst maxpoll 9
 +
 +
 +#опция prefer задает предпочитаемый сервер.
 +#опция iburst позволяет ntpd ускорить начальный процесс синхронизации.
 +
 +# NTP drift file - хранит информацию об отклонениях времени
 +driftfile /etc/ntp.drift
 +# Log ntpd
 +logfile /var/log/ntpd.log
 +
 +#default: deny for all
 +restrict default ignore
 +# allow for localhost
 +restrict 127.0.0.1
 +# allow our network
 +restrict 10.26.95.0 mask 255.255.255.0 nomodify notrap
 +restrict 195.x.x.x mask 255.255.255.224 nomodify notrap
 +restrict 194.x.x.x mask 255.255.255.248 nomodify notrap
 +
 +# сервера с которыми мы синхронизируемся
 +# должны иметь возможность менять время нашего сервера
 +restrict 62.149.0.30 noquery notrap
 +restrict 128.233.3.100 noquery notrap
 +restrict 62.117.76.141 noquery notrap
 +restrict 194.44.35.24 noquery notrap
 +restrict ntp2.time.in.ua noquery notrap
 +</code>
 +<note warning>restrict не подходит к 0.ubuntu.pool.ntp.org, т.к. этот домен имеет несколько IP<file>
 +# host 0.ubuntu.pool.ntp.org
 +0.ubuntu.pool.ntp.org has address 158.37.91.134
 +0.ubuntu.pool.ntp.org has address 85.10.240.253
 +0.ubuntu.pool.ntp.org has address 91.121.25.33
 +0.ubuntu.pool.ntp.org has address 123.108.225.6
 +</file> Поэтому прописывать непосредственно 0.ubuntu.pool.ntp.org бесполезно так как он попадет по правило по умолчанию restrict default. Который в нашем случае все запрещает. Обойти это можно или прописав все IP данного пула в restrict или убрать restrict default ignore и использовать для защиты сервера времени фаервол.</note>
 +
 +Запускаем ntpd и командой sockstat смотрим процессы ntpd:
 +<code>
 +> /etc/rc.d/ntpd start
 +> sockstat | grep -v udp6 | grep ntpd
 +root     ntpd       65762 3  dgram  -> /var/run/logpriv
 +root     ntpd       65762 20 udp4   *:123                 *:*
 +root     ntpd       65762 22 udp4   10.26.95.254:123      *:*
 +</code>
 +
 +Утилитой ntpq можно проверить какие сервера доступны для синхронизации:
 +<code>
 +> ntpq -c peers
 +     remote           refid      st t when poll reach   delay   offset  jitter
 +==============================================================================
 +*ntp.time.in.ua  .GPS.            1 u   50   64   37    7.457  -28.883  16.186
 + 128.233.3.100   .STEP.          16 u    -   64    0    0.000    0.000   0.000
 ++ntp2.imvp.ru    .IMVP.           1 u   58   64   37  102.083  -28.363  16.256
 ++194.44.35.24    .PPS.            1 u   16   64   37    8.238  -32.665  16.859
 +
 +</code>
 +Проверочный запрос к нашему серверу утилитой [[ntpdate]]. -q указывает не изменять время; -d отладочный режим без изменения времени
 +<code>
 +> ntpdate -q localhost
 +server 127.0.0.1, stratum 2, offset -0.000013, delay 0.02571
 +server ::1, stratum 2, offset -0.000016, delay 0.02574
 +10 Jan 01:14:48 ntpdate[81851]: adjust time server 127.0.0.1 offset -0.000013 sec
 +</code>
 +Трассировка NTP маршрута утилитой **ntptrace**
 +<file>
 +> ntptrace 
 +localhost: stratum 3, offset 0.001832, root distance 0.028646
 +mail.v.com.ua: stratum 2, offset 0.000255, root distance 0.008628
 +ntp.time.in.ua: stratum 1, offset 0.000001, root distance 0.000000, refid 'GPS'
 +</file>
 +
 +<note important>Нужно разрешить в фаерволе 123 UDP порт.</note>
 +
 +===== Настройка клиентов сервера времени =====
 +Если вам нужно только синхронизировать ваши часы при загрузке машины, вы можете воспользоваться утилитой [[ntpdate]]. Это может подойти для некоторых настольных машин, которые часто перезагружаются и только требуют изредка синхронизироваться, но на большинстве машин должен работать **ntpd**.
 +  * **Windows** - просто указать IP и DNS нашего сервера NTP
 +  * **Ubuntu (любой дистрибутив Debian)**:<code># aptitude install ntp
 +# ntpq -c peers
 +     remote           refid      st t when poll reach   delay   offset  jitter
 +==============================================================================
 + europium.canoni 193.79.237.14    2 u   43   64    7   58.812  -697293  14.720
 +</code>Правим /etc/ntp.conf для того чтобы синхронизация производилась с нашим сервером.<code>
 +# cp /etc/ntp.conf /etc/ntp.conf.orig
 +# nano /etc/ntp.conf
 +driftfile /var/lib/ntp/ntp.drift
 +
 +statsdir /var/log/ntpstats/
 +
 +statistics loopstats peerstats clockstats
 +filegen loopstats file loopstats type day enable
 +filegen peerstats file peerstats type day enable
 +filegen clockstats file clockstats type day enable
 +
 +# local NTP server
 +server 10.26.95.254 prefer
 +# Backup NTP server
 +server ntp3.time.in.ua
 +
 +restrict default ignore
 +
 +restrict 127.0.0.1
 +restrict ::1
 +restrict 10.26.95.254
 +# ntp3.time.in.ua = 80.91.187.10
 +restrict 80.91.187.10
 +
 +# /etc/init.d/ntp restart
 +</code>
 +  * **FreeBSD** достаточно прописать в /etc/rc.conf<file>
 +ntpd_enable="YES" # Time(NTP) -server
 +ntpdate_enable="YES"
 +ntpdate_flags="-u x.x.x.254" # IP NTP server
 +</file>и запустить службу, предварительно настроив ./etc/ntp.conf(см. выше)<file>
 +> /etc/rc.d/ntpd start
 +</file>
 +====== periodic.conf status-ntpd ======
 +[[FreeBSD]]: 480.status-ntpd - выводит список известных NTP-серверу peer. Если стабильность работы NTP сервера важна - можно включить.
 +<code>> ee /etc/periodic.conf
 +# 480.status-ntpd
 +daily_status_ntpd_enable="YES"                           # Check NTP status
 +</code>
 +
 +===== ntpd Fedora, Debian =====
 +
 +Параметры запуска демона в следующем конфигурационном файле:
 +  * [[Debian]]:<file>
 +ntp-server:~# cat /etc/default/ntp
 +NTPD_OPTS='-g'
 +</file>
 +  * Fedora:<file>
 +# cat /etc/sysconfig/ntpd
 +# Command line options for ntpd
 +OPTIONS="-g"
 +
 +</file>
 +Параметр -g позволит синхронизировать часы, даже если образовалась очень большая разница во времени.
  

📌 Удобный подбор VPS по параметрам доступен на DIEGfinder.com - официальном инструменте проекта DIEG. Это часть единой экосистемы, созданной для того, чтобы помочь быстро найти подходящий VPS/VDS сервер для любых задач хостинга.

📌 Для тестирования скриптов, установщиков VPN и Python-ботов рекомендуем использовать надежные VPS на короткий срок. Подробнее о быстрой аренде VPS для экспериментов - читайте здесь.

💥 Подпишись в Телеграм 💥 и задай вопрос по сайтам и хостингам бесплатно!