Сверим часы
«Точность – вежливость королей» Людовик XVIII
NTP
NTP — стандартный способ синхронизировать время. И если админ знаком с ним, то всё уже работает :) Но если вдруг админ не в курсе, а синхронизация времени нужна, кое-что можно проверить самостоятельно, для того, чтоб дальнейший диалог с ним был конструктивным.
Для проверки доступности сервера точного времени старый-добрый telnet не подходит — NTP работает по UDP, на что telnet не способен. Но нам на помощь приходит netcat — сетевой швейцарский нож.
$ nc -v -z -w 3 -u <ntp-server> 123
Если провайдер не предоставляет свой сервер точного времени, или вы его просто не знаете, можно воспользоваться сервером из публичного пула серверов. Например, ua.pool.ntp.org1
Если порт открыт, но синхронизация не работает — скорей всего криво настроен NAT. Проверить это можно следующим образом:
$ ntpdate -dv <ntp-server>
Должны выводиться сообщения об отправки (transmit) и получении (receive) пакетов.
HTP
Но что же делать в клинических случаях? Например, вы сидите за NATом, который по какми-то неизвестным причинам принципиально не хочет сотрудничать с NTP (скажем, Kerio Winroute Firewall 6.04).
В таком случае можно воспользоваться htpdate — утилитой, реализующей HTTP Time Protocol.
На самом деле, HTP — не совсем протокол. Скорее, это остроумное использование одной особенности HTTP. В соответствии с RFC 2616 — спецификацией HTTP, в заголовках ответа сервер должен указывать дату. С большой долей вероятности, на крупных веб-серверах время настроено точно, и на него можно полагаться. Но для защиты от казусов, можно воспользоваться несколькими серверами. Автор заявляет, что используя этот метод можно получить точность ±0.5 с. С 0.01 мс NTP не сравнится, но тем не менее, довольно хороший показатель.
В целом работает аналогично ntp: есть htpdate для ручной синхронизации, и есть htpd — демон, который будет периодически синхронизировать время.
-
На самом деле, это не сервер, а “линк” на все украинские серверы точного времени, которые добавились в пул. ↩
Идея организации окон 


