Как изменить время в debian 8. Некорректное время на Ubuntu или Debian - проблемы с NTP синхронизацией времени

Точное время на компьютере, вещь приятная.. но по моему наблюдению многие даже и не пытаются это использовать.. в лучшем случае корректировка вручную.. :(
В линуксе есть замечательная служба ntp, но настроить ее многим не под силу, для этого нужно прочитать энное количество документации, чтоб понять "как это работает" (с)
Я постараюсь кратко объяснить как настраивать и использовать эту службу, в первую очередь для тех кто не хочет или не может тратить много времени на это.
Для чего это нужно?
При правильно настроенной службе на сервере, вы сможете локально синхронизировать часы на всех компьютерах в локальной сети, при чем как OS Linux так и Windows.
Что приятно, нет необходимости постоянно получать доступ в интернет, когда у сервера он будет, тогда он и сделает поправку по времени.. остальные синхронизацию получат локально от него.
Так же очень часто на старых компьютерах батарейки на материнских платах уже подсевшие, и время сильно уходит, при старте компьютера, время будет автоматически скорректировано..
Что нужно установить?
В стандартном репозитарии Debian есть пакеты: ntp и ntpdate
apt-get install ntp ntpdate
в принципе после установки сервер начинает работать уже сразу..
но синхронизироваться с ним у вас не получиться..
для этого в /etc/ntp.conf необходимо кое что исправить..
ниже привожу конфиг и комментарии к нему, свои исправления вы сможете сделать сами:
#=============================================================================
# /etc/ntp.conf, configuration for ntpd; see ntp.conf(5) for help driftfile /var/lib/ntp/ntp.drift statsdir /var/log/ntpstats/ statistics loopstats peerstats clockstats filegen loopstats file loopstats type day enable filegen peerstats file peerstats type day enable filegen clockstats file clockstats type day enable server 0.debian.pool.ntp.org server 1.debian.pool.ntp.org server 2.debian.pool.ntp.org server 3.debian.pool.ntp.org server 2.ru.pool.ntp.org server 1.ru.pool.ntp.org server 3.europe.pool.ntp.org server 2.europe.pool.ntp.org restrict -4 default kod notrap nomodify nopeer noquery restrict 127.0.0.1 # наша сеть restrict 192.168.0.0 mask 255.255.255.0 nomodify notrap restrict 192.168.255.0 mask 255.255.255.240 nomodify notrap # а это волшебная штука, которая выставляет уровень доверия серверу (strata) самому себе равный 3 # в двух словах чем выше уровень-тем меньше число. 0 - это атомные часы, # 1 - это синхронизированные с ними, 2 - с первым, и так далее. server 127.127.1.1 fudge 127.127.1.1 stratum 3 ===================================================================================

На компьютерах Windows XP например можно в настройках даты времени теперь указать свой сервер, или его ipdaares и синхронизироваться..
с Windows 98, 200 сложнее.. нужна специальная программа, типа D4,
что в принципе решабельно..
С Linux - практически все мне известные версии имеют такую службу.. не думаю, что конфиг там сильно отличается.. :)

|

Точное хронометрирование – очень важный аспект корректной работы многих современных программ. Из-за неправильного времени на сервере могут возникнуть ошибки, и данные могут быть повреждены (например, при обновлении БД или логировании).

В Debian 9 синхронизация времени встроена и включена по умолчанию; за неё отвечает стандартный сервер ntpd, предоставляемый пакетом ntp. Данный мануал ознакомит вас с базовыми командами для управления временем, научит проверять состояние ntpd и устанавливать другие сервисы сетевого времени.

Требования

Для работы вам понадобится сервер Debian 9 и пользователь с доступом к sudo (мануал нужно выполнить в сессии этого пользователя). Все необходимые инструкции по настройке вы найдете .

Основные команды для управления временем

date – основная команда для определения времени на сервере. Любой пользователь может использовать её, чтобы узнать дату и время:

date
Tue Sep 4 17:51:49 UTC 2018

Обычно по умолчанию серверы используют часовой пояс UTC (Coordinated Universal Time) – это всемирное координированное время. UTC последовательно устанавливает время на серверах и минимизирует ошибки в случае если сервера инфраструктуры находятся в разных часовых поясах.

