Ntpd मेरे सर्वर पर समय को अपडेट क्यों नहीं कर रहा है?


20

मैं अपने सर्वर पर चल रहा है। यह सभी डिफ़ॉल्ट सेटिंग्स है, सिवाय इसके कि मैंने अन्य मशीनों के लिए एक सर्वर होने की अपनी क्षमता पर टिप्पणी की:

# restrict -4 default kod notrap nomodify nopeer noquery                                                                    
# restrict -6 default kod notrap nomodify nopeer noquery   
restrict default ignore

अगर मैं दौड़ता हूं ntpdate -q ntp.ubuntu.com, तो मुझे बताया जाता है कि मेरी मशीन की घड़ी 7 सेकंड से बंद है।

क्या चल रहा है? मैं कैसे पता लगा सकता हूं कि क्या हो रहा है, क्या कोई लॉग है जिसे मैं चालू कर सकता हूं?

अधिक जानकारी # 1

# ntpq -np
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 91.189.94.4     193.79.237.14    2 u   30   64    7  108.518   -0.136   0.361

अधिक जानकारी # 2

जब मैंने प्रश्न पूछा तो यह कैसा लग रहा था:

# ntpdate -q ntp.ubuntu.com
server 91.189.94.4, stratum 2, offset 7.191308, delay 0.13310
10 Jan 20:38:09 ntpdate[31055]: step time server 91.189.94.4 offset 7.191308 sec

और यहाँ यह अब जैसा दिखता है, ntpd को दो बार फिर से शुरू करने के बाद (मैं मान रहा हूँ कि यह तय है):

# ntpdate -q ntp.ubuntu.com
server 91.189.94.4, stratum 2, offset 0.000112, delay 0.13164
10 Jan 20:47:03 ntpdate[31419]: adjust time server 91.189.94.4 offset 0.000112 sec

अधिक जानकारी # 3

मैंने ntp को अनइंस्टॉल किया और Openntpd स्थापित किया और भाग गया /usr/sbin/ntpd -d, और मैं इस तरह से आउटपुट देख रहा हूं:

reply from 64.73.32.134: offset 6.715003 delay 0.041152, next query 30s
reply from 208.53.158.34: offset 6.700224 delay 0.036263, next query 31s
adjusting local clock by 6.734120s
reply from 72.18.205.156: offset 6.708575 delay 0.035885, next query 30s
reply from 64.73.32.134: offset 6.701463 delay 0.044199, next query 33s

जो मुझे बहुत स्पष्ट रूप से इंगित करता है कि मैं अपने सर्वर पर समय निर्धारित करने में सक्षम नहीं हूं (हालांकि, नियमित रूप से ntp के साथ, यह कभी-कभी अद्यतन करने के लिए लगता है ...)।

अधिक जानकारी # 4

मेरा VPS प्रदाता कहता है:

नवीनतम गुठली को आपके सिस्टम को हमारे डोम 0 की घड़ी में लॉक नहीं करना चाहिए, सुरक्षित पक्ष पर होने के लिए आप अपने sysctl.conf में xen.independent_wallclock = 1 सेट कर सकते हैं।

जो मुझे लगता है कि अभी भी सही समय की गणना करने के लिए VPS के लिए उपलब्ध VPS के मुद्दे को संबोधित नहीं किया गया है।


क्या आपकी पूरी कॉन्फिग फाइल है? यदि आप चलाते हैं ntpq -np, तो आउटपुट क्या है?
डेविड मैकिन्टोश

बाकी का विन्यास कहाँ है? आपके होस्ट के लिए समय निकालने के लिए कोई अपस्ट्रीम सर्वर नहीं है।
हारून कोपले

6
समझ गया। ऐसा लगता है कि ntpd सामान्य रूप से काम कर रहा था। एनटीपीडी आपकी घड़ी को धीरे-धीरे सिंक में वापस लाएगा। समय में अचानक बदलाव से कुछ चल रही प्रक्रियाओं के लिए बड़ी समस्याएं पैदा हो सकती हैं, इसलिए एनटीपी धीरे-धीरे समायोजन करने के लिए एक सेकंड की लंबाई को तेज या धीमा करके काम करता है।
एरोन कोपले

