данной команды надо заменить --localtime
на --utc.
Временные серверы для Linux
Сервер NTP для работы в Linux реализуется с помощью программы ntp
или ее разновидностей: xntp
, xntp3
и xntpd
. Символ x в начале имени означает 'экспериментальный' (experimental), что не совсем верно, так как эти программы успешно используются в течение нескольких лет. В именах программ, содержащихся в пакете NTP 4, символ x отсутствует. В составе большинства версий Linux поставляется версия 4 пакета NTP, но нередко встречается также версия 3.
Большинство пакетов NTP содержат сервер NTP и несколько вспомогательных программ. Компоненты пакета описаны ниже.
• ntpd
. Основная программа, реализующая сервер NTP. (В некоторых поставках она называется xntpd
.) Как было сказано ранее, несмотря на то, что эта программа считается сервером, она объединяет в себе функции клиента и сервера. Для вышестоящих серверов она является клиентом, а для нижележащих программ — сервером. (Вышестоящим считается сервер с меньшим значением уровня.)
• ntpdate
. Данная программа намного проще, чем программа ntpd
; она реализует лишь функции клиента. Если поддержка точного времени на компьютере не слишком важна, вы можете установить вместо сервера программу ntpdate
и обеспечить ее периодические вызовы. Работа ntpdate
будет рассмотрена далее в этой главе.
• ntptrace
. В некоторых случаях возникает необходимость проследить источник данных о времени. Данная программа отслеживает путь от локального компьютера к серверу NTP, используемому для синхронизации, и далее вверх по дереву NTP. Такая информация может быть полезной для диагностики системы.
• ntpq
. Данная программа осуществляет NTP-мониторинг. Она будет рассмотрена далее в этой главе.
• xntpdc
. Эта программа также предназначена для мониторинга и управления системой NTP. Она позволяет выполнять более сложные операции, чем ntpq
.
Помимо NTP, в Linux для согласования времени могут быть использованы и другие программы. Одной из таких программ является rdate
, которая по своим возможностям напоминает ntpdate
; она используется для однократной установки системных часов. Программа rdate
входит в состав некоторых дистрибутивных пакетов, но в ряде пакетов она отсутствует. Эта программа уступает по точности ntpdate
. Если ntpdate
может обеспечивать точность порядка нескольких миллисекунд, то rdate
имеет точность около секунды.
Структура конфигурационного файла ntp.conf
Для настройки средств NTP используется файл ntp.conf
, который обычно размещается в каталоге /etc
. Как и во многих других конфигурационных файлах, строки, содержащие комментарии, начинаются с символа #
, а в остальных строках задаются различные опции NTP. Наиболее важными из этих опций являются следующие.
• server
. Данная опция задает имя сервера, который используется для синхронизации показаний времени с помощью протокола NTP. В качестве адреса может быть задан IP- адрес или имя узла. При необходимости в файл ntp.conf
можно включить несколько опций server
, в результате ваш сервер NTP установит соединение с каждым из указанных серверов и выберет для синхронизации наилучший из них. В составе данной опции может задаваться дополнительная информация. Значение, следующее после key
, определяет ключ аутентификации, оно указывается, если доступ к серверу ограничен. Номер версии сообщает о том, какая версия протокола должна быть использована при взаимодействии. Ключевое слово prefer
указывает, что данный сервер предпочтительнее других.
• fudge
. Данная опция в основном используется для того, чтобы указать, что сервер 127.127.1.0 (локальные системные часы) должен интерпретироваться как сервер уровня 7 — сервер NTP с самым низким приоритетом. Это позволяет серверу продолжать работу даже в том случае, если другие серверы недоступны.
• driftfile
. Указанный в качестве значения данной опции файл включает информацию, которая используется при возобновлении работы после длительного отключения компьютера. Содержимое данного файла позволяет серверу NTP компенсировать погрешность внутреннего таймера и увеличить точность при работе в автономном режиме.
• broadcast
. Если вы укажете данную опцию, сервер будет периодически передавать в широковещательном режиме данные о текущем времени. Информация будет передаваться по сети, адрес которой является значением данной опции (это может быть также адрес группового вещания 224.0.1.1). Использование широковещательного адреса позволяет уменьшить трафик в больших сетях, в которых многие серверы NTP работают в качестве клиентов.
• broadcastclient [yes|no]
. Данная опция указывает серверу NTP на то, что он должен принимать широковещательные сообщения от других локальных серверов NTP.
В файле ntp.conf
могут быть указаны и другие опции, с помощью которых задаются специальные функции. Информацию о них можно получить в документации, представленной в формате HTML, которая поставляется в составе пакета и обычно находится в каталоге /usr/share/doc/xntp-
.
Файл ntp.conf
, поставляемый в составе дистрибутивного пакета, практически обеспечивает работу сервера. Вам надо лишь добавить одну или несколько опций server, указывающих на серверы NTP. К выбору сервера надо подходить очень внимательно. Если сервер, используемый для синхронизации, расположен далеко или работает ненадежно или синхронизирован с помощью некорректного источника, показания системных часов на компьютеров вашей сети будут неточными. Как было сказано ранее, для небольшой сети в качестве источника синхронизирующих данных целесообразно выбирать сервер уровня 2. Этот вопрос интенсивно обсуждается в сети; материалы дискуссий вы можете найти по адресу http://www.eecis.udel.edu/~mills/ntp/servers.htm
. В конце этого документа даны ссылки на Web-страницы, содержащие списки временных серверов уровней 1 и 2. Постарайтесь использовать для синхронизации сервер, расположенный ближе других. Заметьте, что топология сетей отличается от географического размещения компьютеров. Так, например, компьютер, расположенный на другом континенте, может быть 'ближе' к локальной машине, чем компьютер, находящийся в часе езды от нее.
Для того чтобы сравнить время передачи данных при обмене с различными серверами NTP, можно воспользоваться утилитой ping
. Для синхронизации желательно использовать тот сервер, от которого ответы на ping-пакеты приходят быстрее.
Если в списке указано, что, прежде чем использовать некоторый сервер, надо оповестить об этом оператора, не забудьте послать соответствующее сообщение. Возможно, вам имеет смысл рассмотреть в