왜 ntpd가 서버의 시간을 업데이트하지 않습니까?


20

내 서버에서 ntpd를 실행 중입니다. 다른 시스템의 서버가 될 수있는 기능을 언급 한 것을 제외하고는 모든 기본 설정입니다.

# 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 제공 업체는 다음과 같이 말합니다.

최신 커널은 시스템을 dom0의 시계에 고정해서는 안됩니다. 안전한쪽에 sysctl.conf에서 xen.independent_wallclock = 1을 설정할 수 있습니다.

올바른 타이밍 계산을 수행하기 위해 사용 가능한 CPU가 필요한 VPS 문제를 여전히 해결하지 못한다고 생각합니다.


전체 구성 파일입니까? 를 실행 ntpq -np하면 출력은 무엇입니까?
David Mackintosh

나머지 구성은 어디에 있습니까? 호스트가 시간을 확보 할 업스트림 서버가 없습니다.
Aaron Copley

6
알았다. ntpd가 정상적으로 작동하는 것 같습니다. NTPd는 점차적으로 시계를 "동기화"합니다. 시간이 갑자기 변경되면 특정 실행중인 프로세스에 큰 문제가 발생할 수 있으므로 NTP는 1 초의 속도를 높이거나 늦춤으로써 점진적으로 조정합니다.
Aaron Copley

1
그렇습니다. 커널은 부팅 할 때부터 부팅 할 때 하드웨어 클럭으로 시작합니다. 당신이 말했듯이 그것이 몇 달 동안 실행 되었다면, 그렇지 않습니다. NTP에게 하드웨어 시계와 동기화하도록 지시 할 수 있습니다. Ubuntu는 확실하지 않지만 / etc / sysconfig / ntpd에있는 Red Hat 기반 시스템에서는 확실하지 않습니다. 거기에서 보거나 하드웨어 설명서를 참조 할 수 있습니다.
Aaron Copley

1
또한 ntpdate가 독립형 응용 프로그램이라는 것을 이해하지 못한다고 생각합니다. ntpd와 관련이 없으며 문제 해결에 사용해서는 안됩니다. 피어링을 표시하기 위해 ntpq가 -p 옵션과 함께 제안 된 이유입니다. ntpd가 피어를 발견하면 시스템을 다시 동기화해야합니다. 그래도 모든 것이 좋아 보인다. 방금 추가 통찰력을 제공하기를 바랐습니다. 이것이 미래에 도움이되기를 바랍니다!
Aaron Copley 2012 년

답변:


10

ntp.conf에 다음을 추가하여 ntpd에 로깅을 활성화 할 수 있습니다.

logfile /var/log/ntpd.log

출처 : ntp manual

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는 기꺼이 할 일입니다. 그러나 서버가 재부팅 될 때 시계가 하드웨어의 시계 또는 다른 것으로 재설정되는지 궁금합니다.
John Bachir

ntpdate를 사용하여 시계를 설정 한 후 'hwclock --systohc'를 사용하여 "실행"시간을 하드웨어 시계와 동기화하십시오. 재부팅시 동기화되어야하지만 컴퓨터가 충돌하거나 올바르게 종료하는 데 문제가 있으면 동기화 할 수 없습니다.
Dave Drager

글쎄, 그것은 호스트이기 때문에 하드웨어 시계에 액세스 할 수 없습니다 (적어도 나는 희망하지 않습니다!)
John Bachir

에뮬레이트 된 BIOS와 마찬가지로 에뮬레이트 된 하드웨어 시계가 있습니다.
Keith Stokes

여러 VPS 플랫폼의 관리자였으며 그 중 어느 것도 (openvz, Xen) 시스템에서 시계를 설정할 수 없습니다. 모두 호스트 수준에서 수행해야했습니다. 시간이 꺼져 있음을 나타 내기 위해 호스트와 함께 티켓을 제출하십시오. ntp를 실행 중이고 시간이 동기화되어 있어야합니다.
Dave Drager

7