Чтобы изменить часовой пояс, используйте команду timedatectl.

Запросите список доступных поясов:

timedatectl list-timezones

Перемещаться вниз по списку можно с помощью клавиши пробела, а вверх – с помощью b. Выберите часовой пояс, запишите его и нажмите q, чтобы закрыть список.

Теперь установите часовой пояс с помощью timedatectl set-timezone. Используйте следующую команду, указав в ней требуемый часовой пояс:

sudo timedatectl set-timezone America/New_York

Примечание: Вместо America/New_York укажите необходимый часовой пояс.

Убедитесь, что пояс изменился:

date
Tue Sep 4 13:52:57 EDT 2018

Аббревиатура часового пояса будет отражать новое значение.

Состояние ntpd

По умолчанию для синхронизации времени с пулом внешних серверов Debian 9 использует стандартный сервер ntpd. Проверить его состояние можно с помощью systemctl:

sudo systemctl status ntp
ntp.service - LSB: Start NTP daemon
Loaded: loaded (/etc/init.d/ntp; generated; vendor preset: enabled)
Active: active (running) since Tue 2018-09-04 15:07:03 EDT; 30min ago
Docs: man:systemd-sysv-generator(8)
Process: 876 ExecStart=/etc/init.d/ntp start (code=exited, status=0/SUCCESS)
Tasks: 2 (limit: 4915)
CGroup: /system.slice/ntp.service
└─904 /usr/sbin/ntpd -p /var/run/ntpd.pid -g -u 105:109
. . .

Строка active (running)указывает, что сервер работает правильно. Получить больше информации можно с помощью команды ntpq:

ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================
0.debian.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.000
1.debian.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.000
2.debian.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.000
3.debian.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.000
-eterna.binary.n 204.9.54.119 2 u 240 256 377 35.392 0.142 0.211
-static-96-244-9 192.168.10.254 2 u 60 256 377 10.242 1.297 2.412
+minime.fdf.net 83.157.230.212 3 u 99 256 377 24.042 0.128 0.250
*t1.time.bf1.yah 98.139.133.62 2 u 31 256 377 11.112 0.621 0.186
+x.ns.gin.ntt.ne 249.224.99.213 2 u 108 256 377 1.290 -0.073 0.132
-ord1.m-d.net 142.66.101.13 2 u 473 512 377 19.930 -1.764 0.293

ntpq – это инструмент запросов ntpd. Флаг –p собирает информацию о серверах NTP, к которым подключен ntpd. Ваш вывод будет немного другим, но в нем будут стандартные серверы пула Debian и несколько других серверов. У ntpd может уйти несколько минут на установку соединения.

Переход с ntpd на systemd-timesyncd

Для замены ntpd можно использовать встроенный демон timesyncd systemd. timesyncd – простая альтернатива ntpd, интегрированная с systemd. Однако при переходе следует учитывать, что timesyncd не работает в качестве сервера времени и использует менее сложные методы синхронизации системного времени. Если вы используете сложные распределенные системы реального времени, лучше оставаться с ntpd.

Чтобы перейти на timesyncd, сначала удалите ntpd.

sudo apt purge ntp

Затем запустите timesyncd:

sudo systemctl start systemd-timesyncd

Проверьте его состояние:

sudo systemctl status systemd-timesyncd
systemd-timesyncd.service - Network Time Synchronization
Loaded: loaded (/lib/systemd/system/systemd-timesyncd.service; enabled; vendor preset: enabled)
Drop-In: /lib/systemd/system/systemd-timesyncd.service.d
└─disable-with-time-daemon.conf
Active: active (running) since Tue 2018-09-04 16:14:23 EDT; 1s ago
Docs: man:systemd-timesyncd.service(8)
Main PID: 3399 (systemd-timesyn)
Status: "Synchronized to time server 198.60.22.240:123 (0.debian.pool.ntp.org)."
Tasks: 2 (limit: 4915)
CGroup: /system.slice/systemd-timesyncd.service
└─3399 /lib/systemd/systemd-timesyncd

Чтобы получить сведения о текущем восприятии времени systemd, введите:

timedatectl
Local time: Tue 2018-09-04 16:15:34 EDT
Universal time: Tue 2018-09-04 20:15:34 UTC
RTC time: Tue 2018-09-04 20:15:33
Time zone: America/New_York (EDT, -0400)
Network time on: yes

