Содержание
Проверено на |
---|
Debian 3, 4, 5 |
Alt Linux 3, 4 |
Настроим один сервер (10.0.0.2) синхронизироваться с внешним миром , а остальные сервера в нашей подсети будут синхронизироваться с этим. Установим службу NTP
— Можно оставить настройки по умолчанию, но если они почему-либо не подходят, то можно прописать в /etc/ntp.conf например, такие:
— Для Debian пути будут несколько отличаться:
— Установим ntpdate для сверки времени с другими серверами. Сверяемся с сервером в Интернет
- Stratum 1 — Это сервер первого уровня (если stratum 16, значит сервер сам не синхронизирован).
- Offset — Расхождение во времени с этим сервером в секундах
- delay — задержка синхронизации в секунда
— Если расхождение во времени слишком большое, то можно временно ускорить часы
либо их замедлить
и проверять выравнивание командой сверки. Это более корректный способ выравнивания, но можно сразу синхронизировать с сервером (ntpd должен быть остановлен)
— Проверим, что сервис запущен и включен в автозапуск.
Содержание
Синхронизация времени по NTP
NTP — это протокол синхронизации времени по сети. По существу клиенты запрашивают текущее время на сервере и используют его для установки своих собственных часов.
За этим простым описанием скрывается много сложностей — существуют уровни NTP серверов, где первый уровень подключен к атомным часам, а второй и третий уровни серверов распределяют на себя нагрузку по актуальным запросам из интернета. Кроме того клиентское приложение сложнее, чем вы можете подумать — оно компенсирует задержки соединения и регулирует время таким образом, чтобы не навредить другим процессам, запущенным на сервере. Но к счастью вся эта сложность скрыта от вас!
Ubuntu использует ntpdate и ntpd.
ntpdate
Ubuntu стандартно устанавливается с ntpdate и будет запускать его при каждой загрузке один раз для установки времени по NTP серверу Ubuntu.
Сервис NTP ntpd вычисляет уход ваших системных часов и постоянно подправляет их, благодаря чему не происходит сильных изменений, что может приводить к непоследовательности в журналах. Ценой этому небольшое расходование мощности процессора и оперативной памяти, но для современного сервера это несущественно.
Установка
Для установки ntpd из терминала введите:
Настройка
Отредактируйте /etc/ntp.conf для добавления/удаления серверов. По умолчанию эти сервера такие:
После изменений конфигурационного файла вам надо перезапустить ntpd:
Просмотр статуса
Используйте ntpq для просмотра дополнительной информации:
Ссылки
Смотрите страницу энциклопедии Ubuntu Time для дополнительной информации.
Оригинал: How to Synchronize Time with NTP in Linux
Автор: Matei Cezar
Дата публикации: 20 апреля 2018 года
Перевод: А. Кривошей
Дата перевода: декабрь 2018 г.
Network Time Protocol (NTP) — это протокол, используемый для автоматической синхронизации системных часов компьютера по сети. Машина может выставлять системные часы по Coordinated Universal Time (UTC), а не по местному времени.
Наиболее распространенный метод синхронизации системного времени по сети на десктопах или серверах Linux — выполнение команды ntpdate, которая может установить системное время с сервера времени NTP. В этом случае на компьютере, на котором введена команда ntpdate, должен быть остановлен демон ntpd.
В большинстве систем Linux команда ntpdate не устанавливается по умолчанию. Чтобы установить ее, выполните приведенную ниже команду.
Пример команды ntpdate:
Чтобы просто запросить время сервера и не устанавливать часы, используя непривилегированный порт для отправки пакетов, чтобы обойти брандмауэры, выполните команду ntpdate со следующими флагами:
Всегда старайтесь запрашивать и синхронизировать время с ближайшими NTP-серверами, доступными для вашей зоны. Список пулов серверов NTP можно найти по следующему адресу:
В новых дистрибутивах Linux, которые используют Systemd, вы также можете синхронизировать время через файл timesyncd.conf. Просто откройте файл для редактирования.
И добавьте или раскомментируйте следующие строки после оператора [Time], как показано ниже:
После редактирования файла введите команду timedatectl, чтобы активировать сборку клиента NTP в systemd.
После этого введите команду date для отображения системных часов.