좋아, 사람들은이 질문을 한 이후 기본 공급 업체 (Ubuntu 10.0.4) 구성으로 ntp를 다시 설치하고 며칠 동안 실행하도록했습니다. 이 글을 쓰는 시점에서 ntpdate -q ntp.ubuntu.com제 시간은 0.000216 초 이내로 정확합니다. 따라서 내가 겪고있는 문제는 사용자 정의 구성과 관련이 있었을 것입니다 (외부 호스트가 내 서버를 쿼리 할 수 ​​없도록하려고 시도했지만 이미 방화벽으로 수행하고 있으므로 걱정하지 않아도됩니다). 주석이 제거 된 Ubuntu 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

이 구성을 개선하는 방법에 대한 의견을 환영합니다.

또한 VPS 제공 업체와 함께 최선의 방법에 대한 자세한 권장 사항을 묻는 티켓을 만들었습니다. 나는이 스레드와 CPU 할당이 타이밍 문제를 일으킬 수 있음을 나타내는 다른 문서를 지적했다. 그들이 한 말은 다음과 같습니다.

최신 커널은 시스템을 dom0의 시계에 고정해서는 안됩니다. 안전한쪽에 sysctl.conf에서 xen.independent_wallclock = 1을 설정할 수 있습니다. 이렇게하면 서버 인스턴스가 호스트 서버의 시계를 따르지 않게됩니다.

과:

가상화 된 환경에서이 문제가 NTP 클라이언트에 영향을 미치는 정확한 정도를 이해하지 못할 수도 있습니다. Xen 호스트의 가상화 된 시스템 (예 : Rackspace Cloud 설정)에서 인터럽트를 처리하는 데 전용 시스템 클럭이 없어서로드 된 시스템에서도 초 단위로 부정확 한 결과를 얻었습니다. 이 약간의 부정확성은 서버 시간을 하루에 한 번만 업데이트하도록 설정되어 있어도 NTP에서 쉽게 관리 할 수 ​​있습니다.


4

귀하의 의견 중 하나가 귀하가 호스트에서 실행 중이라고 말합니다. 이 경우 호스트의 시간 감각은 실행중인 실제 호스트와 호스트 전체의 사용량에 따라 달라지기 때문에 성공하지 못할 수 있습니다.

사용 된 가상화에 따라 가상 호스트는 주어진 시간 동안 일정한 인터럽트 점유율을 얻지 못할 수 있습니다. 이렇게하면 시계가 실제로 발생하는 것보다 더 빠르거나 느려집니다. ntp는 시계가 다른 세계보다 고정 속도보다 빠르거나 느리다는 가정에서 변경 사항을 측정하려고 시도하기 때문에이 속도를 높이거나 낮추면 ntp에 적합하고 결국에는 포기할 것입니다. 그ntp -np ntp가 부적합한 것으로 간주되는 시간 서버 보여줍니다.

이 경우라면 가장 좋은 방법은 아마도 rdate -s $server6 시간마다 같이 너무 자주 울려서 시계를 코로 잡아 당겨 너무 동기화되지 않게하는 것입니다. 그러나 세밀한 정확도는 도달 할 수 없습니다.


호스팅 제공 업체 (랙 스페이스 클라우드)는 NTP가 환경에서 잘 작동한다고 말했습니다.
John Bachir

VPS 제공 업체가 시계에 대해 말한 내용과 시간 설정에 대한 액세스 권한은 제출 / 수락 한 답변을 참조하십시오.
John Bachir

자동 rdate는 시계를 거꾸로 설정하여 예기치 않은 결과가 발생할 수 있습니다.
rackandboneman

4

openntpd 대신 ntpd를 사용할 때 과거에 찾은 것들 :

  1. ntpd가 올바르게 시작되고 실제로 작업을 수행하려면 localhost에 대한 액세스를 허용해야합니다.

    restrict 127.0.0.1
    restrict ::1
    
  2. 서버 규칙에 호스트 이름을 사용할 수 있지만 해당 서버와 통신하기 위해 백업 구멍을 여는 것은 restrictIP 주소가 필요한 것을 사용한다는 것을 의미 하므로 결국 모든 것에 IP를 사용해야했습니다.

  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 ignorentpd 4.2가의 의미를 변경했을 때와 같이 사용 했습니다 notrust. 한숨

  6. 다른 사람들에게 시간 서비스를 제공하지 않는다면 정규 ntpd의 모든 기능이 필요하지 않을 것이므로 openntpd대신 고려해야 합니다. OpenBSD 승무원이 작성한이 프로그램은 권한 분리 및 훨씬 간단한 구성 파일을 사용하여 훨씬 더 적은 구현입니다. Ntpd가 제공하는 정확한 시간을 제공하지는 않지만 일반 서버 또는 워크 스테이션에는 충분합니다.


