У меня странная проблема с одним из моих серверов. ntpd
и ntpdate
не работает, но отладка не показывает ошибок вообще. Сначала я подумал, что, может быть, локальный или сетевой брандмауэр блокирует UDP-порт 123, но это не так - этот сервер может связывать UDP-порт 123 (протокол 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 - это параметр driftfile в ntp.conf, который является chmod 644 и принадлежит ntp: ntp, как и все мои другие системы.
Я пробовал дюжину других серверов времени ntp, отключил брандмауэр iptables и подтвердил, что центр обработки данных не фильтрует трафик udp. Есть идеи, что мешает ntpd и ntpdate синхронизировать мои часы?
Это CentOS 6.3 x64 на выделенном сервере с процессором Intel.
Ответы:
ntpdate
(иntpd
) откажется (легко) установить время, если смещение слишком велико. Оба приложения будут стараться медленно корректировать ваше время, чтобы не перепутать вашу систему или любые приложения, которые могут не очень хорошо обрабатывать большие скачки времени.Попробуй
ntpdate -b
вместо этого. Это установит время независимо от того, насколько необоснованным это может показаться.Вам также может понадобиться добавить
-u
флаг, который будет препятствоватьntpdate
использованию привилегированных (<1024) портов. Обратите внимание, что-u
подразумевается под-d
! И это звучит как-d
работает нормально.Если добавление
-u
делает разницу между рабочим и нерабочим, то у вас есть брандмауэр на пути, который вызывает эти проблемы.И, к сожалению , кажется невозможным
ntpd
использовать неограниченный порт .источник
ntpdate -b pool.ntp.org
Результаты:30 Dec 03:00:10 ntpdate[1341]: no server suitable for synchronization found
флаг отладки ntpdate, который-d
будет отображать данные отладки, но не будет фактически синхронизирован, и это работает:ntpdate -d pool.ntp.org
результаты:30 Dec 03:00:55 ntpdate[1343]: step time server 128.10.254.6 offset 228.030338 sec
-d
может работать, а в противном случае это не так.ntpdate -b -u
работает!!! Потрясающие. Два вопроса. Демон ntpd все еще терпит неудачу, как мне заставить это не использовать привилегированные порты? Второй вопрос: ПОЧЕМУ эта машина не работает с ntp на привилегированных портах, когда все остальные мои серверы не работают?Можете ли вы предоставить следующие выводы в pastebin.
Вы синхронизируете с серверов уровня 1 или что-нибудь еще.
Отсутствие сервера, пригодного для синхронизации, означает, что он не может установить связь между клиентом и сервером.
Если мы не можем найти подсказки из этого набора данных, может потребоваться tcpdump, чтобы увидеть, где пакет теряется.
Остановитесь и запустите демон ntpd, подождите, пока охват достигнет 377, а затем остановите tcpdump. Это должно дать дальнейшие подсказки.
источник