1
हां, कर्नेल बूट पर हार्डवेयर घड़ी के साथ शुरू होगा क्योंकि यह केवल संदर्भ है। यदि यह कई महीनों से चल रहा है, जैसा कि आप कहते हैं, तो यह नहीं है। आप NTP को अपनी हार्डवेयर घड़ी से सिंक करने के लिए कह सकते हैं। मुझे उबंटू के बारे में निश्चित नहीं है, लेकिन रेड हैट आधारित सिस्टम पर / etc / sysconfig / ntpd में। आप वहां देख सकते हैं या अपने हार्डवेयर के प्रलेखन को संदर्भित कर सकते हैं।
आरोन कोपले

1
मुझे यह भी नहीं लगता कि आप समझते हैं कि ntpdate एक स्वसंपूर्ण अनुप्रयोग है। इसका ntpd से कोई लेना-देना नहीं है और इसका निवारण करने के लिए इसका उपयोग नहीं किया जाना चाहिए। कारण कि ntpq को peering दिखाने के लिए -p विकल्पों के साथ सुझाव दिया गया था। अगर ntpd आपके सहकर्मी को देखता है, तो उसे सिस्टम को सिंक में वापस लाना चाहिए। हालांकि अब सब कुछ अच्छा लग रहा है। मुझे बस कुछ अतिरिक्त जानकारी प्रदान करने की उम्मीद थी। आशा है कि यह भविष्य में मदद करता है!
आरोन कोपले

जवाबों:


10

आप इसे ntp.conf में जोड़कर ntpd में लॉगिंग सक्षम कर सकते हैं:

logfile /var/log/ntpd.log

स्रोत: एनटीपी मैनुअल

यदि आप ntpd को बंद करते हैं, तो क्या आप कमांड लाइन द्वारा घड़ी को अपडेट कर सकते हैं? यदि आप ntpdate कमांड चलाते हैं और एक त्रुटि प्राप्त करते हैं:

# ntpdate ntp.ubuntu.com
10 Jan 23:47:57 ntpdate[26284]: Can't adjust the time of day: Operation not permitted

इसका मतलब है कि आप शायद एक VPS पर हैं, और उस स्थिति में आप सिस्टम क्लॉक को संशोधित नहीं कर सकते हैं - यह केवल होस्ट मशीन पर किया जा सकता है।


ntpdate अपनी बात करने के लिए खुश है - लेकिन मुझे आश्चर्य है कि अगर मेरा सर्वर रिबूट करता है तो घड़ी हार्डवेयर की घड़ी में रीसेट हो जाती है या कुछ ऐसी चीज?
जॉन बाचिर 20

घड़ी सेट करने के लिए ntpdate का उपयोग करने के बाद, अपने हार्डवेयर घड़ी में "रनिंग" समय को सिंक करने के लिए 'hwclock --systohc' का उपयोग करें। इसे रिबूट पर सिंक करने के लिए माना जाता है, लेकिन अगर आपकी मशीन क्रैश हो जाती है (या अन्यथा एक उचित शटडाउन करने में समस्या थी) तो यह सिंक नहीं कर सकता है।
डेव डॉगर

वैसे यह एक vhost है, इसलिए मेरे पास हार्डवेयर घड़ी तक पहुंच नहीं है (कम से कम मुझे आशा नहीं है!)
जॉन बाचिर

वहाँ एक उत्सर्जित हार्डवेयर घड़ी है जैसा कि वहाँ उत्सर्जित BIOS है।
कीथ स्टोक्स

मैं कई VPS प्लेटफार्मों पर व्यवस्थापक था, उनमें से कोई भी (Openvz, Xen) सिस्टम पर घड़ी सेट करने के लिए उपयोग नहीं करता है। इन सभी को मेजबान स्तर पर किया जाना था। समय के बंद होने का संकेत देने के लिए अपने होस्ट के साथ एक टिकट जमा करें, वे ntp चल रहे होंगे और आपके लिए समय सिंक्रनाइज़ होना चाहिए।
डेव डॉगर

7

ठीक है दोस्तों, इस सवाल को पूछने के बाद से, मैंने डिफ़ॉल्ट विक्रेता (Ubuntu 10.0.4) कॉन्फ़िगरेशन के साथ ntp को फिर से इंस्टॉल किया है और इसे कुछ दिनों के लिए चलने दिया है। इस लेखन के रूप में, यह ntpdate -q ntp.ubuntu.comदर्शाता है कि मेरा समय 0.000216 सेकंड के भीतर सटीक है। इसलिए, मुझे जो समस्याएँ हो रही थीं, वे मेरे कस्टमाइज्ड कॉन्फ़िगरेशन (जहाँ मैं अपने सर्वर को क्वेरी करने के लिए बाहरी मेजबानों के लिए इसे असंभव बनाने की कोशिश कर रहा था, जो मैं पहले से ही अपने फ़ायरवॉल के साथ कर रहा हूँ, इसलिए मैं बहुत चिंतित नहीं हूँ)। यहाँ उबंटू 10.0.4 ntp.conf अपनी संपूर्णता में है, टिप्पणियों को हटा दिया गया है:

