ntp-kommandon. Konfigurera NTP-tidssynkronisering med grupprincip

På Internet kan du hitta ett helt hav av manualer för att sätta upp en tidsserver - ntpd, men ironin är att 95% av dem antingen inte är helt korrekta, och författarna märker inte ens detta, eller gör inte ge nödvändig information. Därefter kommer jag att berätta hur du organiserar en NTP-server under Linux i lokalt nätverk, som kommer att synkronisera sin tid med servrar på Internet, och enheter på det lokala nätverket kommer redan att synkronisera tiden med den.

Lite före historien. Som väntat började det hela oväntat, servern som jag satte upp kvällen innan, vid nästa uppstart, kraschade den. "Underbart" tänkte jag och kom in i loggarna ... Som ett resultat var ntpd-tjänsten skyldig till vis-servern, som på grund av felaktiga nätverksinställningar inte kunde kontakta den externa servern för synkronisering. När jag tittade på startskriptet hittade jag ett intressant inlägg:

start() ( readconf; if [ -n "$dostep" ]; then gprintf $"Synkroniseringstid för ntpd: " # försök hårt, vissa nätverk/långsamma maskiner/... tar ett tag att ha DNS lokal triesleft=7 medan [ $triesleft -gt 0 ]; do /usr/sbin/ntpdate -s -b $NTPDATE_OPT $tickers RETVAL=$? [ $RETVAL -eq 0 ] && break triesleft=$(($triesleft-1)) sov 1 klar unset försök vänster [ $RETVAL -eq 0 ] && framgång || misslyckande echo if [ $RETVAL -eq 0 ]; sedan [ "$SYNC_HWCLOCK" = "yes" ] && sync_hwclock else OPTIONS="$OPTIONS -g" fi else # - g kan ersätta grepet för tidsservrar # eftersom det tillåter ntpd att överträda sin 1000-talsgräns en gång.OPTIONS="$OPTIONS -g" fi # Starta daemons.gprintf $"Startar $prog: " daemon ntpd $OPTIONS RETVAL=$?echo [ $RETVAL -eq 0 ] && tryck på /var/lock/subsys/ntpd return $RETVAL )

Och nu uppmärksamma raden med nummer 8. Detta är början på en cykel där ett försök kommer att göras så många som 7 gånger för den initiala, grova tidssynkroniseringen. Allt skulle vara bra, men om ditt nätverk eller DNS är felaktigt konfigurerat kommer det att göra att servern fryser i 7 * (1 + DNS-tillgänglighetskontrolltid, cirka 5 sekunder) sekunder. I allmänhet passade jag uppenbarligen inte att vänta en minut, så låt oss börja.

Ställa in den initiala, grova synkroniseringen

Den underbara filen /etc/ntp/step-tickers lagrar namnen på servrarna mot vilka de initiala, grova (hundratals millisekunder) justeringarna görs. Om du är säker på att du alltid kommer att ha tillgång till Internet kan du lista servernamn i det, till exempel:

Men om du inte har någon anslutning till Internet vid tidpunkten för den första laddningen av servern, kommer detta under vissa förhållanden att få konsolen att frysa ett bra tag. länge sedan. Det var därför jag raderade alla poster därifrån. I slutändan kan jag manuellt göra en grov tidsjustering. Det finns ett annat alternativ att leka med alternativen och justera startskriptet, men det här är inte mitt sätt. Därför fortsätter vi direkt med att sätta upp en fullfjädrad NTP-server, som kommer att synkronisera sin tid med offentliga servrar på Internet och tillhandahålla den till medlemmar i det lokala nätverket om det behövs.

En uppgift: Organisera en NTP-server på det lokala nätverket som kommer att synkronisera sin tid med Internet, och enheter på det lokala nätverket kommer redan att synkronisera tiden med den.
Distribution: Mandriva 2010.2 gratis ntpd-version: 4.2.4p8

Konfigurera NTPD

Linuxvärlden är riktigt bra, alla inställningar i den beror på enkel redigering konfigurationsfiler. ntpd är inget undantag i detta avseende. Så om du inte har en ntpd-server ännu, installera den:

De som vill kan kompilera från källan, eller installera det på annat sätt, men mina avgifter inkluderar att visa hur man ställer in detta mirakel, eftersom du kan hitta ett helt hav av manualer för att ställa in ntpd på Internet, men ironin är att 95 % av dem antingen inte är helt korrekta (och författarna märker inte ens detta när de ringer till statusarna) eller så ger de inte den nödvändiga informationen. Så filen med inställningarna lagras i /etc/ntp.conf, minimiinställningarna är ungefär så här:

server 0.ru.pool.ntp.org server 1.ru.pool.ntp.org server 2.ru.pool.ntp.org server 3.ru.pool.ntp.org

Varje rad indikerar en server (listor över servrar finns här http://www.pool.ntp.org) med vilken synkronisering kommer att ske. Fyra rader med server respektive fyra servrar. Fast faktiskt detta exempel detta är inte helt sant. Varje ingång pekar på en pool (grupp) av servrar. När du kontaktar, säg, på adressen 2.ru.pool.ntp.org, väljs 1 IP-adress för servern som synkroniseringen ska ske med. Matcher uppdateras en gång i timmen. Nu till ett enklare exempel. Totalt har vi 4 lådor med klockor. Vi tar och tar slumpmässigt ut 1 klocka från varje låda, totalt får vi 4 timmar, som vi kommer att jämföra vår tid med. I en timme, varje gång vi kollar tiden, tar vi samma klocka. Om en timme, om vi vänder oss till dessa lådor igen, kommer vi att ta fram en annan klocka. Således kommer vår tid ständigt att kontrolleras mot olika klockor, och om några av dem visar sig inte fungera, kommer inget hemskt att hända, för om 1 timme kommer vår lokala klocka inte att gå ur synk för mycket. Nåväl, vi avviker, låt oss fortsätta. Innan du startar ntpd-servern måste du göra en inledande, grov tidsinställning. Du kan helt enkelt ställa in tiden manuellt, eller så kan du utföra kommandot (naturligtvis om vi har en korrekt anslutning till Internet):

Efter att tiden är ungefär synkroniserad kan du starta huvudtjänsten (ifall du kan starta om den):

Sedan kör vi kommandot:

Som ett resultat bör du se något som:

remote refid st t när omröstningsräckvidd fördröjning offset jitter ======================================= == ===================================== mx.kr-pro.ru 62.149.0.30 2 u 26 64 1 22.416 77.711 0,001 phobos.bsys-net 192.36.143.151 2 u 25 64 1 32.994 64.937 0.001 webhost.mitht.r 77.105.134.138 3 u 25 64 1 68.134 37.119 0.001 hornet.itconnec 77.233.172.7 3 u 24 64 1 58.604 38.047 0.001

En liten förklaring av vad som är vad. fjärr - FQDN eller IP-adress för servern; refid - IP-adressen för servern som servern för närvarande synkroniserar med från fjärrkolumnen; st - serverskikt; t - serverdriftsläge: "u" - unicast, "m" - multicast, "b" - broadcast, "-" - manycast; när - tiden förflutit sedan det senaste serversvaret i sekunder eller "-" om servern ännu inte har svarat (mest troligt har den "dött", och det är dags att ta bort information om det från konfigurationsfilen); poll - server polling intervall i sekunder (det har ett litet värde efter start, så att synkronisering sker snabbare, värdet ökar med tiden); räckvidd - statusen för de senaste åtta försöken att begära tid från servern i oktal representation (vid ett framgångsrikt försök ställs motsvarande bit in); fördröjning - serversvarsfördröjning i sekunder; offset - det viktigaste värdet är skillnaden mellan den lokala tiden och tiden på servern (med tiden minskar värdet, eftersom tiden blir mer exakt); jitter - dispersion, fasjitter (mer låga värden ger mer exakt synkronisering). Vi väntar 10 minuter. Vi upprepar kommandot och ser:

remote refid st t när omröstningsräckvidd fördröjning offset jitter ======================================= == *mx.kr-pro.ru 62.117.76.142 2 U 5 64 377 20.558 38.662 19.060 + fobos.bsys-net 192.36.143.151 2 u 6 64 377 17.726 38.447 15.132 -Webhost.Mitht.R 77.105.134.138 3 U 4 64 377 66.744 13.451 16.257.172.7 3 U 11 64 377 57,291 43,556 13,327

Ja, här är det, alla möjliga ytterligare tecken har dykt upp och detta är vad de betyder: "*" - servern med vilken synkronisering för närvarande utförs, "#" - servern är vald för synkronisering, men avståndet till den överskrider det högsta möjliga, "?" - servern är vald för synkronisering och använder PPS-signalen, "+" - servern läggs till i listan över servrar som valts för synkronisering, "x" - servern använder en felaktig algoritm, "." - servern väljs från slutet av listan över servrar som valts för synkronisering, "-" - servern avvisas av grupperingsalgoritmen, utrymme - servern har ett för högt stratum och/eller kan inte kontrolleras; Nu, på ett enkelt sätt, om vi ser "+", "-", "*" har synkroniseringen startat. offset - avvikelsen för vår tid och tiden för fjärrservern, om värdet är, säg, mer än 100, så hände inte synkroniseringen riktigt. På vissa resurser kan du se följande bild:

remote refid st t när omröstningsräckvidd fördröjning offset jitter ====================================== == =================================== 172.22.128.8 93.185.187.89 3 u 142 256 377 3.906 -450.41 61.93 195.200.216.16 .INIT. 16 u - 64 0 0,000 0,000 0,000 ams1.x31.com .INIT. 16 u - 64 0 0,000 0,000 0,000 mail2.mgts.by .INIT. 16 u - 64 0 0,000 0,000 0,000 *LOCAL(1) .LOCL. 3 l 13 64 377 0,000 0,000 3,906

Vi ser att hälften av servrarna (2, 3, 4) inte fungerar alls och faktiskt fungerar med den lokala servern och med 172.22.128.8. Vi tittar på offsetvärdet som säger att det inte finns någon synkronisering alls! Från listningen kan endast en slutsats dras att servern är synkroniserad med sig själv, och dess tid har lite att göra med den faktiska. Var försiktig, låt mig inte lura dig :) Vi skulle kunna sluta med det här, men nu, som de säger, komplicerar vi uppgiften. Vi vill att vår server ska vara en källa till tid för det lokala nätverket, men samtidigt kan ingen göra något fel med din server. Vad är problemet? Att för normal synkronisering, även om du inte planerar att låta någon synkronisera tiden med dig, MÅSTE DU ha öppen port udp 123. Efter att ha läst många manualer och en dag av förlorad tid, är detta vad jag fick i /etc/ntp.conf:

01 # Offentliga NPS-servrar, från vi får tid 02 server 0.ru.pool.ntp.org 03 server 1.ru.pool.ntp.org 04 server 2.ru.pool.ntp.org 05 server 3.ru.pool .ntp.org 06 server 0.europe.pool.ntp.org 07 server 1.europe.pool.ntp.org 08 09 # För all annan åtkomst nekad 10 begränsa standard ignorera 11 12 # Offentliga NPS-servrar kan inte kontrollera våra lokala server 13 begränsa 0.ru.pool.ntp.org nomodify notrap 14 begränsa 1.ru.pool.ntp.org nomodifiera notrap 15 begränsa 2.ru.pool.ntp.org nomodify notrap 16 begränsa 3.ru.pool.ntp. org nomodify notrap 17 restrict 0.europe.pool.ntp.org nomodify notrap 18 restrict 1.europe.pool.ntp.org nomodify notrap 19 20 # Vår server tillhandahåller NTP-tjänst för lokala nätverk, 21 # och klienter kan inte kontrollera vår lokal server 22 begränsa 192.168.0.0 mask 255.255.0.0 nomodify notrap nopeer 23 24 # Behov av loopback-synkronisering, utan det fungerar inte 25 begränsa 127.0.0.1 nomodify notrap

Vi går noga in i det. Vår server är synkroniserad med 6 externa serverpooler, rad 02 till 07. Rad 10, vi förbjuder någon att göra något med vår server. Nu måste vi göra ett undantag för de servrar som vår server kommer att synkroniseras med, rad 13 till 18. Samtidigt indikerar nomodify notrap-parametrarna att det är förbjudet att ändra tillståndet på VÅR server och skicka undantagsmeddelanden med EXTERNAL servrar, dvs så att ingen av dessa servrar gjorde något. Linje 22 låter vi medlemmar i det lokala nätverket synkronisera tid med vår server, men samtidigt inför vi också en begränsning. Nu är den viktigaste linjen 25, låt oss anta att detta är en lokal loop. Det kommer inte att fungera utan det. Som ett resultat är vår server synkroniserad med externa servrar, medan den själv är en server, men endast för vårt lokala nätverk nekas åtkomst för alla andra. Låt oss starta om tjänsten igen:

Låt oss röka, dricka te, kaffe (understryka efter behov) och kör sedan kommandot:

remote refid st t när omröstningsräckvidd fördröjning offset jitter ====================================== == *mx.kr-pro.ru 62.117.76.142 2 U 5 64 377 20.558 38.662 19.060 + fobos.bsys-net 192.36.143.151 2 u 6 64 377 17.726 38.447 15.132 -Webhost.Mitht.R 77.105.134.138 3 U 4 64 377 66.744 13.451 16.257.172.7 3 U 11 64 377 57.291 43.556 13.327 +sinister.wzw.tu 129.69.1.153 2 a

Vi ser att vår server är synkroniserad, avvikelsen överstiger inte 50ms. NTPD-inställningen är nästan densamma för alla Xnix-system, och skiljer sig i huvudsak bara i hur den lanseras. Jag råder alla att också läsa artikeln där konfigurationsalternativet för FreeBSD beskrivs. http://www.sergeysl.ru/freebsd-ntpd/ Det är faktiskt allt.


Tidssynkronisering är en viktig uppgift, även om inte många har tänkt på det. Tja, vad är det för fel med att springa iväg på servertiden? Visste du att många klockproblem påverkar protokoll relaterade till kryptografi? Av denna anledning kommer en klockskillnad på mer än 5 minuter i Active Directory att resultera i Kerberos-autentiseringsproblem.

timnivåer. Strata.

För att förstå en NTP-enhet bör du känna till konceptet skikt eller skikt. Auktoritativa tidskällor som GPS-satelliter, cesium-atomklockor, WWVB-radiovågor - allt detta skikt 0. De är auktoritativa på grund av att de har något sätt att upprätthålla mycket exakt tidtagning. Du kan naturligtvis använda vanliga kvartsklockor, men med vetskapen om att det är lätt att förlora 15 sekunder med dem på en månad är det bättre att inte använda dem som ett tidsmått. Stratum 0 det är när en sekund inte går förlorad på 300 000 år!

Datorer som direkt (inte över nätverket!) tar tid från skikt 0- det här skikt 1. Eftersom det alltid finns förseningar på grund av signalöverföring och kostnader för inställning av tid, datorer skikt 1 inte så exakt som skikt 0, men i verkligheten når skillnaden ett par mikrosekunder (1 µs = 10 -6 s), vilket är en ganska acceptabel avvikelse.

Nästa nivå av datorer tar tid över nätverket från skikt 1- det är... trumrulle... intriger... skikt 2! Återigen, på grund av olika förseningar (nätverk säkert), skikt 2 en bit efter skikt 1 och säkert från skikt 0. I praktiken sträcker sig denna skillnad från några mikrosekunder (1 µs = 10 -6 s) till några millisekunder (1 ms = 10 -3 s). Många vill inte synka med lagret längre skikt 2.

Som framgår av diagrammet, skikt 4 tar tid från överordnade skikt 3. skikt 5skikt 4 etc. skikt 16 anses vara det lägsta lagret och tid anses vara där osynkroniserad.

För att synkronisera tiden med NTP-protokollet måste du först ställa in din tid manuellt. Mer än 1000 sekunders skillnad mellan din exakta tid och din klocka är inte tillåten. Om tidsservern du använder ligger i mer än 1000 millisekunder (1 sekund), kommer den att tas bort och andra kommer att användas istället. Denna mekanism låter dig filtrera bort dåliga tidskällor.

Tid klient.

I filen /etc/ntp.conf är serverraderna viktiga för klienten. Det kan vara flera - upp till 10 stycken!

Hur mycket ska man lägga till? Kom ihåg:

  • Om du bara har en server (en serverlinje), om den här servern börjar ljuga, kommer du blint följa den. Om hans tid går ut med 5 sekunder och du springer efter honom.
  • Om 2 servrar läggs till (2 serverrader) kommer NTP att markera båda som falska ticker. Om en av dem ljuger, kan NTP inte förstå vem som ljuger, eftersom det inte finns något kvorum.
  • Om 3 eller fler tidsservrar läggs till, kan en lögnare beräknas falska ticker. Om det finns 5 eller 6 tidsservrar kan du hitta 2 lögnare falska ticker. Om det finns 7 eller 8 servrar, då 3 falska ticker. Om det finns 9 och 10 servrar, då 4 falska ticker.

NTP Pool-projekt.

Det finns ett sådant projekt NTP Pool på adressen till vilken pool.ntp.org/zone/ru/ du kan hitta tidsservrar som rekommenderas för ryska användare.

server0.ru.pool.ntp.org
server1.ru.pool.ntp.org
server2.ru.pool.ntp.org
server3.ru.pool.ntp.org

Operativsystem som Debian och Ubuntu erbjuder användarna sina egna tidsservrar.

server0.debian.pool.ntp.org
server1.debian.pool.ntp.org
server2.debian.pool.ntp.org
server3.debian.pool.ntp.org

server0.ubuntu.pool.ntp.org
server1.ubuntu.pool.ntp.org
server2.ubuntu.pool.ntp.org
server3.ubuntu.pool.ntp.org

Om du anropar ntpq -pn på din Linux-maskin som använder NTP

Remote refid st t när omröstningsräckvidd fördröjning offset jitter ========================================= ====================================+93.180.6.3 77.37.134.150 2 u 62 1024 377 53.658 - 0,877 1,174 +85,21,78,23 193,190,230,65 2 U 1027 1024 377 54,651 0,167 1,531 * 62.173.138.130 89.109.251.24 2 U 940 1024 377 52,796 -0,143 1,001 +91,206.16.3 194.190.168.1 2 u 258 1024 377 93.882 -0,680 2.196 - 91.189.94.4 193.79.237.14 2 u 596 1024 377 100.219 1.562 1.482

Vad säger kolumnnamnen?

  • avlägsen- fjärrservrar som du synkroniserar tiden med.
  • refid- överlägsen stratum för denna server.
  • st- stratumnivå. Från 0 (ej tillgängligt för oss) till 16 (inte önskvärt för oss). Idealisk - 2.
  • t- kopplingstyp. " u"- unicast eller manycast," b"-broadcast eller multicast," l"lokal referensklocka", s" - symmetrisk nod," A" - Manycast-server, " B"-broadcast server," M"- multicast-server.
  • när- tiden då servern senast svarade oss. Parametern visar siffran i sekunder, men kan vara i minuter om siffran är det m eller timmar om h.
  • opinionsundersökning- pollingfrekvens. Minst 16 sekunder, max 32 timmar. Antalet måste vara 2 n . Vanligtvis i denna parameter finns antingen 64 sekunder eller 1024.
  • - En 8-bitars oktett som indikerar status för kommunikation med fjärrtidsservern: framgång eller misslyckande. Om bitarna är inställda, då framgång, annars misslyckande. Värdet 377 är binärt 0000 0000 1111 1111.
  • dröjsmål- värdet i millisekunder visar tiden mellan att skicka och ta emot ett svar (tur- och returtid - RTT).
  • offset- förskjutning i millisekunder mellan dig och tidsservrarna. Kan vara positivt eller negativt tal.
  • skaka- ett absolut värde i millisekunder som indikerar standardavvikelsen för din offset.

Före IP-adressen för NTP-servern finns det en symbol - det här är stämma kod. Typer stämma kod:

  • " " - kasseras som ogiltig. Det finns till exempel ingen koppling till honom eller så är han offline, han är för hög i rang och tjänar inte människor som du.
  • "x"- kasseras av "skärningsalgoritmen". Skärningsalgoritmen förbereder en lista över kandidatpartners som kan bli synkroniseringskällor och beräknar ett konfidensintervall för var och en av dem.
  • "." - tappade på grund av bordspill.
  • "-" - kasseras av klusteralgoritmen. Klustringsalgoritmen sorterar listan med kandidater efter lagerkoder och synkroniseringsavstånd.
  • "+" - servern är aktiverad av "kombinationsalgoritmen". Denna server är en bra kandidat om din nuvarande tidsserver börjar svika dig.
  • "#" - Servern är en utmärkt alternativ tidsserver. Servern med # kan bara ses om du har fler än 10 serverposter i /etc/ntp.conf
  • "*" - aktuell tidsserver. Dess avläsningar används för att synkronisera dina klockor.
  • "o"- Puls per sekund (PPS) server. Detta innebär vanligtvis att denna tidsserver använder tidskällor som GPS-satelliter och andra exakta tidssignaler. Om ritad handla om, då kommer andra typer av tallykod inte längre att visas.

I fält refid kan vara följande värden:

  • IP-adress - adress till fjärrtidsservern.
  • .ACST.- NTP manycast-server.
  • .ACTS.- Automated Computer Time Service från American National Institute of Standards and Technology.
  • .AUTH.- autentiseringsfel.
  • .AUTO - fel i autoknappsekvenser.
  • .BCST.- NTP-sändningsserver.
  • .CHU.- Kortvågsradiomottagare från CHU-stationen i Ottawa, Ontario, Kanada.
  • .CRYPT - Autokey-protokollfel.
  • .DCFx.- LF radiomottagare från station DCF77 i Mainflingen, Tyskland.
  • .NEJ.- Åtkomst nekad.
  • .GAL.-Europeisk Galileo satellitmottagare.
  • .GOES.- Amerikansk geostationär operationell miljösatellitmottagare.
  • .GPS.-American Global Positioning System-mottagare.
  • .HBG.- LF radiomottagare från HBG station i Prangins, Schweiz.
  • .INIT.- Peer association initierad.
  • .IRIG.- Inter Range Instrumentation Group tidskod.
  • .JJY.- LF-radiomottagare från JJY Station vid Mount Otakadoya, nära Fukushima eller Mount Hagane på Kyushu Island, Japan.
  • .LFx.- Vanlig LF radiomottagare.
  • .LOCL. - värdens lokal klocka.
  • .LORC.- LF radiomottagare från Long Range Navigation (LORAN-C).
  • .MCST.- NTP multicast-server.
  • .MSF.- Anthorn Radio Station nära Anthorn, Cumbria.
  • .NIST.-American National Institute of Standards and Technology.
  • .PPS.- klocka Puls per sekund.
  • .PTB.- Physikalisch-Technische Bundesanstalt från Brunswick och Berlin, Tyskland.
  • .RATE.- NTP-avfrågningströskeln har överskridits.
  • .STEP.- ändra NTP-steget. Partiskhet offset mindre än 1000 millisekunder, men mer än 125 millisekunder.
  • .TDF.- LF-radiomottagare från TéléDiffusion de France-stationen i Allouis, Frankrike.
  • .TIME.- Timeout för NTP-association.
  • .USNO.- United States Naval Observatory.
  • .WWV.- HF-radiomottagare från WWV-stationen i Fort Collins, Colorado, USA.
  • .WWVB.- LF-radiomottagare från WWVB-stationen i Fort Collins, Colorado, USA.
  • .WWVH.- HF-radiomottagare från WWVH-stationen i Kekaha, på ön Kauai på Hawaii, USA.

Först, bli av med tanken på hur man får tid från skikt 1, de säger att de är närmast den exakta tiden. De är närmare den mest exakta tiden på planeten, bara de själva är överbelastade och har höga RTT-fördröjningar för vanliga servrar. Bäst att hitta en normal skikt 2 och oroa dig inte för det. Glöm inte att vi pratar om mikrosekunder och millisekunder, vilket i det vanliga livet räcker.

För det andra, kom ihåg att det inte alltid är idealiskt att ansluta till närmaste tidsserver. Viktigare är inte territoriell närhet, utan nivån på stratum. NTP Pool-projektet publicerar en lista över servrar endast på nivån skikt 1 Och skikt 2 och det är bättre att ta upp till 10 tidsservrar från denna lista, vilket kommer att bli helt underbart.

För det tredje, om du är en enkel hemklientanvändare, kommer de servrar som rekommenderas för dig i ditt operativsystem att vara ett idealiskt alternativ som inte kräver extra gester.

För stora kontor det bästa alternativet det kommer att ske en höjning av tidsservern för fungerande datorer. Denna server kommer att ta emot rätt tid från Internet-tidsservrar och tillhandahålla den till lokala datorer. På Debian- och Ubuntu-servrar är det bara att avkommentera raden

Begränsa 192.168.0.0 mask 255.255.0.0 nomodify notrap

i ntpd-demonens konfigurationsfil - /etc/ntp.conf

Användare från nätverket 192.168/16 kommer att kunna få den mest exakta klockan från din server. För interna Linux-baserade servrar som inte är tidsservrar och gör sin egen grej, istället för att köra ntpd-demonen i klientläge, räcker det att specificera i filen /etc/cron.daily/syncntpd. Det rekommenderas att du läser skillnaderna mellan ntpdate och ntp och avgör själv.
#!/bin/sh
/usr/sbin/ntpdate din servers IP-adress > /dev/null 2>&1
avsluta 0

och en gång om dagen, tack vare kommandot ntpdate, kommer tidssynkronisering att utföras. För att undvika missförstånd, var inte lat innan du implementerar en tidsserver och synkroniserar allt och allt via NTP-protokollet – ställ manuellt in rätt tid på alla servrar och arbetsstationer som är tillgängliga för dig. Om din osynkroniserade tid skiljer sig för mycket från den korrekta, kan du starta en massa onödiga problem i början.

För det fjärde är NTP inte relaterat på något sätt i vilket land och vilka tidszoner som används och hur övergången till sommar- och vintertid sker och om en sådan övergång görs här i landet. Detta ansvar ligger hos operativsystemet, som du behöver uppdatera om det sker förändringar i klocktillverkning i landet. På Debian- och Ubuntu-system är tzdata-paketet ansvarigt för detta och bör vara uppdaterat.

För det femte är det bättre att inte höja din NTP-server på ett högt belastat system.

Introduktion.

Linux-systemet har, liksom de flesta andra moderna operativsystem, faktiskt två klockor. Den första klockan är en hårdvaruklocka, ibland kallad Real Time Clock, förkortad (RTC), eller BIOS-klocka, vanligtvis förknippad med en oscillerande kvartskristall, som har en noggrannhet på upp till flera sekunder per dag. Noggrannheten beror på olika fluktuationer, såsom omgivningstemperatur. Den andra klockan är en intern mjukvaruklocka som går kontinuerligt, även under avbrott i systemet. De är föremål för fluktuationer i samband med hög systembelastning och avbrottslatens. Systemet läser dock vanligtvis hårdvaruklockan vid start och använder sedan systemklockan. Datumkommandot ställer inte hårdvaruklockan, utan systemklockan.

Om NTP används kan du ställa in hårdvaruklockan under den första installationen av systemet och aldrig mer oroa dig för det.

Realtidsklockan (RTC) chip som används på moderkort, är inte särskilt exakt och brukar släpa eller komma framåt med en viss tid varje dag.

Du kan synkronisera hårdvaruklockan med systemklockan med hjälp av kommandot hwclock med alternativet -w eller --systohc, och synkronisera systemklockan med hårdvaruklockan med kommandot hwclock med alternativet -s eller --hctosys.

Miljö.

Lägg först till raden i filen /etc/ntp.conf:

Tiden kommer att synkroniseras från den angivna servern. Om den första inte är tillgänglig, tas de nästa i listan. Föreskrivs först lokal server NTP.

Nästa ögonblick ställer in den lokala eller universella tiden som ska användas.

#cat /etc//etc/sysconfig/clock

Vi har inte:

Vi styr ZONE - på "Europa/Moskva"

Vi får:

UTC=sant systemklockan använder inte universell tidsrepresentation

ARC=sant Den normala UNIX-epoken används.

Tidszonen under Linux ställs in via en symbolisk länk från /etc/localtime till en fil i katalogen /usr/lib/zoneinfo (eller /usr/share/zoneinfo), som indikerar vilken tidszon du befinner dig i.

Bild. Innehållet i /usr/share/zoneinfo

Vi utför kommandon.

rm -rf /etc/localtime

ln -s /usr/share/zoneinfo/Europe/Moscow /etc/localtime

Allt fungerar!

Om ntpd-demonen körs, visas följande meddelande när du försöker synkronisera med ntp-servern.

Detta kommando visar vilka servrar som ska anslutas till.

Tillägg:

Ställa in hårdvaruklockan

För att ställa in hårdvaruklockan, ställ först in systemtiden och sedan hårdvarutiden med programmet "/sbin/clock -w" (eller "/sbin/clock -wu" om du använder universell tid). För att ta reda på hårdvarutiden, kör klocka utan parametrar. Om hårdvaruklockan är inställd på lokal tid och du vill se världstiden typ "/sbin/clock -u"

Ställa in systemklockan

För att ställa in systemklockan i Linux, använd datumprogrammet. Ställ till exempel aktuell tid (system!) och datum till 31 juli, 23:16, skriv "datum 07312316" (observera att tiden anges i 24-timmarsnotation) Om du vill ändra år, skriv "datum 073123161998". För att ställa in sekunderna, slå "datum 07312316.30" eller "datum 073123161998.30". För att få systemtiden, kör datum utan argument.

För driften av servern och klienten NTP svarar" Windows tidstjänst" ("W32 Tid").
För att ställa in servern för Windows OS gör följande steg:

1. Installera automatisk start service" W32 Tid". För att göra detta, i registergrenen
"HKLM\System\CurrentControlSet\Services\W32Time "ställ in för parameter" Start "mening 2 .

2. Öppna sedan " HKLM\System\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer "och installera" Aktiverad " i enhet.

3.Vi redigerar följande parametrar:
- gren: " HKLM\System\CurrentControlSet\Services\W32Time\Parameters ", parameter" typ "
NoSync - NTP- Servern är inte synkroniserad med någon extern tidskälla. Klockan är inbyggd i mikrokretsen. CMOS själva servern;
NTP - NTP-server är synkroniserad med externa tidsservrar, som anges i registervärdet " NtpServer";
NT5DS - NTP-server utför synkronisering enligt domänhierarkin;
AllSync - NTP- servern använder alla tillgängliga källor för synkronisering;

Parameter " NtpServer ", som indikerar den värd som denna server kommer att synkronisera tiden med. Vid behov kan du lägga till flera värdar genom att ange dem DNS namn eller IP adresser separerade med mellanslag. I slutet av varje namn, avgränsade med kommatecken, kan du lägga till en flagga som bestämmer läget för synkronisering med tidsservern.
Följande värden är tillåtna:
0x1 - Specialintervall, använd ett speciellt avfrågningsintervall;
0x2- läge Använd endast som fallback;
0x4 - SymmetricActive, symmetriskt aktivt läge;
0x8 - klient, skickar en begäran i klientläge.
När du använder flaggan " Specialintervall", nödvändigt satt värde intervall i nyckel " SpecialPollInterval". När flaggans värde är " Använd endast som fallback" Tidstjänsten får veta att denna server kommer att användas som en standby-server, och andra listservrar kommer att kontaktas innan de synkroniseras med den. Symmetriskt aktivt läge används NTP-servrar som standard, och klientläge kan användas vid problem med synkronisering;

gren" HKLM\System\CurrentControlSet\Services\W32Time\Config ", parameter" Tillkännage flaggor "ansvarig för hur han deklarerar sig själv NTP-server och kan ta följande värden:
0x0 (Inte en tidsserver) - servern meddelar sig inte via NetLogon som en källa till tid. Han kan svara NTP begär, men grannarna kommer inte att kunna känna igen det;
0x1 (Alltid tidsserver) - servern kommer alltid att meddela sig själv oavsett status;
0x2 (Automatisk tidsserver) - servern kommer bara att annonsera sig själv om den får tillförlitlig tid från en annan granne (NTP eller NT5DS);
0x4 (Alltid pålitlig tidsserver) - servern kommer alltid att göra anspråk på att vara en pålitlig tidskälla;
0x8 (Automatisk tillförlitlig tidsserver) - en domänkontrollant förklaras automatiskt betrodd om den är - PDC skogsrotdomänemulator. Denna flagga tillåter de viktigaste PDC byggnadsställningar att förklara sig som en auktoriserad tidskälla även i avsaknad av kommunikation med högre NTP-servrar. Ingen kontroller eller medlemsserver (de som har standardflaggan 0x2) kan inte göra anspråk på att vara en pålitlig tidskälla om den inte kan hitta en källa för sig själv.
Betydelse" Tillkännage flaggor " kan vara summan av dess flaggor, till exempel:
10=2+8 - NTP- servern deklarerar sig själv som en pålitlig tidskälla, förutsatt att den får tid från en pålitlig källa eller är det PDC rotdomän. Flagga 10 är inställt som standard för både domänmedlemmar och fristående servrar.
5=1+4 - NTP Servern hävdar alltid att den är en pålitlig tidskälla. Till exempel, för att deklarera en medlemsserver (inte en domänkontrollant) som en pålitlig tidskälla behöver du flaggan 5 ;

gren" HKLM\System\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient ", parameter" SpecialPollInterval " är inställd på sekunder och är som standard 604800 vilket är en vecka. Detta är ganska mycket, så du bör minska värdet, säg, till en timme ( 3600 ).

4. Efter att inställningarna har gjorts kan du starta tidstjänsten: " nettostart w32time ". Om tjänsten redan kördes, använd konfigurationen med kommandot " w32tm /config /update " och starta om: " nätstopp w32time && nätstart w32time ".

5. Efter att ha startat om tjänsten NTP- Servern är redan aktiv och kan betjäna klienter. Du kan verifiera detta med kommandot " w32tm /query /configuration ". Det här kommandot visar en komplett lista över servicealternativ. Om " NtpServer"innehåller strängen" Aktiverad:1 ", då är det okej.


Windows-familjens operativsystem innehåller tidstjänsten W32Time. Den här tjänsten är utformad för att synkronisera tid inom en organisation. W32Time ansvarar för driften av både klient- och serverdelen av tidstjänsten och samma dator kan vara både NTP-klient och server (NTP - Network Time Protocol).

Som standard är Windows tidstjänst konfigurerad enligt följande:

När du installerar driften Windows-system startar en NTP-klient som synkroniserar med en extern tidskälla;

När du lägger till en dator till en domän ändras synkroniseringstypen. Alla klientdatorer och medlemsservrar i en domän använder en domänkontrollant som autentiserar dem för tidssynkronisering;

När en medlemsserver befordras till en domänkontrollant, startas en NTP-server på den, som använder en kontrollenhet med PDC-emulatorrollen som tidskälla;

PDC-emulatorn, som finns i skogens rotdomän, är den primära tidsservern för hela organisationen. Samtidigt är den också synkroniserad med en extern tidskälla.

Detta schema fungerar i de flesta fall och kräver inget ingripande. Windows tidstjänststruktur kanske inte följer en domänhierarki, och vilken dator som helst kan utses som en pålitlig tidskälla.

Som ett exempel, låt oss ställa in en NTP-server i Windows Server 2008 R2, analogt, kan du konfigurera en NTP-server i Windows 7.

Startar en NTP-server

Tidstjänst i Windows Server har inte GUI och konfigureras antingen från kommandorad, eller genom att direkt redigera systemregistret. Tänk på det andra sättet:

NTP-servern måste startas. Öppna registergrenen:

HKLM\System\CurrentControlSet\services\W32Time\TimeProviders\NtpServer.

För att aktivera NTP-servern måste parametern Enabled ställas in på 1. Sedan startar vi om tidstjänsten med kommandot nätstopp w32time && nätstart w32time.

Efter omstart av NTP-tjänsten är servern redan aktiv och kan betjäna klienter. Du kan verifiera detta med kommandot w32tm /query /configuration. Detta kommando visar en komplett lista över servicealternativ. Om NtpServer-sektionen innehåller raden Enabled:1 är allt i sin ordning, tidsservern körs.

För att NTP-servern ska kunna betjäna klienter måste brandväggen öppna UDP-port 123 för inkommande och utgående trafik.

Grundläggande NTP-serverinställningar

Öppna registergrenen:

HKLM\System\CurrentControlSet\services\W32Time\Parameters.

NoSync - NTP-servern är inte synkroniserad med någon extern tidskälla. Systemklockan används, som är inbyggd i själva serverns CMOS-chip (i sin tur kan denna klocka synkroniseras från en NMEA-källa via t.ex. RS-232);

NTP - NTP-servern synkroniseras med externa tidsservrar, som anges i NtpServers registervärde;

NT5DS - NTP-server utför synkronisering enligt domänhierarkin;

AllSync - NTP-servern använder alla tillgängliga källor för synkronisering.

Standardvärdet för en domänmedlemsdator är NT5DS, för separat stående dator- NTP.

Parametern NtpServer anger de NTP-servrar som denna server kommer att synkronisera tiden med. Som standard innehåller denna parameter Microsofts NTP-server (time.windows.com, 0×1), om det behövs kan du lägga till flera fler NTP-servrar genom att ange deras DNS-namn eller IP-adresser separerade med ett mellanslag. I slutet av varje namn kan du lägga till en flagga (t.ex. ,0×1) som anger läget för synkronisering med tidsservern.

Följande lägesvärden är tillåtna:

0x1 - SpecialInterval , användning av pollingtidsintervall;

0×2 – UseAsFallbackOnly-läge;

0x4 - SymmetricActive, symmetriskt aktivt läge;

0x8 - Klient, skickar en begäran i klientläge.

En annan viktig AnnounceFlags-inställning finns i registernyckeln:

HKLM\System\CurrentControlSet\services\W32Time\Config.

Den ansvarar för hur NTP-servern deklarerar sig själv. Flagga 5 behövs för att deklarera en medlemsserver (inte en domänkontrollant) som en pålitlig tidskälla.

Om servern som konfigureras i sin tur är en NTP-klient (t.ex. tar emot tid från en GPS-mottagare via NTP), kan du konfigurera intervallet mellan uppdateringar. Denna parameter kan också vara relevant för klientdatorer. Under uppdateringen är SpecialPollInterval-nyckeln, som finns i registergrenen, ansvarig:

HKLM\System\CurrentControlSet\services\W32Time\TimeProviders\NtpClient.

Det är i sekunder och är standard till 604800, vilket är 1 vecka. Det är mycket, alltså det är värt att minska värdet på SpecialPollInterval till ett rimligt värde - 1 timme (3600).

Efter konfigurationen måste du uppdatera tjänstens konfiguration. Du kan göra detta med kommandot w32tm /config /update.


Och några fler kommandon för att konfigurera, övervaka och diagnostisera tidstjänsten:

w32tm /monitor - med det här alternativet kan du ta reda på hur mycket tid systemet tar den här datorn annorlunda än tiden på domänkontrollanten eller andra datorer. Till exempel: w32tm /monitor /datorer:time.nist.gov

w32tm /resync - Med det här kommandot kan du tvinga datorn att synkronisera med tidsservern den använder.

w32tm /stripchart - Visar tidsskillnaden mellan nuvarande och fjärrdatorer. Kommando w32tm /stripchart /computer:time.nist.gov /samples:5 /dataonly kommer att göra 5 jämförelser med den angivna källan och returnera resultatet i textform.


w32tm /config är huvudkommandot som används för att konfigurera NTP-tjänsten. Med dess hjälp kan du ställa in listan över tidsservrar som används, typen av synkronisering och mycket mer. Till exempel kan du åsidosätta standardvärdena och ställa in tidssynkronisering med en extern källa med kommandot w32tm /config /syncfromflags:manual /manualpeerlist:time.nist.gov /update


w32tm /query - Visar de aktuella tjänstinställningarna. Till exempel kommer w32tm /query /source att visa den aktuella tidskällan och w32tm /query /configuration visar alla tjänstparametrar.

net stop w32time - Stoppar tidstjänsten om den körs.

w32tm /unregister - Tar bort tidstjänsten från datorn.

w32tm /register - Registrerar tidstjänsten på datorn. I det här fallet återskapas hela parametergrenen i registret.

net start w32time - startar tjänsten.

Funktioner som ses i Windows 7 - tidstjänsten startar inte automatiskt när Windows startar. Fixat i SP1 för Windows 7.

Dela med sig