로컬 NTP 서버를 어떻게 설정합니까?


16

Ubuntu Server 10.04에 NTP 서버를 설치했습니다.

sudo apt-get install ntp

NTP 데몬이 작동하고 123 포트에서 수신 대기중인 것 같습니다.

그러나 다른 컴퓨터에서 시간을 얻지 못했습니다.

sudo ntpdate -u my_ntp_server
23 Nov 18:48:41 ntpdate[2990]: no server suitable for synchronization found

필요한 구성이 있습니까?

답변:


19

우분투 포럼에서 좋은 방법이 있습니다 : http://ubuntuforums.org/showthread.php?t=862620

주요 사본 파스타 :

하우투 : NTP 서버 설정

이 학습서에서는 머신을 로컬 NTP (Network Time Protocol) 서버로 설정하는 방법 및 / 또는 NTP 데몬을 사용하여 정확한 시스템 시간을 정기적으로 유지 보수하는 방법에 대해 설명합니다.

NTP 란 무엇입니까?

NTP (Network Time Protocol)는 로컬 시간 시계를 네트워크 시간 서버와 정확하게 동기화하도록 설계된 프로토콜입니다. NTP 시간 서버 네트워크는 계층 적으로 설정되어있어 모든 사용자가 어느 수준에서든 서버로 시스템에 들어갈 수 있습니다 (자세한 내용은 Wikipedia 페이지 참조).

NTP 계층은 클럭 계층이라고하는 다른 수준으로 구분됩니다. 가장 정확한 레벨 인 Stratum 0은 원자 시계 등을 위해 예약되어 있습니다. 다음 레벨 인 Stratum 1은 일반적으로 Stratum 0 클럭에 로컬로 연결된 네트워크 컴퓨터에서 사용됩니다. Stratum 2 ... 15는 차례로 하위 레벨 클럭과 서로 연결되는 NTP 시스템입니다.

이 안내서는 Stratum 1 및 2 시스템과 정확하게 동기화하고 하루 종일 최대한 시스템 시계를 정확하게 유지하는 방법을 설명합니다. 컴퓨터가 로컬 네트워크의 다른 컴퓨터에 대한 Stratum 2/3 서버로 작동하는 방법에 대한 섹션도 포함되어 있습니다.

NTP 서버를 만들어야합니까?

아뇨 .. 절대 아닙니다! 네트워크의 시계가 표준 시간 (및 서로)과 약간의 차이가있는 것에 만족하면 NTP 서버를 설정할 필요가 없습니다. 바이오 엔지니어링 실험을 위해 <1ms 이내에 로컬 네트워크의 여러 컴퓨터를 동기화하기 위해 랩톱에 하나를 설정했습니다. 아래에 설명 된 다양한 다른 장점도 있습니다.

자극:

정기적으로 수정되지 않은 Ubuntu 상자는 ntpdate ( /usr/sbin/ntpdate)를 사용하여 시계를 일부 외부 시간 서버와 주기적으로 동기화합니다. 이 방법은 시계를 코스 해상도 (일반적으로 하루에 한 번)와 동기화합니다.

컴퓨터 시계는 불완전하며 낮에는 (올바른) 시간 서버에서 표류합니다. 또한, 서로 다른 컴퓨터의 클록에서 드리프트 레이트가 다르기 때문에 하루 종일 로컬 네트워크에 연결된 머신간에 상당한 차이가 존재할 수 있으며, 이는 특정 작업을 방해 할 수 있습니다 (예 : 소스 코드를 이동할 때 makefile이 항상 다른 기계?).

네트워크의 시스템에서 NTP 데몬을 로컬로 실행할 수 있습니다. 여기에는 여러 가지 장점이 있습니다. 첫째, NTP 데몬은 점차 로컬 컴퓨터의 드리프트 속도를 "학습"하여 하루 종일이를 수정할 수 있습니다. 상위 시간 서버와의 동기화는 하루에 여러 번 발생하며 동기화를보다 정확하게하기 위해 여러 시간 서버를 동시에 사용할 수 있습니다. 이러한 방식으로 NTP 데몬은 정확한 시간 클라이언트 역할을하여 시스템 시계를 표준 시간과 최대한 가깝게 유지합니다.

