Как установить время на debian. Некорректное время на Ubuntu или Debian - проблемы с NTP синхронизацией времени
26 октября 2014 года был принят закон о смене часовых поясов в России. С данным законопроектам повсеместно возникали проблемы с синхронизацией местного времени по протоколу NTP.
Сегодня мы рассмотрим один из способов решения проблемы синхронизации системного времени на серверах и десктопных машинах Ubuntu\Debian. Решение о котором сегодня будет идти речь, самое логичное, верное и эффективное.
Все просто!
За часовые пояса в системе Ubuntu и Debian отвечает пакет tzdata. Для корректной работы NTP синхронизации и системного времени нужно обновить базу часовых поясов tzdata. Так же, мы рассмотрим установку и настройку NTP клиента для синхронизации системного времени с NTP серверами или кластерами на примере Ubuntu,Debian.
Обновление tzdata - исправляем системного время на Ubuntu или Debian
На сегодняшний день обновления для tzdata появились с стандартных репозиториях системы Ubuntu или Debian. Обновление базы часовых поясов tzdata не составляет, абсолютно, никаких сложностей.
Для обновления tzdata из репозиториев необходимо проделать следующую последовательность операций:
1. Обновляем дерево пакетов подключенных репозиториев.
Sudo apt-get update
2. Производим установку более новой версии tzdata.
Sudo apt-get install tzdata
3. Делаем конфигурацию tzdata и выбираем наш часовой пояс
Sudo dpkg-reconfigure tzdata
4. Перезагружаем систему для обновления системного времени стороннего программного обеспечения
Sudo reboot
Установка и настройка NTP клиента на Ubuntu или Debian
Периодическая синхронизация и корректировка системного времени необходима для серверов и желательна для десктопных систем, т.к. аппаратные часы BIOS имеют значимую погрешность и с закономерной периодичностью "убегают" в большую или меньшую сторону.
Установка и настройка NTP клиента в Ubuntu или Debian можно считать тривиальной задачей, не вызывающая никаких сложностей и вопросов. Установка и настройка Клиента проходит в 3 этапа:
1. Установка NTP клиента:
Sudo apt-get install ntp
2. Настройка NTP клиента при помощи текстового редактора и файла конфигураций
# Проверьте и, при необходимости, замените в файле конфигураций список NTP # серверов для синхронизации. По умолчанию они такие: server 0.ubuntu.pool.ntp.org server 1.ubuntu.pool.ntp.org server 2.ubuntu.pool.ntp.org server 3.ubuntu.pool.ntp.org # Если вы не знаете какие сервера лучше использовать для синхронизации - # рекомендуем воспользоваться данным кластером серверов: http://www.pool.ntp.org/
3. Проверяем пул адресов для синхронизации, который выдает кластер или сервера синхронизации, указанные в файле конфигураций /etc/ntp.conf:
Если у вас будет вывод аналогичный этому - все впорядке, ntp синхронизация системного времени корректно работает:
Remote refid st t when poll reach delay offset jitter =========================================================== *webhost2.mitht. 193.67.79.202 2 u 52 64 17 16.412 -35.137 0.886 mail.sonur.ru .PPS. 1 u 48 64 17 79.297 -58.992 1.493 guard.qword.ru .INIT. 16 u - 64 0 0.000 0.000 0.000 ns.davydkovo.ne 130.173.91.58 2 u 45 64 17 23.343 -40.480 1.351 golem.canonical 192.93.2.20 2 u 45 64 17 66.089 -34.140 1.669
4. Перезапускаем систему для корректно работы ntp клиента и синхронизации времени при загрузке. В принципе, все корректно работает и после установки, но при использовании стороннего или специфического программного обеспечения, необходима перезагрузка, проще перезагрузить систему:
Sudo reboot
На данном этапе установка и настройка NTP клиента синхронизации системного времени завершена. Теперь ваше система прозрачно и незаметно корректирует системное время при помощи более точных серверов синхронизации времени по протоколу NTP.
Вот мы и решили 2 основных вопроса, связанных с точным временем на вашем сервере или десктопной системе Ubuntu, Debian:
- Первый вопрос корректировки связан со сменой часовых поясов на территории Россий, связанный с законодательством, вступившим в силу 26 октября 2014 года, и базой данных часовых поясов tzdata.
- Второй вопрос корректировки точного системного времени связан с установкой и настройкой NTP клиента и NTP синхронизацией системного времени с более точными серверами или кластерами.
По итогам прочтения статьи, у вас должно возникнуть точное понимание принципов корректировки системного времени и NTP синхронизации вашего сервера, декстопной системы Ubuntu или Debian с NTP серверами или кластерами.
Точное время на компьютере служит не только для сверки человеком даты и времени, но так же выполняет много других важных задач. Например, попробуйте перевести своё время на несколько часов назад или вернуться в прошлое указав в настройках 19хх год. Теперь зайдите с такой датой на google.com. Скорее всего вы потерпите полное фиаско.
В корпоративной среде неправильно настроенное время может вызывать массу других ошибок: от невозможности аутентификации пользователя в системе до… не будем о грустном.
Есть несколько способов настройки даты и времени. Помните, что данный процесс затрагивает системные настройки и поэтому требует привилегий root пользователя.
Способ №1
Представляет из себя самый простой способ. Наиболее предпочтителен для новичков. Настройка осуществляется через мастер в псевдографическом режиме.
Dpkg-reconfigure tzdata
Способ №2
Практически идентичен способу №1. Прост и удобен, но на сей раз только в текстовом режиме. Всё что от вас требуется следовать подсказкам мастера
Способ №3
Одна из утилит systemd
Timedatectl set-timezone <название зоны>
Просмотр доступных зон
Timedatectl list-timezones
Способ №4
С помощью утилиты ntpdate . По умолчанию данная утилита не установлена.
Apt install ntp ntpdate
Добавьте ntp-сервер в конфигурационный файл /etc/ntp.conf ищите строки начинающиеся с pool. Более подробно о синтаксисе этого файла man ntp.conf
Остановим службу сетевого времени для обновления
Service ntp stop
Получаем данные с ntp-сервера
Ntpdate -s <адрес ntp-сервера>
Запускаем службу обратно
Service ntp start
Способ №5
Ручная настройка. Пишем в файл /etc/timezone нужную временную зону, например Europe/Moscow
Echo Europe/Moscow > /etc/timezone
Перезаписываем данные о временной зоне.
Ln -sf /usr/share/zoneinfo/Europe/Moscow /etc/localtime
Получаем данные с ntp-сервера
Я использую операционную систему Debian GNU/Linux на серверах для хостинга сайтов. Когда летом 2017 года вышла версия 9 Stretch, я обрадовался тому, что для нее в репозиториях «из коробки» был доступен PHP 7. Который, как известно, работает быстрее PHP 5.
В этой статье я покажу, что и с настройкой времени на Debian 9 так же стало лучше, не нужно ничего качать и устанавливать дополнительно, в частности демон ntp или утилиту ntpdate. Все отлично настраивается и работает на стандартном наборе ПО Debian 9 благодаря обновлённой версии systemd , в котором имеется отдельная служба, отвечающая за синхронизацию времени системы по протоколу NTP .
Как настроить время Debian 9
Для начала нужно определиться со своим часовым поясом и установить его, у меня это выглядит так:
# timedatectl set-timezone Europe/Volgograd
Затем нужно отредактировать файл /etc/systemd/timesyncd.conf , указав в нем серверы для синхронизации времени, например так:
# This file is part of systemd. # # systemd is free software; you can redistribute it and/or modify it # under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation; either version 2.1 of the License, or # (at your option) any later version. # # Entries in this file show the compile time defaults. # You can change settings by editing this file. # Defaults can be restored by simply deleting this file. # # See timesyncd.conf(5) for details. NTP=ru.pool.ntp.org FallbackNTP=pool.ntp.org
Здесь в опции NTP= указываются приоритетные серверы для синхронизации времени. Если при обращении к ним произойдет сбой, то будут использоваться серверы, указанные в FallbackNTP= .
После внесения изменений в файл конфигурации нужно перезапустить сервис синхронизации времени:
# systemctl restart systemd-timesyncd
Состояние настройки времени можно проверить следующей командой:
# timedatectl status
Результат ниже говорит о том, что часы на моем сервере настроены верно и синхронизируются по протоколу NTP.
Local time: Tue 2018-12-18 16:36:33 +04 Universal time: Tue 2018-12-18 12:36:33 UTC RTC time: Tue 2018-12-18 12:36:33 Time zone: Europe/Volgograd (+04, +0400) Network time on: yes NTP synchronized: yes RTC in local TZ: no
здесь,
Local time
- это местное время;
Universal time
- время UTC (всемирное координированное время). Это отправная точка для отсчета всех часовых поясов;
RTC time
- время в аппаратных часах сервера (компьютера);
Time Zone
- ваш часовой пояс;
Network time on
- указывает, включен ли ntp-клиент, входящий в состав systemd;
NTP synchronized
- сообщает, синхронизировано ли время с ntp-сервером;
RTC in local TZ
- показывает, какое время хранится в аппаратных часах: локальное или всемирное. При этом, yes
означает локальное время, no
- всемирное;
Информация для новичков
Меня иногда спрашивают, где вводить (выполнять) приводимые мною команды?
Все приведенные в данной статье команды нужно выполнять в консоли сервера от имени привилегированного пользователя (root). Знак # (октоторп, решетка, диез, хеш) как раз говорит об этом.
В качестве консольного клиента для удаленного подключения к серверам я использую программу
Во время первоначальной установки Debian мы конфигурируем часовой пояс с помощью пакета . В дальнейшем синхронизация времени и часового пояса можно выполнить командами:
$ su $ пароль $ dpkg-reconfigure tzdata
Стрелками выбираем Европа и нажимаем Enter .
Также выбираем часовой пояс.
В результат синхронизация получаем универсальное (время по Гринвичу ) и местное время .
Конфигурационный файл хранится в /etc/timezone . Открыть файл можно с помощью команды:
$ gedit /etc/timezone
Кроме того, соответствующий файл данных находится в каталоге /usr/share/zoneinfo и копируется в /etc/localtime , этот файл содержит правила, регулирующие дату летнего или зимнего времени для стран, которые его используют.
В компьютере два источника времени: на материнской плате аппаратные часы — "CMOS " и в ядре операционной системы, контролируемые серверами времени через сеть. На практике существует проблема, так как часы CMOS является не более чем счетчиком и не содержат никакой информации о часовом поясе.
Проблема возникает когда компьютер в сети или имеет несколько систем (например, запуск других систем через виртуальную машину) тогда возникает хаос и неясно какое время является правильным.
Синхронизация времени, может показаться излишней на одиночном компьютере, но является очень важной в сети. Так как в случае нападения легче восстановить хронологию событий на различных машинах. Данные собранные на нескольких машинах не будут иметь большого смысла, если они не синхронизированы.
Поскольку компьютеры регулярно запускаются и перезагружаются (для экономии электроэнергии), машины удобно синхронизировать с помощью NTP при загрузке. Для этого просто установите ntpdate пакет он позволяет быстро синхронизировать часы компьютера с серверами точного времени, подсоединёнными ко Всемирной Паутине. Установку ntpdate из репозитория произведем с помощью менеджера пакетов Synaptic или путем выполнения команд в терминале:
$ su $ пароль $ apt-get install ntpdate
Для рабочих станций вы можете изменить сервер NTP , используемый при необходимости путем модификации /etc/default/ntpdate файла.
Для серверов так как они редко перезагружается, а есть большая необходимость поддерживать точное время, необходимо установить локальный сервер NTP .
Установка NTP
$ aptitude install ntp ntpdateВ конфигурации по умолчанию сервер будет синхронизировать с ресурсом pool.ntp.org и обеспечит время в ответ на запросы, поступающие из локальной сети. Вы можете настроить его путем редактирования/etc/ntp.conf файла.
В целях безопасности, для доступа к Вашему серверу извне, требуется добавить в файл /etc/ntp.conf следующие строки (данные строки уже могут присутствовать):
Disable monitor restrict default kod nomodify notrap nopeer noquery restrict -6 default kod nomodify notrap nopeer noquery restrict 127.0.0.1 restrict -6::1
disable monitor - отключение запросов monlist, которые возвращают список из последних 600 клиентов ntp. restrict default kod nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery - отключение запросов статуса сервера.
Так же вы можете указать свои сервера для синхронизации времени, например, адреса NTP серверов Pоссии: https://www.ntp-servers.net/servers.html и отредактируйте файл /etc/ntp.conf, выполнив команду:
$ gedit /etc/ntp.conf
Разовая синхронизация времени
В качестве примера используется сервер ntp1.stratum1.ru :
$ ntpdate ntp1.stratum1.ru
До синхронизации
После синхронизации
Для того, чтобы организовать постоянную синхронизацию времени произведем установку демона (сервера) ntp
Отредактируйте файл /etc/ntp.conf или создайте его, если такого файла нет.
$ server ntp1.stratum1.ru iburst
Запускаем ntp и добавляем его автозагрузку
$ /etc/init.d/ntp start $ update-rc.d ntp defaults