- Синхронизация времени по NTP в Linux
- Синхронизация времени с NTP в Linux
- NTP сервер на Linux Ubuntu
- Установка сервера
- Настройка NTP
- Дополнительные настройки
- Тестирование
- Настройка клиента Linux
- ntpdate
- Настройка клиента Windows
- Некоторые ошибки
- 1. the NTP socket is in use, exiting
- 2. Connection refused
- 3. no server suitable for synchronization found
- Network Time Protocol daemon (Русский)
- Contents
- Установка
- Настройка
- Запуск демона
- Запуск ntpd
- NetworkManager
- Использование не root-пользователем
- Синхронизация часов без запуска демона
- Альтернативы
Синхронизация времени по NTP в Linux
Оригинал: How to Synchronize Time with NTP in Linux
Автор: Matei Cezar
Дата публикации: 20 апреля 2018 года
Перевод: А. Кривошей
Дата перевода: декабрь 2018 г.
Network Time Protocol (NTP) — это протокол, используемый для автоматической синхронизации системных часов компьютера по сети. Машина может выставлять системные часы по Coordinated Universal Time (UTC), а не по местному времени.
Наиболее распространенный метод синхронизации системного времени по сети на десктопах или серверах Linux — выполнение команды ntpdate, которая может установить системное время с сервера времени NTP. В этом случае на компьютере, на котором введена команда ntpdate, должен быть остановлен демон ntpd.
В большинстве систем Linux команда ntpdate не устанавливается по умолчанию. Чтобы установить ее, выполните приведенную ниже команду.
Пример команды ntpdate:
Чтобы просто запросить время сервера и не устанавливать часы, используя непривилегированный порт для отправки пакетов, чтобы обойти брандмауэры, выполните команду ntpdate со следующими флагами:
Всегда старайтесь запрашивать и синхронизировать время с ближайшими NTP-серверами, доступными для вашей зоны. Список пулов серверов NTP можно найти по следующему адресу:
В новых дистрибутивах Linux, которые используют Systemd, вы также можете синхронизировать время через файл timesyncd.conf. Просто откройте файл для редактирования.
И добавьте или раскомментируйте следующие строки после оператора [Time], как показано ниже:
После редактирования файла введите команду timedatectl, чтобы активировать сборку клиента NTP в systemd.
После этого введите команду date для отображения системных часов.
Источник
Синхронизация времени с NTP в Linux
Оригинал: How to Synchronize Time with NTP in Linux
Автор: Matei Cezar
Дата публикации: 20 апреля 2019 года
Перевод: А. Кривошей
Дата перевода: январь 2019 г.
Network Time Protocol (NTP) — это протокол, используемый для автоматической синхронизации системных часов компьютера по сети. Машина может устанавливать системные часы по всемирному координированному времени (UTC), а не по местному времени.
Наиболее распространенный метод синхронизации системного времени по сети на десктопах или серверах Linux — выполнение команды ntpdate, которая может установить системное время с сервера времени NTP. В этом случае а компьютере, на котором введена команда ntpdate, должен быть установлен демон ntpd.
В большинстве систем Linux утилита ntpdate не устанавливается по умолчанию. Чтобы установить ее, выполните приведенную ниже команду.
Пример команды ntpdate:
Чтобы просто запросить сервер и не устанавливать часы, используя непривилегированный порт для отправки пакетов, чтобы обойти брандмауэры, выполните команду ntpdate со следующими флагами.
Всегда старайтесь запрашивать и синхронизировать время с ближайшими NTP-серверами, доступными для вашей зоны. Список пулов серверов NTP можно найти по следующему адресу:
В новых дистрибутивах Linux, которые поставляются с Systemd, вы также можете синхронизировать время через файл timesyncd.conf. Просто откройте файл для редактирования.
И добавьте или раскомментируйте следующие строки после оператора [Time], как показано ниже:
После редактирования файла введите команду timedatectl, чтобы активировать сборку клиента NTP в systemd.
После этого введите команду date для отображения системных часов.
Источник
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
- restrict default — задает значение по умолчанию для всех рестриктов.
- kod — узлам, которые часто отправляют запросы сначала отправить поцелуй смерти (kiss of death), затем отключить от сервера.
- notrap — не принимать управляющие команды.
- nomodify — запрещает команды, которые могут вносить изменения состояния.
- nopeer — не синхронизироваться с хостом.
- noquery — не принимать запросы.
- restrict 192.168.0.0 mask 255.255.255.0 — разрешить синхронизацию для узлов в сети 192.168.0.0/24.
- IP адреса127.0.0.1 и ::1 позволяют обмен данные серверу с самим собой.
Настройки по умолчанию могут быть разные для IPv4 и IPv6:
restrict -4 default kod notrap nomodify nopeer noquery
restrict -6 default kod notrap nomodify nopeer noquery
systemctl restart ntp || service restart ntp
Если используется брандмауэр, добавляем правило:
iptables -I INPUT 1 -p udp —dport 123 -j ACCEPT
или с помощью ufw:
ufw allow in on enp2s0 to any port 123 proto udp
* где enp2s0 — сетевой интерфейс, на котором слушает наш сервер.
Дополнительные настройки
Настройка файла хранения логов:
Тестирование
Проверить состояние получения эталонного времени можно командой:
Мы должны увидеть, примерно, следующее:
remote refid st t when poll reach delay offset jitter
==============================================================================
ru.pool.ntp.org .POOL. 16 p — 64 0 0.000 0.000 0.000
ntp.ubuntu.com .POOL. 16 p — 64 0 0.000 0.000 0.000
*91.189.94.4 17.253.34.253 2 u 58 64 377 55.802 3.790 0.412
-91.189.91.157 132.246.11.231 2 u 56 64 377 113.456 -1.746 0.334
+91.189.89.198 192.53.103.108 2 u 1 64 377 54.595 4.229 0.608
+91.189.89.199 17.253.34.253 2 u 61 64 377 54.061 2.637 0.557
- remote — адрес сервера времени, с которым синхронизируется наш сервер;
- refid — вышестоящий сервер (с которым сервер из графы выше получает время);
- st — уровень сервера (stratum);
- t — пир (unicast или multicast);
- when — когда последний раз сверялось время;
- poll — периодичность синхронизации с этим сервером;
- reach — состояние работоспособности. Если удалось произвести синхронизации восемь раз в подряд становится равным 377;
- delay — время задержки;
- offset — разница между нашим временем и временем на сервере; положительное — наши часы спешат, отрицательное — отстают;
- jitter — смещение времени на удаленном сервере;
- * — с этим сервером синхронизирует время наш ntpd;
- + — сервер можно использовать для сверки часов;
- — — не рекомендован для синхронизации;
- x — не доступен.
Проверить отдачу времени сервером можно введя команду на другом 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
CentOS / Red Hat:
yum 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
Возникает при попытке выполнить команду ntpq -p.
Причина: нет разрешения на обращение к серверу.
Решение: проверьте, удастся ли выполнить запрос командой ntpq -pn 127.0.0.1 или ntpq -pn ::1. Также убедитесь, что настройка restrict позволяет серверу подключаться к самому себе по нужному протоколу.
3. no server suitable for synchronization found
Ошибка появляется при попытке синхронизировать время с другим сервером синхронизации.
Причина: сервер синхронизации не доступен по одной из причин: 1) не работает или выключен, 2) установлен restrict, 3) на сервере не запущен ntpd, 4) нет сетевой доступности из-за проблем на сети или брандмауэра.
Источник
Network Time Protocol daemon (Русский)
Перевод этой статьи или раздела не отражает оригинальное содержание.
Эта статья описывает, как установить и настроить NTPd (Network Time Protocol daemon), наиболее распространенный способ синхронизации часов в системе GNU/Linux с серверами в сети Интернет при помощи NTP. Если все настроено правильно, Ваш компьютер тоже может выступать в роли сервера синхронизации времени.
Contents
Установка
Пакет ntp доступен в репозитории [extra]:
Настройка
Самая первая строка в вашем файле /etc/ntp.conf определяет серверы, с которыми планируется синхронизироваться. NTP использует иерархическую систему «часовых уровней». Уровень 1 синхронизован с высокоточными часами, например, с системой GPS, ГЛОНАСС (Единая Государственная шкала времени РФ) или атомным эталоном времени. Уровень 2 синхронизируется с одной из машин уровня 1, и так далее.
Однако следует учитывать, что уровни не всегда являются показателями точности. Обычно для синхронизации пользовательских машин используются серверы третьего уровня. Если Вы не знаете серверов NTP в Вашем регионе, используйте pool.ntp.org и выберите сервер в Вашем регионе. Например,
Опция ‘iburst’ рекомендуется, с ее помощью посылается шквал пакетов, если не удается установить соединение с сервером с первого раза. Напротив, опцию ‘burst’ не используйте никогда без особого разрешения, так как Вы можете попасть в «черный список».
При настройке своего NTP сервера, нужно добавить localhost в список серверов, так как в случае потери соединения с сетью Интернет, сервер продолжит синхрозировать время в сети. Для этого добавьте localhost как сервер десятого уровня при помощи команды fudge , чтобы синхронизация не происходила, пока соединение с Интернет доступно:
Затем, определите правила, по которым к Вашему серверу смогут подключаться клиенты (localhost — это тоже клиент) при помощи команды restrict. Также добавьте в файл конфигурации:
Эти настройки не позволят пользователям изменять что-либо. Можете также добавить следующие опции:
Теперь нужно указать ntpd, какие подключения к Вашему серверу разрешены; если Вы не конфигурируете сервер NTP, следующей строки будет достаточно:
В противном случае, можно добавить больше клиентов:
Эти строки укажут ntpd, что адресам 1.2.3.4, а также всем адресам подсети 192.168.0.0/24 позволено синхронизировать время с Вашим сервером, но не позволено ничего изменять.
Если Вы желаете принудительно определить адреса по протоколу IPv6, напишите -6 перед IP-адресом или именем хоста (-4 принудительно устанавливает протокол IPv4), например:
Наконец, установите файл-буфер (в котором будет находиться погрешность часов системы) и журнал (лог):
Примерная конфигурация выглядит так:
Вообще, журнал (лог) устанавливать необязательно, но рекомендуется для того, чтобы знать, какие изменения проводит ntpd.
В заключении, никогда не забывайте читать man: ntp.conf(5) . Это ответит на многие Ваши вопросы. Также можно посмотреть man
Запуск демона
Запуск ntpd
Если Вы используете sysvinit:
Поместите ntpd в массив DAEMONS в файле /etc/rc.conf , чтобы он загружался при старте системы:
Если Вы используете systemd:
systemctl start ntpd
Для загрузки при старте системы
systemctl enable ntpd
NetworkManager
ntpd можно включать/выключать вместе со стартом сетевого соединения с помощью networkmanager-dispatcher-ntpd:
Использование не root-пользователем
Если программа скомпилирована с флагом —enable-linux-caps, ntpd может запустить не root-пользователь (стандартный пакет в Arch Linux имеет эту опцию).
Создайте группу ntp и пользователя ntp:
Смените владельца директории ntp на пользователя ntp:
Отредактируйте /etc/conf.d/ntp-client.conf и измените
Наконец, перезапустите демона:
Синхронизация часов без запуска демона
Если Вы просто хотите синхронизировать часы без запуска демона ntpd, добавьте в файл /etc/rc.local следующее:
Альтернативы
Доступная альтернатива ntpd — это OpenNTPD, часть проекта OpenBSD (не поддерживается сообществом Linux).
Источник