정확한 시스템 시계를 유지하는 것 외에도 NTP 데몬을 사용하면 네트워크상의 시스템 (원하는 경우)이 NTP 시간 서버로 작동 할 수 있습니다. 이렇게하면 네트워크 대기 시간이 최소화되므로 로컬 네트워크의 다른 컴퓨터가 LAN 시간 서버와 매우 빠르고 정확하게 동기화 될 수 있습니다. 이러한 방식으로 네트워크의 시스템 간 클럭 차이를 최대한 최소화합니다. Mac 및 Windows 상자도 설정하면 NTP 서버와 동기화 할 수 있습니다.

머신을 NTP 서버로 설정하는 다른 덜 개인적 동기가 있습니다. 첫째, 이렇게하면 더 높은 수준의 NTP 서버에서 부담이 줄어 듭니다. LAN의 다른 시스템은 로컬로 설정된 시간 서버와 동기화 될 수 있기 때문입니다. 또한 ntpd는 기능을 모방 한 ntpd에 -q 플래그를 사용하여 더 이상 사용되지 않습니다. 따라서 백그라운드에서 ntpd를 지속적으로 실행하지 않으려는 경우에도 ntpdate는 결국 ntpd로 바뀌므로 지금 익숙해지기를 원할 수 있습니다.

ntpd로 정확한 시스템 시계를 유지하는 방법

  1. NTP 데몬 설치

먼저 NTP 데몬 (ntpd)을 설치하십시오.

sudo aptitude install ntpd

앞에서 언급했듯이 ntpd는 클라이언트 (시스템 시간 동기화)와 서버 (다른 시스템에 정확한 시간 제공)로 작동 할 수 있습니다.

선택적으로 이전 (더 이상 사용되지 않는) 시간 동기화 프로그램 인 ntpdate를 제거 할 수도 있습니다. 아마도 ntpd가 작동 한 후에 그렇게하는 것이 현명 할 수 있습니다

sudo aptitude remove ntpdate
  1. 데몬을 올바르게 구성하십시오

ntpd의 구성 파일은에 있습니다 /etc/ntp.conf. 기본 우분투 파일은 최적의 성능을 위해 약간의 수정이 필요할 것입니다.

수정하려는 첫 번째 섹션은 동기화 할 서버 목록입니다. 기본 섹션은 다음과 같습니다.

# You do need to talk to an NTP server or two (or three).
server ntp.ubuntu.com

최대한 정확한 시간을 얻으려면 여러 개의 다른 NTP 서버와 통신하고 가능한 한 실제 위치에 가깝게 유지하는 것이 좋습니다. 온라인에는 다양한 서버 목록이 있으며 여기에 가장 적합한 서버 목록이있을 수 있습니다. 사용할 적절한 서버 수에 대한 논쟁이 있습니다. 당신이 너무 배 밖으로 가지 않는 한, 하나는 둘보다 낫고, 셋 이상은 좋은 생각 일 것입니다. 내가 사용한 몇 가지 시간 서버의 예는 다음과 같습니다.

server nist1-dc.WiTime.net iburst
server ntp0.mcs.anl.gov
server 0.us.pool.ntp.org
server 1.us.pool.ntp.org
server 2.us.pool.ntp.org
server 3.us.pool.ntp.org

좋은 서버가 몇 개 발견되면 'iburst'가장 유망한 서버를 추가하여 목록에 추가하십시오 . 예를 들어 :

server nist1-dc.WiTime.net iburst

이로 인해 시작 후 ntpd가이 서버와 매우 빠르게 동기화됩니다. 그렇지 않으면, ntpd는 서버 목록과 일치하는 방향으로 천천히 이동하는 경향이 있으며 (본질 그대로) 나머지 네트워크의 시간 서버로 작동하기에 충분히 동기화하는 데 15-20 분이 걸릴 수 있습니다.