NTP synchronized: yes
RTC in local TZ: no

Команда выведет местное время, универсальное время (которое может совпадать с местным, если вы не переключались с часового пояса UTC) и информацию о состоянии времени в сети. Network time on: yes означает, что сервис timesyncd включен, а NTP synchronized: yes указывает, что время было успешно синхронизировано.

Заключение

Теперь вы умеете управлять системным временем сервера Debian 9.

NTP сервер достаточно полезная штука которая позволит раздать «время» компьютерам в локальной сети. Это очень полезно, особенно в случае использования программ семейства 1С, которые не очень любят если время на клиентах или на сервере различается. Самым простым и наиболее популярным сервером времени в nix системах я считаю NTP сервер. NTP сервер по идее уже идет при базовой установке системы, на всякий случай произведем установку перед настройкой сервера NTP на базе Debian 8.

Произведем установку сервера NTP:

Apt-get install ntp ntpdate

Теперь настроем конфигурационный файл:

Nano /etc/ntp.conf

Очень важно! 13 января 2014 года стало известно о возможности совершения массовых DDoS-атак через незащищенный демон ntpd. Поэтому вам следует без необходимости не разрешать доступ к вашему NTP серверу извне. В Debian 8 по умолчанию доступ из вне включен, но если у вас другой дистрибутив, то следует добавить в файл /etc/ntp.conf следующие строки:

Disable monitor restrict -4 default kod nomodify notrap nopeer noquery restrict -6 default kod nomodify notrap nopeer noquery restrict -4 127.0.0.1 restrict -6::1

Примерный листинг файла конфигурации, с русскими комментариями:

#Список серверов для синхронизации времени server 0.ru.pool.ntp.org iburst prefer #Этот сервер будет основным для синхронизации server 1.ru.pool.ntp.org iburst server 2.ru.pool.ntp.org iburst server 3.ru.pool.ntp.org iburst #Отключим мониторинг disable monitor #Файл смещения driftfile /var/db/ntpd.drift #Файл логов NTP сервера logfile /var/log/ntpd.log #Разрешим изменять время нашего сервера через локальный интерфейс restrict 127.0.0.1 #Разрешим изменение времени с выбранных нами серверов restrict 0.ru.pool.ntp.org noquery notrap restrict 1.ru.pool.ntp.org noquery notrap restrict 2.ru.pool.ntp.org noquery notrap restrict 3.ru.pool.ntp.org noquery notrap #Наконец разрешим доступ к серверу времени только из нашей локальной сети restrict 192.168.0.0 mask 255.255.255.0 nomodify notrap nopeer #Если необходимо, то откроем доступ отовсюду. (Это так же даст доступ к вашему NTP серверу из сети интернет, если сервер к нему подключен и к нему открыт доступ) #restrict 0.0.0.0 mask 0.0.0.0 nomodify notrap nopeer

Выбираем пул серверов из временной зоны .

Теперь сохраняем файл конфигурации и перезапускаем наш демон:

Service ntp restart

Проверьте файл логов на наличие ошибок, если все хорошо, то вам достаточно подождать минут 10-15, до того как сервер автоматически синхронизируется с выбранными серверами. Для того что бы это проверить, введите:

Ntpq -c peers

Знак + перед адресом указывает на сервер с которым была последняя синхронизация. Так же можно синхронизироватся с самим собой:

Ntpdate -q localhost

или синхронизироватся с выбранным сервером:

Ntpdate адрес_сервера #Наприммер 0.ru.pool.ntp.org

Если вам нужно сменить временную зону , то необходимо заменить файл /etc/localtime, для этого достаточно удалить старый файл, и выбрать необходимую зону из каталога /usr/share/zoneinfo/. Напирмер у меня зона Екатеринбург, и я меняю ее на Москву:

Rm /etc/localtime ln -s /usr/share/zoneinfo/Europe/Moscow /etc/localtime

Синхронизация Windows с NTP сервером на Linux

Если ваш NTP сервер имеет стратум ниже 2 или 3, то Windows машины не будут синхронизироаться с вашим NTP сервером на Linux. Но и это достаточно просто решить. Для синхронизации Windows систем через NTP сервер установленный на Linux (Debian, Ubuntu и пр.) можно использовать командную строку:

