Есть много вопросов по ntp, и все они имеют одну и ту же ошибку: люди, использующие SERVER на ntp-пуле и POOL на ntp-сервере:
server 0.rhel.pool.ntp. org
Как следует из URL-адреса, это POOL. Попробуйте вместо этого
пул 0.rhel.pool.ntp.org
или используйте сервер, а не пул...
Кроме того, у большинства людей есть источник времени в сети, чаще всего контроллеры домена Windows. Если это верно для вас, то зачем возиться с внешними ntp-серверами, когда вы можете использовать внутренний NTP Windows DC...
Не держите ntpdate на своем сервере, если вы используете ntpd!
Принимая во внимание какие-либо причины, по которым ваша система дрейфует во времени, что вы собираетесь с этим делать?
Когда вы сталкиваетесь с проблемами со временем в Linux, сначала проверьте любую систему виртуализации — если вы используете VMware/Hyper-V/Xen/KVM/что угодно — подумайте, какие у вас на самом деле здесь «аппаратные часы»!?! Иногда ваши часы «BIOS» работают неправильно, но они такие же виртуальные, как и ваша сетевая карта (!), поэтому, если вы используете виртуальные машины, поговорите со своими ответственными коллегами.
Принимая во внимание разницу между ntpd и ntpd, в двух словах: ntpd «обманывает» вашу систему, слегка добавляя доли времени к системному времени (дате), пока локальное системное время не будет синхронизировано с тем, что говорит ваш источник времени, тогда как ntpdate устанавливает ваше местное время в «сетевое время» быстро.
Системное время — это то, о чем говорит дата команды в Linux. Но есть также hwclock (требуется sudo), который действительно является вашим аппаратным обеспечением, также известным как часы BIOS.
На этот раз, буквально говоря, вам может понадобиться выполнить
sudo hwclock ---systohc
, чтобы установить в BIOS/аппаратных/виртуальных часах системную дату – то, что говорит ntpd. Если вам нужно делать это чаще, есть проблема.
Я точно знаю, что это относится к Ubuntu, поэтому я предполагаю, что это относится и к Debian. Причина в том, что система может вызвать ntpdate вовремя (cron.weekly?), но когда у вас запущен ntpd, он обычно будет жаловаться! Вы просто не можете запустить ntpdate, когда работает ntpd.
Обычно вы устанавливаете ntpd, потому что у него есть дрейф-файл, который позволяет ntpd корректировать ваше время плавно, но «с течением времени» — он может добавлять здесь доли секунды, а там, но не заставляет сбрасывать время, скажем, до 30. секунды в будущем - или, что еще хуже, в прошлом - потому что вы можете предположить, например, большинству баз данных вообще не нравятся путешествия во времени!
Именно для этого и предназначен ntpd.ntpdate, напротив, быстро исправит любые временные дрейфы, которые могут вызвать критичные ко времени проблемы с приложениями. глубоко полагаясь на временные метки с БОЛЬШИМИ скачками во времени вперед или назад. Серьезные базы данных с серьезным содержанием полагаются на временные метки (например, mysql/postgres/mariadb).
Итак, вы видите, что оба они имеют разные подходы и не могут использоваться вместе.
Решение, которое я нашел, заключалось в том, чтобы удалить эту конфигурацию из конфигурации докера. MountFlags=private
и перезапустите службу Docker.
Выберите любой другой адрес. Если адрес начинается с 127
, он является частью подсети 127.0.0.0/8
и зарезервирован для обратной связи (так как 127.0.0.1
равен локальный хост
). Любой другой частный адрес должен работать.