또한 일시적으로 인터넷 연결이 끊어 질 경우 기본값으로 현재 로컬 시간을 제공하기 위해 서버 목록 하단에 몇 줄을 추가하십시오.

server 127.127.1.0
fudge 127.127.1.0 stratum 10

인터넷에서 연결이 끊긴 경우 랩톱이나 다른 컴퓨터에서 ntpd를 실행하는 경우 불안을 방지 할 수 있습니다.

대체로 서버 목록은 다음과 유사해야합니다 (이것은 내 서버 일 것입니다).

# You do need to talk to an NTP server or two (or three).
server nist1-dc.WiTime.net iburst
server ntp0.mcs.anl.gov
server 0.us.pool.ntp.org
server 1.us.pool.ntp.org
server 2.us.pool.ntp.org
server 3.us.pool.ntp.org
server 127.127.1.0
fudge 127.127.1.0 stratum 10
  1. 구성이 작동하는지 확인

/etc/ntp.conf파일 에 적절한 서버 목록이 생겼으니 이제 데몬을 실행하고 제대로 동기화되는지 확인하십시오! 인터넷에 연결되어 있는지 확인한 후 다음을 실행하십시오.

sudo /etc/init.d/ntp restart

다음으로 시스템 로그를 모니터링하여 시간 서버와 동기화되는지 확인하십시오.

tail -f /var/log/syslog

약 10-15 초 (또는 즐겨 찾는 서버 뒤에 'iburst'를 넣지 않은 경우 최대 15-20 분) 내에 시스템 로그에 다음과 같은 내용이 표시됩니다.

Jul 17 16:50:22 hostname ntpd[22402]: synchronized to 140.221.9.20, stratum 2

이 메시지가 나타나지 않으면 아직 NTP 서버 네트워크와 제대로 동기화되지 않은 것입니다. 다음을 사용하여 통신중인 NTP 피어 목록을 확인하십시오.

ntpq -c lpeer

'지연', '오프셋'및 '지터'필드가 0이 아니고 동기화되지 않은 경우 잠시 기다려야 할 수도 있습니다. 서버 목록에 'iburst'인수를 삽입했는지 다시 확인하십시오! 동료들은 다음과 같이 보입니다.

     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*milo.mcs.anl.go 192.5.41.40      2 u    4   64   77   46.213   67.753   2.207
-europium.canoni 193.79.237.14    2 u   63   64   37   97.375   71.020   1.875
-dtype.org       69.25.96.13      2 u    2   64   77   86.956   69.178   1.804
+smtp130.junkema 216.218.254.202  2 u    2   64   77   87.266   67.677   0.916
+kechara.flame.o 216.218.254.202  2 u    -   64   77   89.183   68.717   1.713
-host2.kingrst.c 99.150.184.201   2 u    -   64   77   24.306   62.121   2.608
 LOCAL(0)        .LOCL.          10 l   59   64   37    0.000    0.000   0.002
  1. 공유! (선택 과목)

ntpd가 실행되고 선택한 시간 서버와 동기화되면 다른 컴퓨터의 시간 서버로 작동하도록 설정할 수 있습니다. 이렇게하려면 다음과 같은 섹션을 추가하십시오 /etc/ntp.conf.

# Allow LAN machines to synchronize with this ntp server
restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
restrict 192.168.2.0 mask 255.255.255.0 nomodify notrap
You may add as many (or few) CIDR address blocks to allow to synchronize with your machine as you'd like. I included those commonly used with Linksys (192.168.1.*) and SMC (192.168.2.*) routers.
  1. 동기화! (선택 과목)

1-4 단계를 사용하여 NTP 서버를 설정 한 후에는 네트워크의 다른 컴퓨터를 다양한 방식으로 서버와 동기화 할 수 있습니다. 아래에 몇 가지를 간략하게 설명합니다.

ntpd :

