리눅스 chronyc
IT 위키
더 많은 작업
시간 동기화 데몬 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 : 소스를 온라인 또는 오프라인 상태로 전환한다.
- 첫째 열(M) : ^ 서버, = 피어, # 로컬 기준 시계
- 둘째 열(S) : * 현재 동기화 중인 소스, + 결합에 사용 중인 좋은 소스, - 결합에서 제외된 소스, ? 연결이 끊긴 소스, x 잘못된 시간을 보내는 것으로 판단된 소스(falseticker), ~ 변동이 너무 큰 소스
- 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가 사용된다.