ntpdate và ntpd không đồng bộ hóa đồng hồ trên Linux


11

Tôi có một vấn đề lạ với một trong những máy chủ của tôi. ntpdntpdatekhông hoạt động, nhưng gỡ lỗi cho thấy không có lỗi nào cả. Lúc đầu, tôi nghĩ có thể tường lửa cục bộ hoặc mạng đã chặn cổng UDP 123, nhưng đó không phải là trường hợp - máy chủ này có thể nói chuyện cổng UDP 123 (giao thức ntp) với Internet và nhận câu trả lời.

Hãy để tôi chứng minh vấn đề.

date -s "30 DEC 2012 02:30:00" - hoạt động, vì vậy tôi có thể đặt đồng hồ thành công mà không gặp lỗi.

ntpq -pn pool.ntp.org - hoạt động, tôi nhận được dữ liệu thời gian chi tiết từ máy chủ thời gian và chứng minh các gói UDP đang hoạt động.

ntpdate -d pool.ntp.org - Chế độ gỡ lỗi hoạt động, hiển thị một tấn dữ liệu gỡ lỗi và hiển thị thời gian bù hiện tại: 30 Dec 02:38:56 ntpdate[19267]: step time server 208.97.140.69 offset 228.234554 sec

Tất cả trông bình thường, cho đến khi: ntpdate pool.ntp.org- sau khi tạm dừng 4,7 giây, nó sẽ trả về: 30 Dec 02:41:29 ntpdate[19274]: no server suitable for synchronization found

Vấn đề tương tự đang chạy ntpd, nó không cập nhật đồng hồ.

Sau khi ntpd được bắt đầu, ntpq -pnkết quả là tất cả các phản hồi sẽ bị kẹt mãi mãi .INIT., điều đó có nghĩa là chúng không thể đồng bộ hóa.

/ var / lib / ntp / drift là cài đặt driftfile trong ntp.conf, là chmod 644 và được sở hữu bởi ntp: ntp, giống như tất cả các hệ thống khác của tôi.

Tôi đã thử hàng tá máy chủ thời gian ntp khác, tường lửa iptables bị vô hiệu hóa và xác nhận trung tâm dữ liệu không lọc lưu lượng udp. Có ý tưởng nào ngăn ntpd và ntpdate đồng bộ hóa đồng hồ của tôi không?

Đây là CentOS 6.3 x64 trên một máy chủ chuyên dụng có CPU Intel.


2
Bạn có thể làm rõ ý của bạn về "máy chủ chuyên dụng" - đó là phần cứng vật lý hay máy ảo?
Shane Madden

Máy chủ chuyên dụng = phần cứng vật lý. KHÔNG phải là máy ảo.
cố ghi đè

Câu trả lời:


13

ntpdate(và ntpd) sẽ từ chối (dễ dàng) đặt thời gian nếu độ lệch quá cao. Cả hai ứng dụng sẽ cố gắng từ từ điều chỉnh thời gian của bạn, để không gây nhầm lẫn cho hệ thống của bạn hoặc bất kỳ ứng dụng nào có thể không xử lý tốt các bước nhảy thời gian lớn.

Hãy thử ntpdate -bthay thế. Nó sẽ đặt thời gian cho dù nó có vẻ vô lý như thế nào.

Bạn cũng có thể cần thêm -ucờ, điều này sẽ ngăn việc ntpdatesử dụng các cổng đặc quyền (<1024). Lưu ý rằng -uđược ngụ ý bởi -d! Và có vẻ như -dlà làm việc tốt.

Nếu việc thêm vào -utạo ra sự khác biệt giữa làm việc và không làm việc, thì bạn có một tường lửa trên đường gây ra những vấn đề này.

Và thật không may , dường như không thể ntpdsử dụng một cổng không bị hạn chế .


Vẫn thất bại. ntpdate -b pool.ntp.orgkết quả: 30 Dec 03:00:10 ntpdate[1341]: no server suitable for synchronization foundCờ gỡ lỗi ntpdate -dsẽ hiển thị dữ liệu gỡ lỗi nhưng không thực sự đồng bộ hóa và hoạt động: ntpdate -d pool.ntp.orgkết quả:30 Dec 03:00:55 ntpdate[1343]: step time server 128.10.254.6 offset 228.030338 sec
Ghi đè sự cố

@CrashOverride, tôi đã cập nhật câu trả lời của mình để cố gắng giải thích tại sao -dcó thể hoạt động trong khi nếu không thì không.
chutz

1
ntpdate -b -ulàm!!! Tuyệt vời. Hai câu hỏi. Trình nền ntpd vẫn không thành công, làm thế nào để tôi không sử dụng các cổng đặc quyền? Câu hỏi thứ hai, TẠI SAO máy này không hoạt động với ntp trên các cổng đặc quyền khi tất cả các máy chủ khác của tôi không hoạt động?
Ghi đè sự cố

Humm, có thể có một tường lửa chặn cổng UDP 123 từ máy chủ của tôi. Kiểm tra mà. Một lần nữa, cảm ơn câu trả lời của bạn.
Ghi đè sự cố

Tôi đã cập nhật với một liên kết để giải thích rằng không thể thay đổi cổng nguồn ntpd. Xin lỗi, tôi đã không nhìn xa hơn là tìm liên kết đó.
chutz

2

Bạn có thể cung cấp các đầu ra sau đây trong 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

Bạn đang đồng bộ hóa từ tầng 1 máy chủ hay bất cứ thứ gì khác.

Không có máy chủ nào phù hợp để đồng bộ hóa có nghĩa là những gì nó nói, rằng giao tiếp giữa máy khách và máy chủ không thể được thiết lập.

Nếu chúng ta không thể tìm thấy manh mối từ bộ dữ liệu này, tcpdump có thể được yêu cầu để xem gói tin bị mất ở đâu.

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

Dừng lại và bắt đầu ntpd daemon và đợi cho đến khi đạt đến 377 và sau đó dừng tcpdump. Điều đó sẽ cung cấp thêm manh mối.


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.