다른 컴퓨터에 ntpd를 설치 한 경우 ntp.conf 파일의 서버 목록에서 첫 번째 서버를 사용하거나 다음과 같이 -q 옵션으로 한 번 동기화 할 수 있습니다.

ntpd -q [IP address of your server]

ntpdate :

다른 컴퓨터에 여전히 ntpdate가 설치되어 있으면 다음과 같이이를 사용하여 서버와 동기화 할 수 있습니다.

ntpdate [IP address of your server]

참고 : 머신에서 ntpd를 실행 중이고 어떤 이유로 여전히 ntpdate를 사용하여 시간을 설정하려는 경우 -u 옵션을 사용해야합니다.

윈도우 :

Windows 시스템은 SNMP (Simple Network Time Protocol)라는 단순화 된 NTP 버전을 사용하며 NTP 서버와 동기화 할 수 있습니다. 새 서버와 동기화하려면 시간을 두 번 클릭하고 "인터넷 시간"탭으로 이동하십시오. "서버"필드에 서버의 IP 주소를 입력하십시오. LAN 시간 서버와 동기화되는 Windows XP 스크린 샷을 첨부했습니다.

그게 다야! 전체 프로세스는 어렵지 않지만 이전에 NTP 네트워크를 많이 다루지 않은 사람에게는 혼란 스러울 수 있습니다. 이게 도움이 되길 바란다! 서버 설정에 문제가 있으면 알려주십시오.

마이크

연결

다음 링크가 도움이되었다고 생각했습니다.

https://help.ubuntu.com/7.10/server/C/NTP.html http://linuxwave.blogspot.com/2007/0...tp-server.html http : //lists.ntp.isc. org / pipermail / q ... er / 011889.html http://www.linuxhomenetworking.com/w...Fntp.conf_File http://www.ntp.org/ntpfaq/NTP-a-faq.htm


링크 주셔서 감사합니다. 실제로 구성을 변경하지 않았습니다! 얼마 후 일했습니다.
Khaled

ntp 서버에서 ntpdate -s a_stratum_1_server_address즉시 동기화하도록 실행할 수 있습니다 . 그런 다음 다른 (클라이언트) 컴퓨터에서 'ntpdate -q your_local_ntp_server`를 실행하면 다음과 비슷한 내용으로 응답해야합니다.server your_local_ntp_server_ip, stratum 2, offset -0.012221, delay 0.02618
Keith Reynolds

링크 전용 답변이 오래되었을 수 있습니다. 답변 자체에 중요한 정보를 포함하십시오.
Zeta

5

이에 대한 많은 링크가 있으며 절차가 복잡해 보입니다. 필자의 경우 프록시 서버와 방화벽 역할을하는 하나의 시스템이 있으며 다른 모든 시스템은이를 통해 인터넷에 연결됩니다. 방화벽에서 포트를 열고 싶지 않았습니다. 따라서 프록시 서버는 시간 (NTP)이어야 서버 와 다른 컴퓨터 ( 클라이언트 ) 그것에서 시간을 얻을.

모든 머신에 ntp를 설치해야하며 모든 머신에도 ntpq를 설치해야합니다.

먼저, ntp가 작동하는지 확인하십시오. 기본적으로 ntpd (ntp 데몬)는 설치 되 자마자 실행되며 기본값이 작동합니다. 그러나 ntp는 즉시 작동하지 않으므로 잠시 기다리십시오. 그런 다음 명령은 다음과 같습니다.

ntpq -c lpeer

다음과 같은 출력을 제공해야합니다.

     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
+golem.canonical 193.79.237.14    2 u  170 1024  377  140.458   -0.655   3.234
*gatekeeper.tss. 204.123.2.72     2 u  608 1024  377   84.650    2.168   0.471

또는:

ntpq --numeric --peers

     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
+91.189.89.199   193.79.237.14    2 u  652 1024  377  140.151   -0.242   2.821
*66.7.96.1       204.123.2.72     2 u   64 1024  377   85.074    2.409   0.963

그렇다면 연결되어 있고 시간 서버에 시간이 걸리는 것입니다. 그렇지 않은 경우

