Для того, чтобы настроить
службу времени "
ntpd" в
ОС FreeBSD,
проделайте следующие шаги:
1. Для автоматического запуска сервиса
NTP при загрузке
ОС добавьте строку
ntpd_enable="YES" в файл "
/etc/rc.conf". Если к этому ещё добавить
ntpd_sync_on_start="YES", то при старте
ОС будет дополнительно происходить грубая синхронизация с источником времени.
2. Отредактируйте файл "
/etc/ntp.conf".
Найдите следующие строки:
server 0.freebsd.pool.ntp.org iburst
server 1.freebsd.pool.ntp.org iburst
server 2.freebsd.pool.ntp.org iburst
Измените их, указав вместо
DNS-имён источников по умолчанию свои сервера. Лишние можно удалить или закомментировать.
3.
Далее найдите строки:
restrict 127.0.0.1
restrict -6 ::1
restrict 127.127.1.0
Они говорят о том, что наш сервис
NTP будет предоставлять точное время только для самого себя("
localhost"). Если же вам необходимо, чтобы
ОС FreeBSD являлась
NTP-сервером для других хостов в сети, пропишите соответствующее разрешения (например, для сети
192.168.0.0/24 - "
restrict 192.168.0.0 mask 255.255.255.0 nomodify notrap").
4. По желанию можно добавить логирование работы службы. Для этого вставьте следующую строку: "
logfile /var/log/ntp.log". Чтобы организовать ротацию лога, добавьте в файл "
/etc/newsyslog.conf" строку "
/var/log/ntp.log 644 3 100 * J" (архивировать с помощью
bzip2 лог при достижении размера в
100 Кбайт, хранить максимум
3 архива).
5. Выполните до запуска сервиса
NTP команду "
ntpdate -b your_ntp_source_dns_name" для того, чтобы синхронизировать часы с источником (просто запросить информацию об источнике без синхронизации времени можно командой "
ntpdate -q your_ntp_source_dns_name"). Далее стартуем демон: "
service ntpd start".
На этом настройку сервиса
NTP можно считать законченной.
Чтобы проверить корректность работы, воспользуйтесь командой: "
ntpq -p".
Строки полученной в результате выполнения команды таблицы соответствует публичным источникам, которые определены в файле "
/etc/ntp.conf", столбцы содержат следующие значения:
Маркер:
'
*' - сервер, с которым в настоящий момент выполняется синхронизация,
'
#' - сервер отобран для синхронизации, но дистанция до него превышает максимально возможную,
'
ο' - сервер отобран для синхронизации и использует сигнал
pulse-per-second,
'
+' - сервер добавлен в список серверов, отобранных для синхронизации,
'
x' - сервер использует некорректный алгоритм,
'
.' - сервер выбран из конца списка серверов, отобранных для синхронизации,
'
-' - сервер отвергнут группирующим алгоритмом,
пробел - сервер имеет слишком высокий
stratum и/или не может быть проверен;
remote -
FQDN или
IP-адрес сервера;
refid -
IP-адрес сервера, с которым в настоящий момент выполняется синхронизация сервера из столбца
remote;
st -
stratum сервера;
t - режим работы сервера: '
u' -
unicast, '
m' -
multicast, '
b' -
broadcast, '
-' -
manycast;
when - время, прошедшее с момента последнего ответа сервера в секундах или '
-', если сервер еще ни разу не ответил;
poll - интервал опроса сервера в секундах;
reach - состояние восьми последних попыток запроса времени у сервера в восьмеричном представлении;
delay - задержка ответа сервера в секундах;
offset - различие локального времени и времени на сервере (самый интересный параметр);
jitter — дисперсия, дрожание фазы (чем меньше, тем точнее синхронизация).
Также при диагностике проблем с серверами
NTP может помочь команда: "
ntpdate -vd your_ntp_source_dns_name". Пример вывода ниже: