В современных дистрибутивов с systemd служба синхронизации времени уже присутствует в дефолтной установке и реализуется через systemd-timesyncd. Эта служба призвана заменить ntpd, она интегрирована в systemd, поэтому для автоматической синхронизации времени рекомендуется использовать именно ее.
Проверим, как в вашем дистрибутиве настроена служба обновления времени, используя утилиту timedatectl, которая рекомендуется использовать вместо морально устаревшей tzdata:
Синхронизация времени уже включена и работает через timesyncd. Посмотрим ее настройки и статус:
# 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
Мы видим что синхронизация времени через интернет уже настроена и работает. Время обновляется с сервера ntp.ubuntu.com. При желании вы можете изменить сервер времени в файле /etc/systemd/timesyncd.conf.
Команды тестировались для Ubuntu 20.04.1 LTS.
apt update && apt upgrade tzdata
timedatectl list-timezones | grep Europe
timedatectl set-timezone Europe/Kyiv
Проверим установился ли часовой пояс
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
NTP (Network Time Protocol — протокол сетевого времени) — сетевой протокол для синхронизации внутренних часов компьютера с серверами точного времени. NTP, основан на алгоритме Марзулло, использует для своей работы протокол UDP и учитывает время передачи.
Консольная утилита ntpdate для синхронизации времени
ntpd - (Network Time Protocol (NTP) daemon) для FreeBSD.
#включим 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
# 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
Поэтому прописывать непосредственно 0.ubuntu.pool.ntp.org бесполезно так как он попадет по правило по умолчанию restrict default. Который в нашем случае все запрещает. Обойти это можно или прописав все IP данного пула в restrict или убрать restrict default ignore и использовать для защиты сервера времени фаервол.
Запускаем ntpd и командой sockstat смотрим процессы ntpd:
> /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 *:*
Утилитой ntpq можно проверить какие сервера доступны для синхронизации:
> 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
Проверочный запрос к нашему серверу утилитой Консольная утилита ntpdate для синхронизации времени. -q указывает не изменять время; -d отладочный режим без изменения времени
> 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
Трассировка NTP маршрута утилитой ntptrace
> 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'
Если вам нужно только синхронизировать ваши часы при загрузке машины, вы можете воспользоваться утилитой Консольная утилита ntpdate для синхронизации времени. Это может подойти для некоторых настольных машин, которые часто перезагружаются и только требуют изредка синхронизироваться, но на большинстве машин должен работать ntpd.
# 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
Правим /etc/ntp.conf для того чтобы синхронизация производилась с нашим сервером.
# 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
ntpd_enable="YES" # Time(NTP) -server ntpdate_enable="YES" ntpdate_flags="-u x.x.x.254" # IP NTP server
и запустить службу, предварительно настроив ./etc/ntp.conf(см. выше)
> /etc/rc.d/ntpd start
FreeBSD: 480.status-ntpd - выводит список известных NTP-серверу peer. Если стабильность работы NTP сервера важна - можно включить.
> ee /etc/periodic.conf # 480.status-ntpd daily_status_ntpd_enable="YES" # Check NTP status
Параметры запуска демона в следующем конфигурационном файле:
ntp-server:~# cat /etc/default/ntp NTPD_OPTS='-g'
# cat /etc/sysconfig/ntpd # Command line options for ntpd OPTIONS="-g"
Параметр -g позволит синхронизировать часы, даже если образовалась очень большая разница во времени.