ps -e | grep "ntp" 

ntp가 실행 중인지 확인하고 다시 시도하십시오. 또한 ntp를 다시 시작하십시오.

sudo /etc/init.d/ntp restart

연결이 설정되기까지 약간의 "시간"(죄송합니다!)이 소요될 수 있습니다. 데몬은 서버를 자주 폴링하지 않습니다. 위 출력의 "언제"열은 서버가 폴링 된 이후의 시간 (초)을 나타냅니다.

이제 시간 서버가 다른 컴퓨터로 시간을 보내도록해야합니다.

/etc/ntp.conf서버 에서 파일 을 편집하십시오 . 네트워크 회선을 추가해야합니다. 제 경우에는 10.0.0.0 네트워크가 있습니다. ntp.conf 파일에서 다음 줄을 추가했습니다.

broadcast 10.255.255.255

네트워크의 각 세그먼트에 대해 브로드 캐스트 회선을 추가해야합니다. 네트워크가 내 것과 같이 단순하다면 위와 같은 한 줄만 있으면됩니다. 이제 위 명령을 사용하여 ntp를 다시 시작하고 ntpq를 사용하여 다시 확인하면 다음과 같이 표시됩니다.

     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
+golem.canonical 193.79.237.14    2 u   70 1024  377  140.151   -0.242   2.821
*gatekeeper.tss. 204.123.2.72     2 u  506 1024  377   84.650    2.168   0.241
 10.255.255.255  .BCST.          16 u    -   64    0    0.000    0.000   0.002

Voila, 방송 중입니다.

이제 모든 클라이언트 시스템이 브로드 캐스트 서버에서 시간을 얻도록해야합니다. 각각에서 파일을 편집하십시오.

/etc/ntp.conf

서버를 지정하는 몇 줄이 나타납니다.

라인을 추가

server 10.10.10.1

또는 서버 주소가 무엇이든. 그런 다음 위 명령을 사용하여 클라이언트 시스템에서 ntp를 다시 시작하십시오. 또는 프로세스 ID를 가져 와서 종료 한 다음 다시 실행할 수 있습니다. 도대체 무엇이.

그런 다음 충분한 시간이 지나면 ntpq로 확인하십시오.

ntpq --numeric --peers
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*10.10.10.1      66.7.96.1        3 u  123 1024  377    0.430    1.022   1.831

클라이언트가 시간 서버를 사용하고 있음을 알 수 있습니다.

시간이 좀 걸립니다.


ntpdate -s a_stratum_1_server_addressntp 서버에서 실행 하여 강제로 폴링하고 즉시 동기화 할 수 있습니다 .
Keith Reynolds

이 유형의 브로드 캐스트가 모든 스위치에서 지원됩니까? 예를 들어 UDP 브로드 캐스트는 대부분의 스위치 / 라우터에 의해 차단되고 있습니다.
Tanasis

1

수락 된 답변 (2018 년 7 월)이 저에게 효과적이지 않았습니다. 이 다른 방법은 2018 년 7 월 Ubuntu 16.04 LTS 에서 잘 작동했습니다 .

설치 되지 않은 경우 NTP를 설치하십시오.

sudo apt-get update
sudo apt-get install ntp

NTP 서비스가 요청을 수신 할 수 있도록 구성 파일을 편집하십시오 .

sudo nano /etc/ntp.conf --syntax=sh

이 줄의 주석을 해제하십시오.

# If you want to provide time to your local subnet, change the next line.
# (Again, the address is an example only.)
# broadcast 192.168.111.255

에:

# If you want to provide time to your local subnet, change the next line.
# (Again, the address is an example only.)
broadcast 192.168.111.255

NTP 서비스를 다시 시작하십시오 .

sudo /etc/init.d/ntp restart

이제 NTP 서버가 작동 하고 다른 컴퓨터가 사용자의 컴퓨터와 동기화되도록 해야합니다 . 위의 모든 테스트는 ntpdate -u YourComputer정상적으로 작동합니다.

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