본문으로 이동
메뉴 여닫기
환경 설정 메뉴 여닫기
개인 메뉴 여닫기
로그인하지 않음
지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.

시간 동기화 데몬 chronyd의 동기화 상태를 조회하고 제어한다.

  • RHEL/Rocky Linux 8에서는 ntpd가 제공되지 않으며, chrony가 기본 NTP 구현이다.
  • 경로 : /usr/bin/chronyc (데몬은 /usr/sbin/chronyd)
  • 패키지 : chrony
  • 설정 파일 : /etc/chrony.conf
  • 서비스 이름 : chronyd (systemctl enable --now chronyd)
  • 사용 포트 : UDP 123(NTP), UDP 323(chronyc와 chronyd 사이의 명령 통신)
$ chronyc [옵션] [명령]
  • 명령 없이 실행하면 chronyc> 대화형 프롬프트로 들어간다.
  • -n : 주소를 이름으로 변환하지 않고 IP 주소로 출력한다.
  • -c : 결과를 쉼표로 구분된(CSV) 형식으로 출력한다.
  • -h 호스트 : 명령을 보낼 chronyd 호스트를 지정한다. 기본값은 로컬 호스트이다.
  • sources [-v] : 현재 사용 중인 시간 소스(서버) 목록과 상태를 출력한다. -v는 각 열과 기호의 설명을 함께 출력한다.
  • sourcestats [-v] : 각 시간 소스의 오프셋, 주파수 오차 등 통계를 출력한다.
  • tracking : 시스템 시계의 동기화 상태(기준 서버, stratum, 시스템 시간과의 오차 등)를 출력한다.
  • makestep : 시계를 점진적으로 조정하지 않고 즉시 한 번에 맞춘다. root 권한이 필요하다.
  • activity : 온라인·오프라인 상태인 소스 수를 출력한다.
  • ntpdata [주소] : NTP 소스의 상세 정보를 출력한다.
  • clients : 이 서버에 접속한 NTP 클라이언트 목록을 출력한다. root 권한이 필요하다.
  • burst 개수/총개수 : 짧은 시간 동안 여러 번 측정하도록 한다.
  • online / offline : 소스를 온라인 또는 오프라인 상태로 전환한다.

sources 출력 기호

편집 원본 편집
  • 첫째 열(M) : ^ 서버, = 피어, # 로컬 기준 시계
  • 둘째 열(S) : * 현재 동기화 중인 소스, + 결합에 사용 중인 좋은 소스, - 결합에서 제외된 소스, ? 연결이 끊긴 소스, x 잘못된 시간을 보내는 것으로 판단된 소스(falseticker), ~ 변동이 너무 큰 소스

/etc/chrony.conf 주요 지시어

편집 원본 편집
  • server 주소 [iburst] : 사용할 NTP 서버를 지정한다. iburst는 시작 직후 빠르게 여러 번 측정하여 초기 동기화를 앞당긴다.
  • pool 이름 [iburst] : 여러 서버 주소로 풀이되는 NTP 풀을 지정한다.
  • driftfile 파일 : 시계의 주파수 오차를 기록할 파일을 지정한다. (예: /var/lib/chrony/drift)
  • makestep 임계값 횟수 : 오차가 임계값(초)보다 클 때 처음 지정 횟수의 측정 동안에는 시계를 한 번에 맞춘다. (예: makestep 1.0 3)
  • rtcsync : 시스템 시간을 하드웨어 시계(RTC)에 주기적으로 반영한다.
  • allow 네트워크 : 지정한 네트워크의 클라이언트가 이 서버에서 시간을 받아 가도록 허용한다. 지정하지 않으면 NTP 서버로 동작하지 않는다.
  • deny 네트워크 : 지정한 네트워크의 접근을 거부한다.
  • local stratum 값 : 외부 서버와 동기화되지 않아도 로컬 시계를 기준으로 시간을 제공한다.
  • logdir 디렉터리 : 로그 디렉터리를 지정한다. (예: /var/log/chrony)
# /etc/chrony.conf 예시 : 국내 NTP 서버를 사용하고 내부망 클라이언트에 시간을 제공한다.
server time.bora.net iburst
pool 2.pool.ntp.org iburst
driftfile /var/lib/chrony/drift
makestep 1.0 3
rtcsync
allow 192.168.10.0/24

# 설정 변경 후 서비스를 재시작한다.
# systemctl restart chronyd

# 시간 소스와 동기화 상태를 확인한다.
$ chronyc sources -v
$ chronyc tracking

# 시간 차이가 클 때 즉시 시계를 맞춘다.
# chronyc makestep

# 이 서버에서 시간을 받아 가는 클라이언트를 확인한다.
# chronyc clients

# 서버로 쓰려면 방화벽에서 ntp 서비스를 허용한다.
# firewall-cmd --permanent --add-service=ntp
# firewall-cmd --reload
  • 동기화 상태 확인 명령으로 chronyc sources와 chronyc tracking을 묻는 문제가 자주 나온다. sources 출력에서 *가 붙은 서버가 현재 동기화 기준이다.
  • 설정 파일은 /etc/chrony.conf이며, 서버 지정은 server(또는 pool), 클라이언트 허용은 allow 지시어를 쓴다.
  • 즉시 시간 보정은 makestep이다.
  • timedatectl set-ntp yes로 NTP 동기화를 켜면 chronyd가 사용된다.