start ntp update что это
Как установить и настроить NTP на сервере
Работа многих служб ОС зависит от того, насколько точны системные часы. Для чего нужна эта точность? Затем, что неточное время на сервере повлечет за собой много неприятностей.
В качестве примера приведем следующий: если в локальной сети часы машин, которые совместно используют файлы, не будут синхронизированы, то нельзя будет установить время изменения файлов. Из-за этого возникнет конфликт версий или перезаписи данных. Без установки точного времени на сервере появятся и сложности с задачами Cron – непонятно, когда они запустятся. Невозможно будет проанализировать журналы системных событий, чтобы понять причины неисправностей и сбоев.
Для того чтобы эти неприятности не возникли, нужно наладить синхронизацию системных часов. Для этого используется протокол NTP (Network Time Protocol).
Как устроен протокол NTP
Протокол NTP основан на иерархической структуре сервера точного времени, где выделены разные уровни. К нулевому уровню, на котором NTP-серверы не работают, относятся так называемые эталонные часы.
С ними синхронизируются NTP серверы уровня 1, являющиеся источниками для серверов уровня 2. Серверы второго уровня синхронизируются с серверами первого уровня, но еще могут синхронизироваться между собой. Точно так же функционируют серверы третьего уровня и ниже. В целом, поддерживается порядка 256 уровней.
Иерархическая структура NTP является отказоустойчивой и избыточной. Так, резервные серверы берут синхронизацию на себя, когда речь идет об отказах соединения с вышестоящими серверами. Для расчета точного времени NTP берет данные ото всех источников, синхронизируясь с несколькими серверами.
Как установить и настроить NTP-сервер
Чтобы синхронизировать время, используют демон ntpd, который может быть как сервером, принимающим время из удаленных хостов, так и клиентом, раздающим время сторонним хостам. Демон ntpd зависит от указанных в файле конфигурации настроек.
Для установки сервера NTP используется стандартный менеджер пакетов $ sudo apt-get install ntp.
После установки все необходимые настройки NTP будут находиться в файле /etc/ntp.conf.
Первая строчка файла конфигурации – driftfile /var/lib/ntp/ntp.drift. В ней указан файл, в котором хранится информация о том, как часто смещается время. В этом же файле содержится и значение, которое было получено из предыдущих изменений времени. Если по каким-то причинам внешние NTP-серверы недоступны, знание берут из этого файла.
После этого нужно указать файл, сохраняющий логи синхронизации – logfile /var/log/ntp.log.
В файле конфигурации нужно указать перечень серверов NTP, с которыми нужно синхронизироваться. По умолчанию этот перечень выглядит вот так:
Эти строки означают группу серверов, которые сообщают серверу верное время. Через опцию iburst можно увеличить точность синхронизации, то есть указать то, что на сервер необходимо отправлять несколько пакетов вместо одного:
Еще можно донести информацию о нужном сервере через опцию prefer:
Ареал использования серверов NTP
Такие серверы есть во всем мире, но обычно синхронизация происходит с NTP-серверами именно того ареала, где физически находится ваш сервер. Таким образом, в файле конфигурации /etc/ntp.conf указывается поддомен ареала (региона) для pool.ntp.org:
Резервный сервер точного времени
NTP-сервер, по какой-либо причине отключенный от интернета, может передавать для синхронизации данные своих системных часов. Для этого в конфигурационный файл нужно добавить следующую строку:
Особые случаи использования NTP
Например, NTP могут использовать, чтобы усилить трафик в DDoS-атаках. А чтобы избежать столкновения с различными злоупотреблениями, следует ограничить доступ для внешних клиентов. Говоря об ограничениях, то по умолчанию в /etc/ntp.conf файле выставлены такие:
Такие опции, как nomodify, notrap, nopeer и noquery, не позволяют внешним клиентам менять конфигурации на сервере. Параметр kod (расшифровывается как kiss of death, «смертельный поцелуй») дает дополнительный уровень защиты: клиент, который часто отправляет запросы, получает сперва kod-пакет, являющийся предупреждением о том, что в обслуживании отказано, а потом отключается от сервера.
Для синхронизации машин из локальной сети с сервером NTP в файл конфигурации добавляется такая строчка:
А для локального хоста устанавливается неограниченный доступ к серверу NTP:
Как проверить синхронизацию
После сохранения всех изменений в файле конфигурации NTP-сервер нужно перезагрузить:
А затем выполнить команду:
На выходе получится таблица, в которой указаны следующие параметры:
Слева от адреса сервера могут быть указаны еще и такие символы:
Как установить локальные дату и время
Чтобы установить локальные дату и время на сервере, нужно использовать команду ntpdate, при этом отправив необходимый запрос к серверу NTP:
Статус ntpd проверяется при помощи команды:
NTP сервер на Linux Ubuntu
Следить за актуальностью времени на всех узлах локальной сети удобнее с помощью сервера синхронизации времени NTP. В инструкции рассказано об установке и настройке такого сервера на Linux Ubuntu Server 16.04. Данное руководство можно использовать для настройки ntpd на любом другом Linux (например, Debian или CentOS).
Установка сервера
Устанавливаем ntp сервер следующей командой:
apt-get install ntp
Разрешаем автозапуск и стартуем сервис:
systemctl enable ntp || update-rc.d ntp defaults
systemctl start ntp || service ntp start
Настройка NTP
Открываем файл с настройками:
Настраиваем серверы, с которых наш NTP будет брать эталонное время. Например:
pool ru.pool.ntp.org iburst
server ntp2.vniiftri.ru iburst prefer
pool 0.ubuntu.pool.ntp.org iburst
pool 1.ubuntu.pool.ntp.org iburst
server 127.127.1.0
* iburst — отправлять несколько пакетов (повышает точность); ru.pool.ntp.org / 0.ubuntu.pool.ntp.org / 1.ubuntu.pool.ntp.org — адреса серверов, с которыми наш сервер будет сверять время; server — указывает на выполнение синхронизации с сервером, а не пулом серверов; prefer — указывает на предпочитаемый сервер. server 127.127.1.0 — позволит в случае отказа сети Интернет брать время из своих системных часов.
restrict default kod notrap nomodify nopeer noquery
restrict 192.168.0.0 mask 255.255.255.0 nomodify notrap
restrict 127.0.0.1
restrict ::1
Настройки по умолчанию могут быть разные для IPv4 и IPv6:
systemctl restart ntp || service restart ntp
Если используется брандмауэр, добавляем правило:
ufw allow in on enp2s0 to any port 123 proto udp
* где enp2s0 — сетевой интерфейс, на котором слушает наш сервер.
Дополнительные настройки
Настройка файла хранения логов:
Тестирование
Проверить состояние получения эталонного времени можно командой:
Мы должны увидеть, примерно, следующее:
Проверить отдачу времени сервером можно введя команду на другом Linux:
Правильный ответ имеет следующий вид:
ntpdate[3576]: adjust time server 192.168.0.15 offset 0.017657 sec
* время было рассинхронизировано на 0.017657 секунд.
Отобразить текущее время можно командой:
Если после синхронизации время некорректно, настраиваем правильный часовой пояс:
cp /usr/share/zoneinfo/Europe/Moscow /etc/localtime
* московское время (GMT+3).
Настройка клиента Linux
Для клиентов можно выбрать 2 стратегии настройки — с помощью ntp или утилиты ntpdate.
apt-get install ntp
В настройка /etc/ntp.conf в качестве сервера оставляем только наш локальный сервер, например:
Остальные pool и server удаляем или комментируем.
systemctl restart ntp || service restart ntp
ntpdate
Утилита командной строки выполняет разовую синхронизацию. Чтобы автоматизировать процесс, добавляем задание в cron:
0 0 * * * /usr/sbin/ntpdate 192.168.0.15
* в данном примере задание будет выполняться раз в день в 00:00. /usr/sbin/ntpdate — полный путь расположения утилиты, в разных системах может быть разным — проверить стоит командой which ntpdate.
Настройка клиента Windows
В командной строке выполняем:
w32tm /config /manualpeerlist:»192.168.0.15,0×8″ /syncfromflags:manual /update
Некоторые ошибки
1. the NTP socket is in use, exiting
Как правило, данная ошибка возникает при попытке синхронизировать время с помощью ntpdate, когда в системе работает демон ntp.
Причина: NTP сокет в системе уже занят, как правило, ntpd.
Решение: либо не использовать ntpdate, так как ntp умеет сверять время, либо отключить сервис ntpd командой service ntp stop.
2. Connection refused
Причина: нет разрешения на обращение к серверу.
3. no server suitable for synchronization found
Ошибка появляется при попытке синхронизировать время с другим сервером синхронизации.
Причина: сервер синхронизации не доступен по одной из причин: 1) не работает или выключен, 2) установлен restrict, 3) на сервере не запущен ntpd, 4) нет сетевой доступности из-за проблем на сети или брандмауэра.