Назад | Перейти на главную страницу

ntpdate и ntpd не могут синхронизировать часы в Linux

У меня странная проблема с одним из моих серверов. ntpd и ntpdate не работают, но отладка вообще не показывает ошибок. Сначала я подумал, что, возможно, локальный или сетевой брандмауэр блокирует порт 123 UDP, но это не так - этот сервер может передавать порт 123 UDP (протокол ntp) в Интернет и получать ответы.

Позвольте мне продемонстрировать проблему.

date -s "30 DEC 2012 02:30:00" - работает, поэтому я могу успешно настроить часы без ошибок.

ntpq -pn pool.ntp.org - работает, я получаю подробные данные о времени с сервера времени и подтверждаю, что UDP-пакеты работают.

ntpdate -d pool.ntp.org - режим отладки работает, показывает массу данных отладки и показывает текущее смещение времени: 30 Dec 02:38:56 ntpdate[19267]: step time server 208.97.140.69 offset 228.234554 sec

Все выглядит нормально, пока: ntpdate pool.ntp.org - после 4,7-секундной паузы возвращается: 30 Dec 02:41:29 ntpdate[19274]: no server suitable for synchronization found

Аналогичная проблема работает ntpd, часы не обновляются.

После запуска ntpd ntpq -pn приводит к тому, что все рефиды навсегда застревают .INIT. что означает, что они не могут синхронизироваться.

/ var / lib / ntp / drift - это настройка файла дрейфа в ntp.conf, который является chmod 644 и принадлежит ntp: ntp, как и все другие мои системы.

Я попробовал дюжину других серверов времени ntp, отключил брандмауэр iptables и подтвердил, что центр обработки данных не фильтрует трафик udp. Есть идеи, что мешает ntpd и ntpdate синхронизировать мои часы?

Это CentOS 6.3 x64 на выделенном сервере с процессором Intel.

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

Пытаться ntpdate -b вместо. Он установит время, каким бы необоснованным оно ни казалось.

Вам также может потребоваться добавить -u флаг, который предотвратит ntpdate от использования привилегированных (<1024) портов. Обратите внимание, что -u подразумевается -d! И это звучит как -d работает нормально.

Если добавить -u имеет значение между рабочим и нерабочим, тогда у вас есть брандмауэр, который вызывает эти проблемы.

И к сожалению кажется невозможным сделать ntpd использовать неограниченный порт.

Можете ли вы предоставить следующие результаты в pastebin.

cat /etc/ntp.conf
cat /etc/sysconfig/ntpd
ntpq -pn
ntpdc -c sysstat
ntpdc -c kerninfo
ntpdc -c loopinfo
ntpdate -d <time-server-IP>
ntptrace

Вы выполняете синхронизацию с серверов уровня 1 или чего-то еще.

Отсутствие сервера, подходящего для синхронизации, означает то, что он сообщает, что связь между клиентом и сервером не может быть установлена.

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

tcpdump -s0 -i ethX -p udp -w /tmp/ntp.pcap

Остановите и запустите демон ntpd, дождитесь, пока дойдет до 377, а затем остановите tcpdump. Это должно дать дополнительные подсказки.