driftfile /var/lib/ntp/ntp.drift

statistics loopstats peerstats clockstats
filegen loopstats file loopstats type day enable
filegen peerstats file peerstats type day enable
filegen clockstats file clockstats type day enable

server ntp.ubuntu.com

restrict -4 default kod notrap nomodify nopeer noquery
restrict -6 default kod notrap nomodify nopeer noquery

restrict 127.0.0.1
restrict ::1

मैं यह कैसे सुधार हो सकता है पर प्रतिक्रिया का स्वागत करता हूं।

मैंने अपने वीपीएस प्रदाता के साथ एक टिकट भी बनाया, जिसमें उन्हें सबसे अच्छी बात करने के लिए एक विस्तृत सिफारिश मांगी गई थी। मैंने उन्हें इस धागे की ओर इशारा किया, और कुछ अन्य दस्तावेज़ीकरण ने संकेत दिया कि शायद सीपीयू आवंटन समय की समस्या का कारण होगा। यहाँ उन्होंने कहा:

नवीनतम गुठली को आपके सिस्टम को हमारे डोम 0 की घड़ी में लॉक नहीं करना चाहिए, सुरक्षित पक्ष पर होने के लिए आप अपने sysctl.conf में xen.independent_wallclock = 1 सेट कर सकते हैं। यह सुनिश्चित करेगा कि सर्वर उदाहरण होस्ट सर्वर पर घड़ी का पालन नहीं कर रहा है।

तथा:

मुझे लगता है कि आप उस गलत डिग्री को गलत समझ सकते हैं जिससे यह मुद्दा एनपीटी ग्राहकों को एक वर्चुअलाइज्ड वातावरण में प्रभावित करता है। एक एक्सएमएल होस्ट (जैसे कि रैकस्पेस क्लाउड पर हमारे सेटअप के रूप में) पर एक वर्चुअलाइज्ड सिस्टम पर मेरे अनुभव में एक अत्यधिक सिस्टम पर भी, दूसरे के अंशों में रुकावटों को संसाधित करने के लिए समर्पित सिस्टम क्लॉक न होने के कारण विरासत में मिली अशुद्धि। यह थोड़ी सी असावधानी एनटीपी द्वारा आसानी से प्रबंधित की जाती है, भले ही यह केवल प्रति दिन एक बार सर्वरों को अपडेट करने के लिए सेट हो (या उससे भी कम लगातार)।


4

आपकी एक टिप्पणी कहती है कि आप एक vhost पर चल रहे हैं। इस मामले में, आप शायद ज्यादा सफल नहीं होने जा रहे हैं, क्योंकि आपकी vhost की समय की समझ वास्तविक होस्ट पर दोनों पर निर्भर होने जा रही है, जो चल रहा है और कुल मिलाकर कितना लोकप्रिय है।

उपयोग किए गए वर्चुअलाइजेशन के आधार पर, vhost को निश्चित समय अवधि में इंटरप्ट का एक स्थिर हिस्सा नहीं मिल सकता है। यह घड़ी की गति को तेज या धीमा कर देगा, वास्तव में हो रहा है। चूंकि ntp इस धारणा पर बदलावों को मापने की कोशिश कर रहा है कि आपकी घड़ी बाकी दुनिया की तुलना में तेज या धीमी गति से चलने वाली है, इसलिए यह तेजी से और धीमी गति से चलने से ntp फिट बैठेगा और यह संभवत: बस परिणाम देगा। उस ntp -npसमय सर्वर को दिखाता है जो ntp को अनुपयुक्त मानता है।

आपकी सबसे अच्छी शर्त यदि यह मामला है तो शायद rdate -s $serverहर बार (हर छह घंटे की तरह) एक ब्रूट-फोर्स है, जो अपनी नाक से घड़ी को चारों ओर घुमाता है ताकि सिंक से अधिक बहाव न हो। लेकिन ठीक-ठीक सटीकता शायद पहुंच से बाहर है।


मेरे होस्टिंग प्रदाता (रैकस्पेस क्लाउड) ने मुझे बताया है कि NTP उनके वातावरण में ठीक काम करता है।
जॉन बाचिर

