NTP-сервер: что это и как настроить синхронизацию времени
- Зачем синхронизировать время: что ломается, когда часы разъезжаются
- Как работает NTP: stratum, порт и точность
- Уровни stratum
- Какая точность реально достижима
- Какой публичный NTP-сервер выбрать в России
- MSK-IX - публичная служба точного времени
- Пул pool.ntp.org
- Сколько источников указывать
- Свой NTP-сервер: когда нужен и на чём поднять
- Настройка и проверка: Windows и Linux
- Windows
- Linux
- Что проверить после настройки
- Частые ошибки
- Время в виртуальных машинах: отдельная история
- SNTP и NTS: чем отличаются от обычного NTP
- Когда одного NTP мало
- Короткие ответы
- Коротко о главном
NTP-сервер - это источник точного времени в сети: он отдаёт эталонное время, а остальные устройства по нему подводят свои часы. Пишут его и как «НТП сервер», и как «сервер времени» - речь об одном и том же.
Протокол называется Network Time Protocol, работает поверх UDP на порту 123. Задача у него одна: держать часы всех машин в сети согласованными - серверов, рабочих станций, коммутаторов, камер, контроллеров.
Ниже - зачем это нужно на практике, какой публичный сервер брать в России, когда пора поднимать свой и как всё это проверить парой команд.
Зачем синхронизировать время: что ломается, когда часы разъезжаются
Кварцевые часы в компьютере врут. Немного - секунды в сутки, - но накопительно. За месяц без синхронизации машина может уехать на минуту-другую, а виртуалка после миграции или паузы - сразу на много больше.
Что от этого перестаёт работать:
Вход в домен. Kerberos, на котором держится аутентификация в Active Directory, по умолчанию терпит расхождение часов не больше 5 минут. Разъехались сильнее - пользователь просто не может войти, и сообщение об ошибке обычно ни на что не намекает. Это самая частая практическая причина, по которой админ вообще узнаёт про NTP.
Проверка сертификатов. У TLS-сертификата есть срок действия. Если часы на клиенте ушли вперёд или назад на месяцы, браузер и почтовый клиент начнут ругаться на «просроченный» или «ещё не действующий» сертификат, хотя с ним всё в порядке.
Расследование инцидентов. Когда время на разных машинах разное, события в журналах не выстраиваются в цепочку. Разбирать сбой, где сервер приложений отчитался о запросе «раньше», чем балансировщик его принял, - удовольствие сомнительное.
Учётные системы. Документы, проводки, кассовые операции - везде важен порядок событий и корректная отметка времени. Расхождение часов между сервером 1С и клиентскими машинами даёт странности в датах документов.
Расписания и бэкапы. Задания по расписанию разъезжаются, окна резервного копирования наползают друг на друга, а ротация журналов начинает удалять не то, что нужно.
Как работает NTP: stratum, порт и точность
Клиент спрашивает у сервера время, замеряя, сколько запрос шёл туда и обратно. Зная задержку, он вычисляет поправку и подводит свои часы. Опрос повторяется регулярно, и система постепенно учится компенсировать собственный уход.
Важная деталь, которая многих удивляет: NTP обычно не переводит часы скачком. При небольшом расхождении он слегка меняет скорость их хода, пока время не сойдётся. Резкий перевод делается только при большом расхождении, потому что прыжок назад ломает всё, что опирается на монотонность времени, - от баз данных до логики приложений.
Уровни stratum
Иерархия источников времени описывается уровнями (stratum):
| Уровень | Что это |
|---|---|
| Stratum 0 | эталон: атомные часы, приёмник ГЛОНАСС или GPS. Сам по сети время не отдаёт |
| Stratum 1 | сервер, подключённый к эталону напрямую. Высшая доступная в сети точность |
| Stratum 2 | синхронизируется от stratum 1 |
| Stratum 3 и дальше | каждый следующий берёт время у предыдущего, до 15 |
| Stratum 16 | означает, что источник не синхронизирован и доверять ему нельзя |
Гнаться за stratum 1 без причины не нужно: разница между вторым и третьим уровнем для офисной сети лежит далеко за пределами того, что вам важно.
Какая точность реально достижима
В интернете расхождение обычно измеряется единицами и десятками миллисекунд - канал и его загрузка влияют сильнее, чем сам протокол. Внутри локальной сети выходит на порядок точнее, доли миллисекунды.
Для домена, журналов, 1С и расписаний этого хватает с большим запасом. Если вам нужны микросекунды - это уже другая задача и другой протокол (PTP), а не NTP.
Какой публичный NTP-сервер выбрать в России
Самый частый вопрос по теме, и ответ на него короткий.
MSK-IX - публичная служба точного времени
MSK-IX держит бесплатный публичный сервер времени, доступный всем пользователям интернета. Никакой покупки или договора для обычного использования не нужно.
| Параметр | Значение |
|---|---|
| Адрес | ntp.msk-ix.ru |
| IPv4 | 194.190.168.1 |
| IPv6 | 2001:6d0:ffd4::1 |
| Уровень | Stratum 1 |
| Источник эталона | сигнал ГЛОНАСС |
| Где стоят серверы | Москва, Санкт-Петербург, Екатеринбург, Новосибирск |
| Технология | anycast - вы попадаете на ближайший узел автоматически |
Anycast здесь важнее, чем кажется: один и тот же адрес ведёт на разные физические серверы в зависимости от того, откуда вы обращаетесь. Клиент из Новосибирска не будет ходить за временем в Москву.
Серверы MSK-IX входят и в международный пул pool.ntp.org, который многие операционные системы используют по умолчанию. Обратите внимание, что у службы есть и адрес IPv6 - если в сети поднят второй протокол, синхронизацию стоит настроить по обоим (о том, чем IPv4 отличается от IPv6, у нас есть отдельный разбор).
Пул pool.ntp.org
Второй разумный вариант - российская часть международного пула: ru.pool.ntp.org. За одним именем скрывается набор серверов от разных владельцев, и клиент при каждом обращении может попадать на разные.
Плюс - отказоустойчивость без усилий. Минус - вы не знаете, чей конкретно сервер вам ответил и насколько аккуратно он настроен.
Сколько источников указывать
Один источник указывать не стоит. Если он соврёт или пропадёт, узнать об этом клиенту неоткуда.
Практика такая: два источника немногим лучше одного - при расхождении непонятно, кто из них прав, и клиент может вообще отказаться синхронизироваться. С тремя алгоритм уже отбрасывает выбивающийся. Четыре и больше - рабочий вариант для сервера, с которого потом синхронизируется вся сеть.
Разумная конфигурация для российской компании: MSK-IX плюс пара адресов из ru.pool.ntp.org.
Свой NTP-сервер: когда нужен и на чём поднять
Гнать весь парк машин в интернет за временем - плохая идея: это лишний исходящий трафик, лишние дырки в межсетевом экране и полная зависимость от внешнего канала.
Нормальная схема: один-два узла внутри сети синхронизируются с внешними источниками, а все остальные машины берут время у них.
Свой сервер времени становится обязательным, когда:
- сеть изолирована от интернета - тогда внешних источников просто нет, и время раздаёт внутренний сервер;
- есть домен Windows - там роль источника традиционно берёт на себя контроллер домена с ролью эмулятора PDC, а остальные машины подводят часы по нему;
- узлов много - сотни клиентов, стучащихся в публичный сервер, это и невежливо по отношению к нему, и неуправляемо;
- нужен контроль и журналирование - когда надо доказуемо знать, откуда бралось время.
Отдельного «железа для времени» для этого не нужно. NTP-сервер поднимается на обычном сервере - это служба, которая почти не потребляет ресурсов. Подойдёт любая машина, которая и так работает круглосуточно: контроллер домена, гипервизор, узел мониторинга.
Настраивают чаще всего chrony (в большинстве дистрибутивов Linux он идёт по умолчанию) или классический ntpd. На Windows Server ту же роль выполняет встроенная служба времени.
Важное требование к такому узлу - не мощность, а бесперебойность. Сервер времени, который перезагружается вместе со светом, бесполезен: после старта он какое-то время сам не синхронизирован и отдаёт stratum 16. Поэтому машину под эту роль ставят за источник бесперебойного питания и не совмещают с тем, что регулярно уходит в перезагрузку.
Настройка и проверка: Windows и Linux
Windows
Посмотреть текущее состояние службы времени:
w32tm /query /status
В выводе смотрите на источник (Source), уровень (Stratum) и последнюю успешную синхронизацию. Задать источники и принудительно синхронизироваться:
w32tm /config /manualpeerlist:"ntp.msk-ix.ru ru.pool.ntp.org" /syncfromflags:manual /update
w32tm /resync
В домене эти команды выполняют только на контроллере с ролью эмулятора PDC. Все остальные машины домена должны брать время из иерархии домена, а не из интернета напрямую - иначе получите ровно тот разнобой, от которого уходили.
Linux
Проверить общее состояние:
timedatectl status
Строка System clock synchronized: yes означает, что часы подведены. Если в системе chrony, полезны две команды:
chronyc sources -v
chronyc tracking
Первая показывает список источников и какой из них выбран основным (он помечен звёздочкой), вторая - текущую поправку и то, насколько система доверяет времени. Источники прописываются в конфигурации chrony (/etc/chrony/chrony.conf или /etc/chrony.conf, зависит от дистрибутива) строками вида server ntp.msk-ix.ru iburst.
Что проверить после настройки
Три вещи, и все быстро: узел показывает stratum меньше 16, выбран конкретный источник, а расхождение измеряется миллисекундами. Если stratum равен 16 - синхронизации нет, сколько бы адресов вы ни прописали. Обычная причина - закрытый на межсетевом экране порт 123/UDP: что такое порт и как он работает, разобрано в отдельном материале про порты в сети, а логика самих правил - в статье про межсетевой экран.
Частые ошибки
| Ошибка | Чем оборачивается |
|---|---|
| Все машины домена ходят за временем в интернет напрямую | часы разъезжаются между собой, домен ловит ошибки Kerberos. Источник должен быть один, внутренний |
| Указан ровно один внешний источник | если он соврёт, проверить это некому, а если пропадёт - синхронизация встанет |
| Порт 123/UDP закрыт «на всякий случай» | stratum остаётся 16, в журналах тишина. Самая частая причина «настроил, а не работает» |
| Сервер времени совмещён с машиной, которую регулярно перезагружают | после каждого старта узел какое-то время сам не синхронизирован и раздаёт негодное время |
| Часы в BIOS выставлены в местное время, а система ждёт UTC | расхождение ровно на величину часового пояса, которое возвращается после каждой перезагрузки |
| В виртуалке работают и NTP, и синхронизация от гипервизора | два механизма тянут часы каждый в свою сторону, время дёргается |
Время в виртуальных машинах: отдельная история
Виртуальные машины уходят по времени охотнее физических: часы гостя зависят от того, как гипервизор выделяет процессорное время, а после паузы, снимка состояния или живой миграции гость может обнаружить, что «проспал» заметный интервал.
Отсюда главное правило: выберите один механизм синхронизации и отключите второй. Обычно доступны два - гостевые дополнения гипервизора (VMware Tools, Hyper-V Integration Services, qemu-guest-agent) и обычный NTP внутри гостя. Если работают оба, они начинают спорить: один плавно подводит часы, другой периодически ставит своё значение, и время дёргается.
Как выбирать:
- Контроллер домена в виртуалке - синхронизацию от гипервизора отключают. Он должен получать время по иерархии домена и от внешних источников, иначе получится замкнутый круг, где хост и домен указывают друг на друга.
- Обычные серверы Linux - чаще оставляют chrony внутри гостя, а гостевую синхронизацию времени выключают. Chrony умеет корректно догонять время после паузы виртуалки.
- Рабочие станции и некритичные машины - проще довериться гипервизору, если сам хост синхронизирован правильно.
И отдельно про снимки состояния: после отката виртуальной машины к снимку часы почти всегда уезжают, иногда на месяцы назад. Первое, что стоит проверить у машины, которая после отката «странно себя ведёт», - это её время. Другие подводные камни снимков разобраны в материале про снимки виртуальных машин.
SNTP и NTS: чем отличаются от обычного NTP
Вокруг NTP есть два родственника, которые часто путают.
SNTP (Simple NTP) - упрощённый вариант того же протокола. Формат пакетов тот же, и с точки зрения сервера клиент SNTP неотличим от клиента NTP. Разница в клиентской части: SNTP просто берёт время у одного источника и ставит его, без сложных алгоритмов сравнения нескольких серверов, отсева выбросов и плавной подстройки хода.
Где встречается: во встроенных устройствах, где ресурсов мало, - камерах, роутерах, контроллерах. Для них этого достаточно. Для сервера, от которого зависит домен, лучше полноценный NTP.
NTS (Network Time Security) - расширение безопасности, описанное в RFC 8915 (2020). Классический NTP ходит без всякой защиты, и его ответ в принципе можно подделать по дороге - а подделанное время это уже подступ к сертификатам и аутентификации. NTS закрывает эту дыру, используя TLS и аутентифицированное шифрование.
Внедрение пока неравномерное: NTS поддерживают не все публичные серверы и не все клиенты. Если у вас в требованиях есть защита канала синхронизации - проверяйте поддержку и на стороне сервера, и на стороне клиента отдельно.
Когда одного NTP мало
Есть задачи, где публичного сервера в интернете недостаточно.
Собственный эталон. Если сеть изолирована или требуется независимость от внешних каналов, ставят аппаратный источник - приёмник ГЛОНАСС или GPS с антенной, который выдаёт stratum 1 прямо у вас. Это отдельный класс оборудования со своей спецификой монтажа: антенну нужно вывести туда, где видно небо, и это часто оказывается главной сложностью проекта.
Резервирование. Один сервер времени - одна точка отказа. Там, где время критично, ставят несколько узлов, синхронизированных от разных источников, и клиентам прописывают их все. Тогда выход одного из строя ничего не ломает: клиент сам исключит недоступный источник.
Микросекундная точность. Финансовые площадки, телеком, промышленная автоматика - там, где счёт идёт на микросекунды, NTP уже не подходит по своей природе. Для таких задач применяют PTP (Precision Time Protocol), и ему нужна поддержка на уровне самого сетевого оборудования: одних серверов тут мало.
Для абсолютного большинства офисных и корпоративных сетей ничего из этого не нужно: связки «пара внутренних серверов плюс MSK-IX снаружи» хватает с запасом.
Короткие ответы
Что такое NTP-сервер простыми словами?
Источник точного времени в сети. Он отдаёт эталонное время по протоколу NTP, а компьютеры, серверы и сетевые устройства по нему подводят свои часы.
Какой порт использует NTP?
123/UDP. Если синхронизация не работает, проверьте сначала, открыт ли он на межсетевом экране.
Какой публичный NTP-сервер использовать в России?
ntp.msk-ix.ru от MSK-IX - бесплатный, уровень stratum 1, эталон по ГЛОНАСС, серверы в четырёх городах с автоматическим выбором ближайшего. Как дополнение - ru.pool.ntp.org.
MSK-IX NTP платный?
Нет. Это публичная служба, доступная всем пользователям интернета, и для обычного использования никаких договоров не требуется.
Чем SNTP отличается от NTP?
Это упрощённый клиентский вариант того же протокола: берёт время у одного источника без сравнения нескольких серверов и плавной подстройки. Хватает встроенным устройствам, но не серверу, от которого зависит домен.
Что такое stratum 16?
Признак того, что устройство не синхронизировано. Если ваш сервер показывает stratum 16, времени с него брать нельзя - сначала разбирайтесь, почему он сам не подключился к источнику.
Нужен ли отдельный сервер под NTP?
Отдельная машина - нет, служба потребляет мизер ресурсов и живёт на любом сервере, который и так работает круглосуточно. Отдельное аппаратное устройство с приёмником ГЛОНАСС нужно только при изоляции сети от интернета или особых требованиях к точности.
Коротко о главном
Синхронизация времени - из тех вещей, которые не замечают, пока они работают. Замечают, когда пользователи не могут войти в домен, а в журналах события идут в неправильном порядке.
Рабочая схема для компании простая: пара внутренних узлов берёт время у нескольких внешних источников, вся остальная сеть - у них. Из публичных серверов для России логичен ntp.msk-ix.ru, из внутренних - контроллер домена или любая машина, которая круглосуточно включена и стоит за источником бесперебойного питания.
Подбираете сервер, который будет работать круглосуточно?
Служба точного времени, контроллер домена, мониторинг - всё это живёт на обычных серверах, и требование к ним одно: не выключаться. Инженеры ITTELO подберут конфигурацию под вашу нагрузку, соберут и протестируют сервер перед отгрузкой. Всё с гарантией и поддержкой после продажи. На рынке серверов и IT-оборудования мы 11+ лет.
сервер для работы в офисе · +7 (800) 551-80-12 · info@ittelo.ru