이것은 훌륭한 정보입니다. openntpd를 확인하고 있습니다. 질문 : 당신은 호스트에서 시계를 설정하는 것이 불가능하다고 주장하는 다른 사람들과 동의하거나 동의하지 않습니까?
John Bachir

그리고 아마도 당신은이 질문에 대답 할 수 있습니다 : serverfault.com/questions/223511/…
John Bachir

다양한 restrict규칙으로 무엇을 말하는지 이해하지 못합니다. 이러한 규칙이 시간에 따라 쿼리 할 수있는 서버에도 영향을 미칩니 까? 어떤 노드가 시간을 요구할 수 있는지에 대해서만 영향을 미친다고 생각했습니다.
John Bachir

1
아이디어가 있습니다 : 귀하의 답변을 주석이있는 완전한 최소 ntp.conf 파일로 바꾸고 싶습니까? :-)
John Bachir

가상 호스트가 인식하는 시간이 외부 세계의 시간과 일치하지 않기 때문에 항상 최소 하나의 CPU로 예약되도록 보장되지 않는 한 가상 호스트에 시계를 설정하는 것은 좋지 않습니다. dom0은 시간을 유지해야합니다. 다른 질문의 대답은 좋습니다. NTP는 UDP이므로 시간을 쿼리하는 서버의 패킷을 허용해야합니다. 몇 년 전에 OpenNTPD로 옮겼을 때 내 ntpd는 오래되었습니다.
Phil P

3
  • ntpd가 원격 서버에 연결할 수 없으면 해당 서버에 대한 오프셋이 표시되지 않습니다.
  • ntpq가 ntpd에 의해 차단되면 ntpq에서 명확한 오류 메시지가 표시됩니다.
  • 다른 서비스도 시간을 설정하면 (예 : vmware 도구) 서버에 대한 점프 오프셋이 표시됩니다 (70 초마다 ntpq -p를 실행).

reach 7에서 완전히 ntpq 출력 만 약 4 분 동안 작동 NTPD 할 것을 지적했다. 7은 111 이진수로 서버에 이미 3 번 도달했습니다. ntp는 64 초마다 ( poll값) 도달 when하고 마지막 접촉 이후 이미 30 초 ( 값) 동안 기다렸습니다 .

offset -0.136시스템이 이미 동기화되었는지, 지적했다. ntpd만이 아직 서버를 소스로 표시하지 않았습니다. 더 많은 시간을 주면 작은 별이 나타납니다.

따라서 실제로 ntpd가 동기화되었습니다. 그러나 ntpd는 일반적으로 한 번의 큰 점프 (ntpdate와 같은)로 동기화되지 않지만 시간을 느리게 조정하고 여러주기에 걸쳐 시간을 안정적으로 유지하려고합니다.

추신 : 나는 그 질문이 매우 오래되었다는 것을 알고 있습니다. 그러나 문제는 영원합니다. 그리고 다른 모든 대답은 오해의 소지가 있습니다. VMWare는 시간을 동기화하기 위해 ntpd를 권장합니다.


첫 번째 대답은 Robert입니다. 사이트에 오신 것을 환영합니다.
kubanczyk

1

시스템이 꺼진 것을 발견하고 HW 클럭이 시스템 종료와 시스템 클럭과 동기화되지 않은 이유를 의아해했습니다. sysconfig에 NTP 설정이있어 편집이 필요한 것 같습니다.

에서 /etc/sysconfig/ntpd:

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

나는로 설정했습니다 yes. 물론 먼저 견고한 NTP 서버가 있고 시스템 시계가 안정적인지 확인하십시오.

나는 그것을 알고 있었다-나의 비틀림은 47 초이고 나의 HW 시계는 47 초 떨어져 있었다. 빙고! 첫 번째 단서는 로그에 Kerberos 오류가 있다는 것입니다. 클럭 왜곡이 너무 크면 Kerberos 및 많은 NAS가 작동하지 않습니다.

좋은 하루 되세요!


1
Snap .. RHEL / Centos와 관련이 있습니다. 아마도 우분투가 아닙니다.
Wayne Sweatt


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