मेरे वीपीएस प्रदाता ने घड़ी के बारे में जो कहा, उसके लिए मेरा प्रस्तुत / स्वीकृत जवाब देखें और समय निर्धारित करने के लिए उपयोग करें।
जॉन बाचिर

स्वचालित rdate घड़ी को पीछे की ओर सेट कर सकता है, जिसमें अप्रत्याशित परिणाम हो सकते हैं।
रकंडबोमेन

4

चीजें जो मैंने अतीत में पाई हैं, जब मैंने ओपनपेंट के बजाय ntpd का उपयोग किया था:

  1. आपको ntpd को ठीक से शुरू करने और वास्तव में सामान करने के लिए लोकलहोस्ट की पहुंच की अनुमति देने की आवश्यकता है

    restrict 127.0.0.1
    restrict ::1
    
  2. यद्यपि आप सर्वर नियमों के लिए होस्टनाम का उपयोग कर सकते हैं, उन सर्वरों के साथ बात करने के लिए बैक अप छेद खोलते हैं, जिनके उपयोग restrictसे आईपी पते की आवश्यकता होती है, इसलिए मैंने वैसे भी हर चीज के लिए आईपी का उपयोग करना समाप्त कर दिया।

  3. आप restrictअपने सर्वर तक वापस पहुँच खोलने का उपयोग करने का उल्लेख नहीं करते हैं। यह एक मुद्दा है। इस तरह के रूप में ब्लॉक का प्रयास करें:

    # ntp.xs4all.nl
    server          194.109.22.18
    restrict        194.109.22.18
    
  4. Ntpd के लिए आपको कई साथियों या सर्वरों की आवश्यकता है, क्योंकि यह खराब अभिनेता से निपटने के लिए बहुमत-नियमों के मतदान का उपयोग करने की कोशिश करता है। 4 की एक न्यूनतम, तब भी जब आप एक को खो देते हैं, तो अधिमानतः 5 हो सकता है।

  5. डिफ़ॉल्ट एक्सेस को लॉक करने के लिए, मैं उपयोग कर सकता हूं:

    restrict default notrust nomodify
    

    के रूप में अभी भी क्वेरी करने में सक्षम होने के लिए, लेकिन मैं का उपयोग कर के restrict default ignoreरूप में आप समाप्त जब ntpd 4.2 का अर्थ बदल गया notrustआह

  6. यदि आप दूसरों को समय-सेवा प्रदान नहीं कर रहे हैं, तो आपको संभवतः नियमित ntpd की पूरी शक्ति की आवश्यकता नहीं है और आपको openntpdइसके बजाय विचार करना चाहिए । OpenBSD चालक दल द्वारा लिखा गया है, यह विशेषाधिकार अलगाव और एक बहुत सरल विन्यास फाइल का उपयोग करके कहीं अधिक न्यूनतम कार्यान्वयन है। यह कथित तौर पर उच्च सटीक समय प्रदान नहीं करेगा जो कि ntpd करेगा, लेकिन यह नियमित सर्वर या वर्कस्टेशन के लिए आसानी से पर्याप्त है।


यह बहुत अच्छी जानकारी है। मैं Openntpd की जाँच कर रहा हूँ। प्रश्न: क्या आप उन अन्य लोगों से सहमत या असहमत हैं जो दावा करते हैं कि घड़ी को वीएचएस पर सेट करना असंभव है?
जॉन बाचिर

: और शायद आप इस सवाल का जवाब कर सकते हैं serverfault.com/questions/223511/...
जॉन Bachir

मुझे समझ नहीं आ रहा है कि आप अपने विभिन्न restrictनियमों के साथ क्या कह रहे हैं ... क्या उन नियमों को प्रभावित करता है जो मैं समय के लिए भी सर्वर को क्वेरी कर सकता हूं? मैंने सोचा कि यह केवल प्रभावित होता है जो मुझे समय के लिए पूछ सकता है।
जॉन बाचिर १11

1
यहाँ एक विचार है: अपने जवाब को टिप्पणियों के साथ एक पूर्ण न्यूनतम ntp.conf फ़ाइल में बदलना चाहते हैं? :-)
जॉन बाचिर

जब तक आप हमेशा कम से कम एक सीपीयू के साथ निर्धारित होने की गारंटी नहीं देते, तब तक vhost पर घड़ी सेट करना गलत है, अन्यथा अन्यथा बाहरी दुनिया के समय से मेल नहीं खाता। Dom0 को समय बनाए रखना चाहिए। दूसरे प्रश्न का उत्तर अच्छा है। NTP, UDP है, इसलिए आपको उन सर्वर से पैकेट को अनुमति देने की आवश्यकता होती है जिन्हें आप समय के लिए क्वेरी करते हैं। मेरा ntpd बासी है क्योंकि मैं कुछ साल पहले OpenNTPD में चला गया था।
फिल पी १