Net time \\IP_АДРЕС_СЕРВЕРА_NTP /set /yes

И рабочая станция под Windows синхронизируется с вашим NTP сервером на Linux системе. Как вариант, создать bat файл, и добавить его в автозагрузку Windows. После чего, синхронизация времени будет происходить после каждой загрузке ОС.

Во время первоначальной установки Debian мы конфигурируем часовой пояс с помощью пакета . В дальнейшем синхронизация времени и часового пояса можно выполнить командами:

$ su $ пароль $ dpkg-reconfigure tzdata

Стрелками выбираем Европа и нажимаем Enter .

Также выбираем часовой пояс.

В результат синхронизация получаем универсальное (время по Гринвичу ) и местное время .

Конфигурационный файл хранится в /etc/timezone . Открыть файл можно с помощью команды:

$ gedit /etc/timezone

Кроме того, соответствующий файл данных находится в каталоге /usr/share/zoneinfo и копируется в /etc/localtime , этот файл содержит правила, регулирующие дату летнего или зимнего времени для стран, которые его используют.

В компьютере два источника времени: на материнской плате аппаратные часы — "CMOS " и в ядре операционной системы, контролируемые серверами времени через сеть. На практике существует проблема, так как часы CMOS является не более чем счетчиком и не содержат никакой информации о часовом поясе.

Проблема возникает когда компьютер в сети или имеет несколько систем (например, запуск других систем через виртуальную машину) тогда возникает хаос и неясно какое время является правильным.

Синхронизация времени, может показаться излишней на одиночном компьютере, но является очень важной в сети. Так как в случае нападения легче восстановить хронологию событий на различных машинах. Данные собранные на нескольких машинах не будут иметь большого смысла, если они не синхронизированы.

Поскольку компьютеры регулярно запускаются и перезагружаются (для экономии электроэнергии), машины удобно синхронизировать с помощью NTP при загрузке. Для этого просто установите ntpdate пакет он позволяет быстро синхронизировать часы компьютера с серверами точного времени, подсоединёнными ко Всемирной Паутине. Установку ntpdate из репозитория произведем с помощью менеджера пакетов Synaptic или путем выполнения команд в терминале:

$ su $ пароль $ apt-get install ntpdate

Для рабочих станций вы можете изменить сервер NTP , используемый при необходимости путем модификации /etc/default/ntpdate файла.

Для серверов так как они редко перезагружается, а есть большая необходимость поддерживать точное время, необходимо установить локальный сервер NTP .

Установка NTP

$ aptitude install ntp ntpdate

В конфигурации по умолчанию сервер будет синхронизировать с ресурсом pool.ntp.org и обеспечит время в ответ на запросы, поступающие из локальной сети. Вы можете настроить его путем редактирования/etc/ntp.conf файла.

В целях безопасности, для доступа к Вашему серверу извне, требуется добавить в файл /etc/ntp.conf следующие строки (данные строки уже могут присутствовать):

Disable monitor restrict default kod nomodify notrap nopeer noquery restrict -6 default kod nomodify notrap nopeer noquery restrict 127.0.0.1 restrict -6::1

disable monitor - отключение запросов monlist, которые возвращают список из последних 600 клиентов ntp. restrict default kod nomodify notrap nopeer noquery

restrict -6 default kod nomodify notrap nopeer noquery - отключение запросов статуса сервера.

Так же вы можете указать свои сервера для синхронизации времени, например, адреса NTP серверов Pоссии: https://www.ntp-servers.net/servers.html и отредактируйте файл /etc/ntp.conf, выполнив команду:

$ gedit /etc/ntp.conf

Разовая синхронизация времени

В качестве примера используется сервер ntp1.stratum1.ru :

$ ntpdate ntp1.stratum1.ru

До синхронизации

После синхронизации

Для того, чтобы организовать постоянную синхронизацию времени произведем установку демона (сервера) ntp

Отредактируйте файл /etc/ntp.conf или создайте его, если такого файла нет.

$ server ntp1.stratum1.ru iburst

Запускаем ntp и добавляем его автозагрузку

$ /etc/init.d/ntp start $ update-rc.d ntp defaults

Понравилась статья? Поделитесь ей
Наверх