[server] Linux에서 ntpdate 및 ntpd가 시계를 동기화하지 못함

내 서버 중 하나에 이상한 문제가 있습니다. ntpdntpdate사업에 실패하지만, 쇼에게 전혀 오류를 디버깅하지 않습니다. 처음에는 로컬 또는 네트워크 방화벽이 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모든 refid가 영원히 중단되어 .INIT.동기화 할 수 없습니다.

/ var / lib / ntp / drift는 ntp.conf의 driftfile 설정으로, 다른 모든 시스템과 마찬가지로 chmod 644이며 ntp : ntp가 소유합니다.

12 개의 다른 ntp 시간 서버를 시도하고 iptables 방화벽을 비활성화했으며 데이터 센터가 udp 트래픽을 필터링하지 않는지 확인했습니다. ntpd와 ntpdate가 시계를 동기화하지 못하게하는 아이디어는 무엇입니까?

Intel CPU가있는 전용 서버의 CentOS 6.3 x64입니다.



답변

ntpdate(및 ntpd)는 오프셋이 너무 높으면 시간을 (쉽게) 설정하지 않습니다. 두 응용 프로그램 모두 시간 을 천천히 조정하여 시스템이나 큰 시간 점프를 잘 처리하지 못하는 응용 프로그램을 혼동하지 않도록합니다.

ntpdate -b대신 시도하십시오 . 아무리 불합리하게 보일지라도 시간을 설정합니다.

권한이있는 (<1024) 포트를 사용 -u하지 못하게 하는 플래그 를 추가해야 할 수도 있습니다 ntpdate. 참고 -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

Stratum 1 서버 또는 다른 서버에서 동기화하고 있습니까?

동기화에 적합한 서버는 클라이언트와 서버 간의 통신을 설정할 수 없다는 것을 의미합니다.

이 데이터 세트에서 힌트를 찾을 수 없으면 패킷이 손실되는 위치를 확인하기 위해 tcpdump가 필요할 수 있습니다.

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

ntpd 데몬을 중지했다가 시작하고 도달 범위가 377이 될 때까지 기다린 다음 tcpdump를 중지하십시오. 그것은 더 단서가 될 것입니다.


답변