3
  • यदि ntpd दूरस्थ सर्वर से जुड़ने में सक्षम नहीं होगा, तो आपको उस सर्वर के लिए एक ऑफसेट दिखाई नहीं देगा।
  • यदि ntpq को ntpd द्वारा अवरुद्ध किया जाएगा, तो आपको ntpq से एक स्पष्ट त्रुटि संदेश दिखाई देगा।
  • यदि कुछ अन्य सेवा भी समय निर्धारित करेगी (जैसे vmware उपकरण), तो आपको सर्वर के लिए एक जंपिंग ऑफ़ दिखाई देगा (प्रत्येक 70 सेकंड में ntpq -p चलाएँ)।

reach 7में ntpq उत्पादन संकेत दिया, कि तुम ntpd जाने केवल लगभग 4 मिनट के लिए चलाते हैं। 7 111 बाइनरी है, जिसका अर्थ है कि सर्वर 3 बार पहले ही पहुंच गया था। एनटीपी हर 64 सेकंड ( pollमूल्य) तक पहुंचता है और whenअंतिम संपर्क के बाद पहले से ही 30 सेकंड ( मूल्य) का इंतजार करता है ।

offset -0.136संकेत दिया, कि सिस्टम पहले से ही समन्वयित है। केवल ntpd ने स्रोत के रूप में सर्वर को चिह्नित नहीं किया है, फिर भी। बस इसे और समय दें और एक छोटा तारा दिखाई देगा।

तो, वास्तव में आपका ntpd सिंक कर रहा था। लेकिन ntpd आमतौर पर एक बड़ी छलांग (जैसे ntpdate) में सिंक नहीं करता है, लेकिन धीरे-धीरे समय को समायोजित करने की कोशिश करता है और कई चक्रों को सुनिश्चित करता है, कि समय स्थिर है।

पुनश्च: मुझे पता है, कि प्रश्न बहुत पुराना है। लेकिन मुद्दा कालातीत है। और अन्य सभी जवाब केवल IMHO को गुमराह कर रहे हैं। समय को सिंक में रखने के लिए VMWare द्वारा ntpd की भी सिफारिश की जाती है।


महान पहला जवाब, रॉबर्ट। साइट पर आपका स्वागत है।
कुबंझक

1

मैंने अपने सिस्टम को बंद कर दिया और हैरान हो गया कि क्यों एचडब्ल्यू घड़ी एक साफ शटडाउन पर सिस्टम घड़ी के साथ सिंक नहीं कर रही थी। लगता है कि sysconfig में एक NTP सेटिंग है जिसे ऐसा करने के लिए संपादन की आवश्यकता है।

इन /etc/sysconfig/ntpd:

# Set to 'yes' to sync hw clock after successful ntpdate
SYNC_HWCLOCK=no

मैंने उसे सेट किया yes। निश्चित रूप से पहले यह सत्यापित करें कि आपके पास एक ठोस NTP सर्वर है और आपका सिस्टम क्लॉक विश्वसनीय है।

मुझे पता था कि यह था - मेरा तिरछा 47 सेकंड था और मेरी एचडब्ल्यू घड़ी भी 47 सेकंड की थी। बिंगो! मेरा पहला सुराग केर्बरोस विफलताओं के लॉग में देखा गया था। कर्बेरोस और कई एनएएस बस काम नहीं करेंगे अगर घड़ी तिरछा बहुत बढ़िया है।

आपका दिन शुभ हो!


1
स्नैप .. कि RHEL / Centos प्रासंगिक है। शायद उबंटू नहीं।
वेन स्वेट


0

हाई ..

इस संदर्भ पर एक नज़र डालें कि क्या यह आपकी समस्या के निवारण में सहायता कर सकता है:

http://www.linuxhomenetworking.com/wiki/index.php/Quick_HOWTO_: Ch24 : _The_NTP_Server

आप अपनी ntpd.conf फ़ाइल की सामग्री पोस्ट करना चाहते हैं, ntpq -p जैसी डिबग कमांड का आउटपुट

और अपनी तिथि / समय जांचें?

और इसे भी सत्यापित करें, ntpdate और स्टार्टअप ntpd चलाएं, क्या सिंक में समय है?

शुभकामना सहित

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.