HTML Diff
1 added 1 removed
Original 2026-01-01
Modified 2026-03-10
1 <ul><li><a>Определение</a></li>
1 <ul><li><a>Определение</a></li>
2 <li><a>Устройство протокола</a></li>
2 <li><a>Устройство протокола</a></li>
3 <li><a>Установка и настройка сервера</a></li>
3 <li><a>Установка и настройка сервера</a></li>
4 <li><a>Ареалы использования</a></li>
4 <li><a>Ареалы использования</a></li>
5 <li><a>Резервный сервер</a></li>
5 <li><a>Резервный сервер</a></li>
6 <li><a>Проверка синхронизации</a></li>
6 <li><a>Проверка синхронизации</a></li>
7 <li><a>Установка локальных данных</a></li>
7 <li><a>Установка локальных данных</a></li>
8 <li><a>Нестандартное использование</a></li>
8 <li><a>Нестандартное использование</a></li>
9 </ul><p>Для некоторых служб операционной системы огромную значимость имеет точность системных часов. Связано это с тем, что неточное время на сервере повлечет за собой множество неприятностей. Пример - отсутствие синхронизации файлов. Это помешает установить точное время внесения в них изменений, что приведет к конфликту версий или полной перезаписи информации. Избежать всего этого можно при помощи налаживания синхронизации часов на устройстве и серверной части приложения/проекта. Для этого необходимо воспользоваться специальным протоколом - Network Time Protocol.</p>
9 </ul><p>Для некоторых служб операционной системы огромную значимость имеет точность системных часов. Связано это с тем, что неточное время на сервере повлечет за собой множество неприятностей. Пример - отсутствие синхронизации файлов. Это помешает установить точное время внесения в них изменений, что приведет к конфликту версий или полной перезаписи информации. Избежать всего этого можно при помощи налаживания синхронизации часов на устройстве и серверной части приложения/проекта. Для этого необходимо воспользоваться специальным протоколом - Network Time Protocol.</p>
10 <p>Далее необходимо познакомиться с ним более подробно. Предстоит выяснить, что он собой представляет, для каких целей используется, как настраивается и устанавливается. Эта информация пригодится как разработчикам, так и другим IT-специалистам.</p>
10 <p>Далее необходимо познакомиться с ним более подробно. Предстоит выяснить, что он собой представляет, для каких целей используется, как настраивается и устанавливается. Эта информация пригодится как разработчикам, так и другим IT-специалистам.</p>
11 <h2>Определение</h2>
11 <h2>Определение</h2>
12 - <p>NTP (или протокол сетевого времни) - это сетевой протокол, используемый для синхронизации внутренних часов компьютера/ноутбука с использованием сетей с перманентной латентностью. Он появился благодаря трудам Дэвида Л. Миллса, профессора Делавэрского университета.</p>
12 + <p>NTP (или протокол сетевого времени) - это сетевой протокол, используемый для синхронизации внутренних часов компьютера/ноутбука с использованием сетей с перманентной латентностью. Он появился благодаря трудам Дэвида Л. Миллса, профессора Делавэрского университета.</p>
13 <p>NTP является одним из наиболее распространенных и старейших Интернет-протоколов. Он активно используется по сей день. NTP предназначается для синхронизации компьютеров, подключенных к сети, с точностью до нескольких миллисекунд от UTC (или "универсального координированного времени".</p>
13 <p>NTP является одним из наиболее распространенных и старейших Интернет-протоколов. Он активно используется по сей день. NTP предназначается для синхронизации компьютеров, подключенных к сети, с точностью до нескольких миллисекунд от UTC (или "универсального координированного времени".</p>
14 <p>В рассматриваемом протоколе используется алгоритм пересечений, модифицированная версия алгоритма Марзулло для выбора точных сервером времени. Это помогает устранить эффект задержки передачи по сетям.</p>
14 <p>В рассматриваемом протоколе используется алгоритм пересечений, модифицированная версия алгоритма Марзулло для выбора точных сервером времени. Это помогает устранить эффект задержки передачи по сетям.</p>
15 <p>NTP, базирующийся на алгоритме Марзулло, использует для функционирования UDP-протокол и учитывает время передачи. Более простая реализация алгоритма известна как SNTP - простой протокол сетевого времени. Он встречается в:</p>
15 <p>NTP, базирующийся на алгоритме Марзулло, использует для функционирования UDP-протокол и учитывает время передачи. Более простая реализация алгоритма известна как SNTP - простой протокол сетевого времени. Он встречается в:</p>
16 <ul><li>пользовательских программах точного времени;</li>
16 <ul><li>пользовательских программах точного времени;</li>
17 <li>встраиваемых системах;</li>
17 <li>встраиваемых системах;</li>
18 <li>устройствах, не требующих повышенной степени точности.</li>
18 <li>устройствах, не требующих повышенной степени точности.</li>
19 </ul><p>Рекомендуется оставить программное обеспечение NTP работать в режиме системной службы. Операционные системы Microsoft Windows в качестве такого элемента предлагают W32Time, а Linux - демон Ntpd или chronyd.</p>
19 </ul><p>Рекомендуется оставить программное обеспечение NTP работать в режиме системной службы. Операционные системы Microsoft Windows в качестве такого элемента предлагают W32Time, а Linux - демон Ntpd или chronyd.</p>
20 <h2>Устройство протокола</h2>
20 <h2>Устройство протокола</h2>
21 <p>NTP-протокол базируется на иерархической структуре сервера точного времени, где выделяются разнообразные уровни. К нулевому уровню, на котором NTP не работает, относятся так называемые "эталонные часы". С ними синхронизируются NTP-серверы первого уровня - они выступают источниками для серверов второго уровня. Далее серверы 2 уровня синхронизируется с серверами первого уровня, а также (иногда) друг с другом. Точно также работают серверы третьего уровня и ниже. Всего предусматривается 256 уровней.</p>
21 <p>NTP-протокол базируется на иерархической структуре сервера точного времени, где выделяются разнообразные уровни. К нулевому уровню, на котором NTP не работает, относятся так называемые "эталонные часы". С ними синхронизируются NTP-серверы первого уровня - они выступают источниками для серверов второго уровня. Далее серверы 2 уровня синхронизируется с серверами первого уровня, а также (иногда) друг с другом. Точно также работают серверы третьего уровня и ниже. Всего предусматривается 256 уровней.</p>
22 <p>Иерархическая структура NTP-протокола обладает высоким уровнем избыточности и отказоустойчивостью. Резервные серверы осуществляют синхронизацию, если система отказывается от соединения с вышестоящими серверами. Для расчета точного времени NTP будет использовать данные, поступающие от всех источников, предварительно поддерживая связь с несколькими серверами.</p>
22 <p>Иерархическая структура NTP-протокола обладает высоким уровнем избыточности и отказоустойчивостью. Резервные серверы осуществляют синхронизацию, если система отказывается от соединения с вышестоящими серверами. Для расчета точного времени NTP будет использовать данные, поступающие от всех источников, предварительно поддерживая связь с несколькими серверами.</p>
23 <h2>Установка и настройка сервера</h2>
23 <h2>Установка и настройка сервера</h2>
24 <p>Теперь, когда стало понятно, что собой представляет NTP-сервер, предстоит научиться работать с ним. В качестве примера все операции будут реализованы на операционных системах Linux. Для синхронизации времени используется демон ntpd. Он может выступать в качестве:</p>
24 <p>Теперь, когда стало понятно, что собой представляет NTP-сервер, предстоит научиться работать с ним. В качестве примера все операции будут реализованы на операционных системах Linux. Для синхронизации времени используется демон ntpd. Он может выступать в качестве:</p>
25 <ul><li>сервера, принимающего время из удаленных хостов;</li>
25 <ul><li>сервера, принимающего время из удаленных хостов;</li>
26 <li>клиента, раздающего время сторонним хостам.</li>
26 <li>клиента, раздающего время сторонним хостам.</li>
27 </ul><p>Демон ntpd напрямую зависит от записанных в файле конфигурации параметров (настроек). Для инициализации NTP-server требуется воспользоваться стандартным менеджером пакетов:</p>
27 </ul><p>Демон ntpd напрямую зависит от записанных в файле конфигурации параметров (настроек). Для инициализации NTP-server требуется воспользоваться стандартным менеджером пакетов:</p>
28 <p>$ sudo apt-get install ntp</p>
28 <p>$ sudo apt-get install ntp</p>
29 <p>После установки все параметры NTP будут расположены в документе /etc/ntp.conf. первая конфигурационная строка - driftfile/var/lib/ntp/ntp.drift. Он включает в себя файл, в котором размещается информация о частоте смещения времени. Здесь же находится значение, полученное от предыдущих временных корректировок. Если по тем или иным причинам внешние NTP-servers недоступны, сведения берутся из соответствующего файла.</p>
29 <p>После установки все параметры NTP будут расположены в документе /etc/ntp.conf. первая конфигурационная строка - driftfile/var/lib/ntp/ntp.drift. Он включает в себя файл, в котором размещается информация о частоте смещения времени. Здесь же находится значение, полученное от предыдущих временных корректировок. Если по тем или иным причинам внешние NTP-servers недоступны, сведения берутся из соответствующего файла.</p>
30 <p>После установки серверной части требуется задать документ, сохраняющий логи синхронизации. Им выступает logfile/var/log/ntp.log.</p>
30 <p>После установки серверной части требуется задать документ, сохраняющий логи синхронизации. Им выступает logfile/var/log/ntp.log.</p>
31 <p>В конфигурационном файле требуется указать список NTP server, с которым требуется поддерживать синхронизацию. По умолчанию перечень имеет следующую интерпретацию:</p>
31 <p>В конфигурационном файле требуется указать список NTP server, с которым требуется поддерживать синхронизацию. По умолчанию перечень имеет следующую интерпретацию:</p>
32 <ul><li>server 0.ubuntu.pool.ntp.org;</li>
32 <ul><li>server 0.ubuntu.pool.ntp.org;</li>
33 <li>server 1.ubuntu.pool.ntp.org;</li>
33 <li>server 1.ubuntu.pool.ntp.org;</li>
34 <li>server 2.ubuntu.pool.ntp.org;</li>
34 <li>server 2.ubuntu.pool.ntp.org;</li>
35 <li>server 3.ubuntu.pool.ntp.org.</li>
35 <li>server 3.ubuntu.pool.ntp.org.</li>
36 </ul><p>Представленные строки указывают на серверные группы. Они сообщают NTP server верное текущее время. При помощи опции iburst допускается увеличение точности синхронизации. Данная операция позволяет указать на то, что серверной стороне необходимо отправлять несколько пакетов, а не один:</p>
36 </ul><p>Представленные строки указывают на серверные группы. Они сообщают NTP server верное текущее время. При помощи опции iburst допускается увеличение точности синхронизации. Данная операция позволяет указать на то, что серверной стороне необходимо отправлять несколько пакетов, а не один:</p>
37 <ul><li>server 0.ubuntu.pool.ntp.org iburst;</li>
37 <ul><li>server 0.ubuntu.pool.ntp.org iburst;</li>
38 <li>server 1.ubuntu.pool.ntp.org iburst;</li>
38 <li>server 1.ubuntu.pool.ntp.org iburst;</li>
39 <li>server 2.ubuntu.pool.ntp.org iburst;</li>
39 <li>server 2.ubuntu.pool.ntp.org iburst;</li>
40 <li>server 3.ubuntu.pool.ntp.org iburst.</li>
40 <li>server 3.ubuntu.pool.ntp.org iburst.</li>
41 </ul><p>Сведения о нужном сервере доносятся до системы при помощи опции prefer. Она пишется через пробел от iburst.</p>
41 </ul><p>Сведения о нужном сервере доносятся до системы при помощи опции prefer. Она пишется через пробел от iburst.</p>
42 <h2>Ареалы использования</h2>
42 <h2>Ареалы использования</h2>
43 <p>NTP встречаются по всему миру, но чаще всего синхронизация времени осуществляется с серверами того ареала, где физически расположен задействованный сервер. За счет этого конфигурационный файл /etc/ntp.conf требует указания поддомена региона для pool.ntp.org. Он указывается перед соответствующей записью.</p>
43 <p>NTP встречаются по всему миру, но чаще всего синхронизация времени осуществляется с серверами того ареала, где физически расположен задействованный сервер. За счет этого конфигурационный файл /etc/ntp.conf требует указания поддомена региона для pool.ntp.org. Он указывается перед соответствующей записью.</p>
44 <p>Ориентироваться можно на следующие варианты записи:</p>
44 <p>Ориентироваться можно на следующие варианты записи:</p>
45 <ul><li>ru - Россия;</li>
45 <ul><li>ru - Россия;</li>
46 <li>south-america - Южная Америка;</li>
46 <li>south-america - Южная Америка;</li>
47 <li>africa - Африка;</li>
47 <li>africa - Африка;</li>
48 <li>asia - Азия;</li>
48 <li>asia - Азия;</li>
49 <li>north-america - Северная Америка;</li>
49 <li>north-america - Северная Америка;</li>
50 <li>oceania - Океания;</li>
50 <li>oceania - Океания;</li>
51 <li>europe - Европа.</li>
51 <li>europe - Европа.</li>
52 </ul><p>Так, если серверная часть системы физически располагается в России, нужно записать в конфигурационном файле строку: ru.pool.ntp.org.</p>
52 </ul><p>Так, если серверная часть системы физически располагается в России, нужно записать в конфигурационном файле строку: ru.pool.ntp.org.</p>
53 <h2>Резервный сервер</h2>
53 <h2>Резервный сервер</h2>
54 <p>При синхронизации времени через NTP необходимо обеспечить резервный сервер. Он пригодится, если основная серверная часть системы отключится от Интернета. За счет резервной части передача времени для системных часов все равно будет осуществляться.</p>
54 <p>При синхронизации времени через NTP необходимо обеспечить резервный сервер. Он пригодится, если основная серверная часть системы отключится от Интернета. За счет резервной части передача времени для системных часов все равно будет осуществляться.</p>
55 <p>Для добавления резервного сервера установки NTP времени необходимо добавить в файл конфигурации строку:</p>
55 <p>Для добавления резервного сервера установки NTP времени необходимо добавить в файл конфигурации строку:</p>
56 <p>server 127.127.1.0</p>
56 <p>server 127.127.1.0</p>
57 <p>После этого даже разрыв соединения с Интернетом не нарушит синхронизацию системных часов.</p>
57 <p>После этого даже разрыв соединения с Интернетом не нарушит синхронизацию системных часов.</p>
58 <h2>Проверка синхронизации</h2>
58 <h2>Проверка синхронизации</h2>
59 <p>После того как в файл конфигурации будут внесены необходимые изменения, серверную часть NTP требуется перезагрузить. Для этого используется команда:</p>
59 <p>После того как в файл конфигурации будут внесены необходимые изменения, серверную часть NTP требуется перезагрузить. Для этого используется команда:</p>
60 <p>$ service restart ntp</p>
60 <p>$ service restart ntp</p>
61 <p>После - выполнить команду:</p>
61 <p>После - выполнить команду:</p>
62 <p>$ ntpq -p</p>
62 <p>$ ntpq -p</p>
63 <p>В конечном итоге на экране появится длинная таблица. В ней указаны следующие параметры:</p>
63 <p>В конечном итоге на экране появится длинная таблица. В ней указаны следующие параметры:</p>
64 <ul><li>remote - адрес сервера точного времени;</li>
64 <ul><li>remote - адрес сервера точного времени;</li>
65 <li>refid - сервер;</li>
65 <li>refid - сервер;</li>
66 <li>st - уровень;</li>
66 <li>st - уровень;</li>
67 <li>t - тип пира;</li>
67 <li>t - тип пира;</li>
68 <li>when - строка, указывающая на момент последней синхронизации;</li>
68 <li>when - строка, указывающая на момент последней синхронизации;</li>
69 <li>poll - время синхронизации демона NTP с пиром (в секундах);</li>
69 <li>poll - время синхронизации демона NTP с пиром (в секундах);</li>
70 <li>reach - доступность серверной стороны;</li>
70 <li>reach - доступность серверной стороны;</li>
71 <li>delay - время задержки ответа от NTP;</li>
71 <li>delay - время задержки ответа от NTP;</li>
72 <li>offset - разница во времени между сервером и сервером синхронизации;</li>
72 <li>offset - разница во времени между сервером и сервером синхронизации;</li>
73 <li>jitter - временное смещение на удаленной серверной стороне системы.</li>
73 <li>jitter - временное смещение на удаленной серверной стороне системы.</li>
74 </ul><p>Слева от основного серверного адреса могут быть указаны дополнительные служебные символы. А именно:</p>
74 </ul><p>Слева от основного серверного адреса могут быть указаны дополнительные служебные символы. А именно:</p>
75 <ul><li>"*" - сервер, выбранный для синхронизации времени;</li>
75 <ul><li>"*" - сервер, выбранный для синхронизации времени;</li>
76 <li>"+" - пригодный для синхронизации времени сервер;</li>
76 <li>"+" - пригодный для синхронизации времени сервер;</li>
77 <li>"-" - рекомендуется избегать синхронизации;</li>
77 <li>"-" - рекомендуется избегать синхронизации;</li>
78 <li>"x" - недоступный сервер.</li>
78 <li>"x" - недоступный сервер.</li>
79 </ul><p>Для проверки NTP-servers на пригодность синхронизации необходимо использовать команду: ntpdate -q.</p>
79 </ul><p>Для проверки NTP-servers на пригодность синхронизации необходимо использовать команду: ntpdate -q.</p>
80 <h2>Установка локальных данных</h2>
80 <h2>Установка локальных данных</h2>
81 <p>При работе с клиент-серверными моделями каждый разработчик должен знать, как при помощи рассматриваемого протокола настроить локальные дату и время. Для данной операции используется команда ntpdate. Вместе с ней формируется и отправляется запрос на серверную часть:</p>
81 <p>При работе с клиент-серверными моделями каждый разработчик должен знать, как при помощи рассматриваемого протокола настроить локальные дату и время. Для данной операции используется команда ntpdate. Вместе с ней формируется и отправляется запрос на серверную часть:</p>
82 <p>Если нужно проверить статус ntdp, предстоит задействовать команду:</p>
82 <p>Если нужно проверить статус ntdp, предстоит задействовать команду:</p>
83 <p>Больше никаких дополнительных настроек и операций выполнять не придется.</p>
83 <p>Больше никаких дополнительных настроек и операций выполнять не придется.</p>
84 <h2>Нестандартное использование</h2>
84 <h2>Нестандартное использование</h2>
85 <p>NTP время может быть использовано для усиления трафика в DDoS-атаках. Для борьбы со злоумышленниками рекомендуется ограничить доступ для внешних клиентов. Эта информация тоже хранится в конфигурационном документе. По умолчанию там выставлены следующие параметры:</p>
85 <p>NTP время может быть использовано для усиления трафика в DDoS-атаках. Для борьбы со злоумышленниками рекомендуется ограничить доступ для внешних клиентов. Эта информация тоже хранится в конфигурационном документе. По умолчанию там выставлены следующие параметры:</p>
86 <p>Опции noquery, notrap, nopeer и nomodify не дают внешним клиентам менять конфигурации на серверной стороне. Параметр kod используется для обеспечения дополнительного уровня защиты. При его использовании клиент, часто отправляющий запросы, будет получать в первую очередь kod-пакет, выступающий предупреждением об отказе в дальнейшем обслуживании, а затем - отключаться от сервера.</p>
86 <p>Опции noquery, notrap, nopeer и nomodify не дают внешним клиентам менять конфигурации на серверной стороне. Параметр kod используется для обеспечения дополнительного уровня защиты. При его использовании клиент, часто отправляющий запросы, будет получать в первую очередь kod-пакет, выступающий предупреждением об отказе в дальнейшем обслуживании, а затем - отключаться от сервера.</p>
87 <p>Для установки синхронизации машин из локальной сети с NTP в файле конфигурации указывается строка:</p>
87 <p>Для установки синхронизации машин из локальной сети с NTP в файле конфигурации указывается строка:</p>
88 <p>А вот неограниченный доступ к NTP для локального хоста:</p>
88 <p>А вот неограниченный доступ к NTP для локального хоста:</p>
89 <p>.</p>
89 <p>.</p>
90 <p>Теперь понятно, для чего нужен NTP, а также как с ним работать в случае с Linux OS. Лучше разобраться с клиент-серверными моделями, а также научиться ими управлять помогут дистанционные компьютерные курсы. Они рассчитаны на срок от пары месяцев до года и позволяют освоить любое IT-направление в сжатые сроки. В конце каждого успешно завершенного курса пользователю будет выдан электронный сертификат, подтверждающий приобретенные знания и навыки.</p>
90 <p>Теперь понятно, для чего нужен NTP, а также как с ним работать в случае с Linux OS. Лучше разобраться с клиент-серверными моделями, а также научиться ими управлять помогут дистанционные компьютерные курсы. Они рассчитаны на срок от пары месяцев до года и позволяют освоить любое IT-направление в сжатые сроки. В конце каждого успешно завершенного курса пользователю будет выдан электронный сертификат, подтверждающий приобретенные знания и навыки.</p>
91 <p><em>Хотите освоить современную IT-специальность? Огромный выбор курсов по востребованным IT-направлениям есть в <a>Otus</a>!</em> </p>
91 <p><em>Хотите освоить современную IT-специальность? Огромный выбор курсов по востребованным IT-направлениям есть в <a>Otus</a>!</em> </p>
92  
92