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


11

내 서버 중 하나에 이상한 문제가 있습니다. 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입니다.


2
"전용 서버"가 의미하는 바를 명확하게 설명 할 수 있습니까? 실제 하드웨어입니까, 가상 머신입니까?
Shane Madden

전용 서버 = 물리적 하드웨어. 가상 머신이 아닙니다.
충돌 무시

답변:


13

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

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

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

@CrashOverride, -d그렇지 않으면 작동하지 않는 이유를 설명하기 위해 답변을 업데이트 했습니다.
chutz

1
ntpdate -b -u공장!!! 대박. 두 가지 질문이 있습니다. ntpd 데몬이 여전히 실패합니다. 권한있는 포트를 사용하지 않으려면 어떻게해야합니까? 두 번째 질문, 다른 모든 서버가 그렇지 않은 경우이 시스템이 권한있는 포트에서 ntp로 실패하는 이유는 무엇입니까?
충돌 무시

흠, 아마도 내 서버에서 방화벽으로 소스 UDP 포트 123을 차단했을 수 있습니다. 확인 중입니다. 다시 한 번 답변 해 주셔서 감사합니다.
충돌 무시

ntpd 소스 포트를 변경할 수 없음을 설명하는 링크로 업데이트했습니다. 죄송합니다. 해당 링크를 찾는 것 이상을 보지 않았습니다.
chutz

2

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를 중지하십시오. 그것은 더 단서가 될 것입니다.


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.