Linux에서 시간을 NTP와 동기화하는 방법


NTP (Network Time Protocol)는 네트워크를 통해 컴퓨터 시스템 시계를 자동으로 동기화하는 데 사용되는 프로토콜입니다. 시스템 시계가 현지 시간이 아닌 UTC (협정 세계시)를 사용하도록 할 수 있습니다.

Linux 시스템, 특히 서버에서 정확한 시간을 유지하는 것은 여러 가지 이유로 중요한 작업입니다. 예를 들어, 네트워크 환경에서 근본 원인 분석, 문제 발생시기 결정 및 상관 관계 찾기를 위해 패킷 및 시스템 로그의 정확한 타임 스탬프를 위해 정확한 시간 유지가 필요합니다.

Chrony는 이제 CentOS, RHEL, Fedora 및 Ubuntu/Debian과 같은 최신 버전의 Linux 운영 체제에서 기본 NTP 구현 패키지이며 기본적으로 사전 설치되어 제공됩니다. 이 패키지는 사용자 공간에서 실행되는 데몬 인 chronyd와 chronyd를 모니터링하고 제어하는 명령 줄 프로그램 인 chronyc로 구성됩니다.

Chrony는 다목적 NTP 구현이며 다양한 조건에서 잘 작동합니다 (다른 NTP 구현에 대한 Chrony 제품군의 비교 확인). 시스템 시계를 NTP 서버 (클라이언트 역할), 참조 시계 (예 : GPS 수신기) 또는 수동 시간 입력과 동기화하는 데 사용할 수 있습니다. 또한 NTPv4 (RFC 5905) 서버 또는 피어로 사용하여 네트워크의 다른 컴퓨터에 시간 서비스를 제공 할 수 있습니다.

이 기사에서는 chrony를 사용하여 Linux에서 NTP와 서버 시간을 동기화하는 방법을 배웁니다.

Linux 서버에 Chrony 설치

대부분의 Linux 시스템에서 chrony 명령은 기본적으로 설치되지 않습니다. "설치하려면 아래 명령을 실행하십시오.

$ sudo apt-get install chrony    [On Debian/Ubuntu]
$ sudo yum  install chrony       [On CentOS/RHEL]
$ sudo dnf install chrony        [On Fedora 22+]

설치가 완료되면 chrony 서비스를 시작하고 시스템 부팅시 자동으로 시작되도록 활성화 한 다음 실행 중인지 확인합니다.

# systemctl enable --now chronyd
# systemctl status chronyd

chrony가 현재 정상적으로 실행되고 있는지 확인하고 연결된 서버 및 피어의 수를 확인하려면 다음 chronyc 명령을 실행하십시오.

# chronyc activity

시간 동기화 확인

chronyd가 액세스하는 현재 시간 소스에 대한 정보 (사용 가능한 서버 목록, 상태 및 로컬 시계 및 소스의 오프셋)를 표시하려면 -v 플래그와 함께 다음 명령을 실행하면 설명이 표시됩니다. 각 열에 대해.

# chronyc sources
OR
# chronyc sources -v

이전 명령과 관련하여 chronyd에서 현재 검사중인 각 소스에 대한 기타 유용한 정보 (예 : 드리프트 속도 및 오프셋 추정 프로세스)를 표시하려면 sourcestats 명령을 사용하십시오.

# chronyc sourcestats
OR
# chronyc sourcestats -v

크로 니 추적을 확인하려면 다음 명령을 실행하십시오.

# chronyc tracking

이 명령의 출력에서 참조 ID는 사용 가능한 모든 서버 중에서 컴퓨터가 현재 동기화 된 서버의 이름 (또는 IP 주소)을 지정합니다.

크로 니 시간 소스 구성

기본 chrony 구성 파일은 /etc/chrony.conf(CentOS/RHEL/Fedora) 또는 /etc/chrony/chrony.conf(Ubuntu/Debian)에 있습니다.

클라우드에 Linux OS를 설치할 때 시스템에는 설치 프로세스 중에 추가 된 일부 기본 서버 또는 서버 풀이 있어야합니다. 기본 서버를 추가하거나 변경하려면 편집 할 구성 파일을 엽니 다.

# vim /etc/chrony.conf
OR
# vim /etc/chrony/chrony.conf

표시된대로 server 지시문을 사용하여 여러 서버를 추가 할 수 있습니다.

server 0.europe.pool.ntp.org iburst
server 1.europe.pool.ntp.org iburst
server 2.europe.pool.ntp.org ibusrt
server 3.europe.pool.ntp.org ibusrt

또는 대부분의 경우 ntppool.org를 사용하여 NTP 서버를 찾는 것이 가장 좋습니다. 이렇게하면 시스템에서 가장 가까운 사용 가능한 서버를 찾을 수 있습니다. 풀을 추가하려면 pool 지시문을 사용하십시오.

pool 0.pool.ntp.org burst

파일에서 구성 할 수있는 다른 많은 옵션이 있습니다. 변경 한 후 chrony 서비스를 다시 시작하십시오.

$ sudo systemctl restart chrony		
OR
# systemctl restart chronyd

chronyd가 쿼리하는 현재 시간 소스에 대한 정보를 표시하려면 다음 명령을 한 번 더 실행하십시오.

# chronyc sources

크로 니 추적 상태를 확인하려면 다음 명령을 실행하십시오.

# chronyc tracking

시스템의 현재 시간을 표시하려면 시스템 시계가 동기화되었는지, NTP가 실제로 활성 상태인지 확인하고 timedatectl 명령을 실행합니다.

# timedatectl

이것으로이 가이드의 끝으로 이동합니다. 질문이 있으시면 아래 댓글 섹션을 통해 문의하십시오. 자세한 내용은 RHEL 8 설명서에서 chrony 제품군을 사용하여 NTP를 구성하거나 Ubuntu 공식 블로그에서 chrony를 사용하여 NTP를 구성합니다.