우분투에서 Chrony를 설치하고 설정하는 방법
Chrony는 NTP(Network Time Protocol)를 사용하여 시스템 시각을 동기화하는 데 사용되며 특히 불안정한 네트워크 환경에서도 빠르게 정확한 시간을 동기화할 수 있는 장점이 있습니다.
Chrony 서버 (192.168.10.111)
1. Chrony 설치
패키지 업데이트
sudo apt-get update
Chrony 설치
sudo apt-get install -y chrony
Chrony 버전 정보
chronyc -v
$ chronyc -v
chronyc (chrony) version 4.2 (+READLINE +SECHASH +IPV6 -DEBUG)
Chrony 서비스 시작 및 활성화
sudo systemctl enable chrony
sudo systemctl start chrony
Chrony 서비스 상태 확인
sudo systemctl status chrony
2. Chrony 설정
Chrony 설정 파일은 /etc/chrony/chrony.conf에 있습니다.
sudo vim /etc/chrony/chrony.conf
---
sudo tee /etc/chrony/chrony.conf <<EOF
server gps.bora.net iburst
server ntp.kornet.net iburst
server ntp.postech.ac.kr iburst
server time.kriss.re.kr iburst
server time2.kriss.re.kr iburst
server time.google.com iburst
server time.cloudflare.com iburst
pool ntp.ubuntu.com iburst maxsources 4
pool 0.ubuntu.pool.ntp.org iburst maxsources 1
allow 192.168.0.0/24
allow 192.168.10.0/24
local stratum 10
driftfile /var/lib/chrony/chrony.drift
log tracking measurements statistics
logdir /var/log/chrony
maxupdateskew 100.0
rtcsync
makestep 1 3
EOF
---
# NTP 서버 설정
server gps.bora.net iburst
server ntp.kornet.net iburst
server ntp.postech.ac.kr iburst
server time.kriss.re.kr iburst
server time2.kriss.re.kr iburst
server time.google.com iburst
server time.cloudflare.com iburst
# NTP 풀 설정
pool ntp.ubuntu.com iburst maxsources 4
pool 0.ubuntu.pool.ntp.org iburst maxsources 1
# 클라이언트 허용 범위
allow 192.168.0.0/24
allow 192.168.10.0/24
# 로컬 시간 서버 설정
local stratum 10
# 드리프트 파일 경로
driftfile /var/lib/chrony/chrony.drift
# 로그 관련 설정
log tracking measurements statistics
logdir /var/log/chrony
# 동기화 관련 설정
maxupdateskew 100.0
rtcsync
makestep 1 3
- server 구문 : 로컬 네트워크 또는 인터넷의 시간 서버를 추가하거나 수정합니다.
- pool 구문 : NTP 풀을 사용하여 다수의 서버를 지정할 수 있습니다.
- allow 구문 : 클라이언트에게 접근을 허용하는 IP 주소 또는 네트워크를 추가하거나 수정합니다.
Chrony 서비스 재시작
sudo systemctl restart chrony
Chrony 서비스 상태 확인
sudo systemctl status chrony
출력에서 "Active: active (running)"과 "Source: chronyd"라는 메시지를 확인할 수 있어야 합니다. 또한, Reference ID 및 Stratum 정보가 시간 서버와의 동기화를 나타냅니다.
Chrony가 설치되고 설정되었습니다. 이제 chrony는 우분투 시스템의 시간 동기화를 관리하게 됩니다.
3. Chrony 동작 확인
NTP 서버들의 요약 상태 확인
chronyc activity
200 OK
12 sources online
0 sources offline
0 sources doing burst (return to online)
0 sources doing burst (return to offline)
0 sources with unknown address
현재 사용 중인 시간 소스 상태 확인
chronyc sources -v
.-- Source mode '^' = server, '=' = peer, '#' = local clock.
/ .- Source state '*' = current best, '+' = combined, '-' = not combined,
| / 'x' = may be in error, '~' = too variable, '?' = unusable.
|| .- xxxx [ yyyy ] +/- zzzz
|| Reachability register (octal) -. | xxxx = adjusted offset,
|| Log2(Polling interval) --. | | yyyy = measured offset,
|| \ | | zzzz = estimated error.
|| | | \
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^? gps.bora.net 0 7 0 - +0ns[ +0ns] +/- 0ns
^? 168.126.3.6 0 7 0 - +0ns[ +0ns] +/- 0ns
^? ntp.postech.ac.kr 0 7 0 - +0ns[ +0ns] +/- 0ns
^? 210.98.16.100 0 7 0 - +0ns[ +0ns] +/- 0ns
^* 210.98.16.101 2 6 17 45 +115us[ +581us] +/- 8053us
^- time2.google.com 1 6 17 45 -2433us[-2433us] +/- 31ms
^- time.cloudflare.com 3 6 17 45 +1662us[+2128us] +/- 100ms
^- prod-ntp-3.ntp1.ps5.cano> 2 6 27 39 +3758us[+3758us] +/- 132ms
^- prod-ntp-4.ntp1.ps5.cano> 2 6 53 40 +536us[ +536us] +/- 128ms
^- alphyn.canonical.com 2 6 17 44 -5594us[-5594us] +/- 130ms
^- prod-ntp-5.ntp1.ps5.cano> 2 6 17 44 +815us[ +815us] +/- 136ms
^- 106.247.248.106 2 6 17 45 +2217us[+2217us] +/- 72ms
NTP 서버들의 통계 정보 확인 (지연 시간, 오프셋 등)
chronyc sourcestats -v
.- Number of sample points in measurement set.
/ .- Number of residual runs with same sign.
| / .- Length of measurement set (time).
| | / .- Est. clock freq error (ppm).
| | | / .- Est. error in freq.
| | | | / .- Est. offset.
| | | | | | On the -.
| | | | | | samples. \
| | | | | | |
Name/IP Address NP NR Span Frequency Freq Skew Offset Std Dev
==============================================================================
gps.bora.net 0 0 0 +0.000 2000.000 +0ns 4000ms
168.126.3.6 0 0 0 +0.000 2000.000 +0ns 4000ms
ntp.postech.ac.kr 0 0 0 +0.000 2000.000 +0ns 4000ms
210.98.16.100 0 0 0 +0.000 2000.000 +0ns 4000ms
210.98.16.101 5 3 73 +7.218 140.917 +158us 494us
time2.google.com 5 3 72 -23.164 137.561 -5848us 604us
time.cloudflare.com 5 3 72 -14.607 450.838 +1711us 1259us
prod-ntp-3.ntp1.ps5.cano> 4 3 10 +244.199 3088.317 +23ms 837us
prod-ntp-4.ntp1.ps5.cano> 5 5 78 +6.587 716.674 +1209us 2705us
alphyn.canonical.com 5 4 72 +86.920 2545.243 +8258us 1438us
prod-ntp-5.ntp1.ps5.cano> 4 4 8 -79.527 4390.572 -7502us 683us
106.247.248.106 5 5 72 +1.864 181.021 +778us 632us
시간 오차가 클 경우 즉시 시스템 시간을 NTP 서버와 동기화
chronyc -a makestep
200 OK
시스템의 시간 동기화 상태 확인
chronyc tracking
Reference ID : D2621065 (210.98.16.101)
Stratum : 3
Ref time (UTC) : Thu Oct 24 04:10:32 2024
System time : 0.001710546 seconds slow of NTP time
Last offset : -0.002071171 seconds
RMS offset : 0.000932353 seconds
Frequency : 18.982 ppm slow
Residual freq : -4.194 ppm
Skew : 72.622 ppm
Root delay : 0.011854849 seconds
Root dispersion : 0.007438552 seconds
Update interval : 65.1 seconds
Leap status : Normal
연결된 클라이언트 정보 확인 (서버일 경우)
chronyc clients
Hostname NTP Drop Int IntL Last Cmd Drop Int Last
===============================================================================
node2 21 0 6 - 8 0 0 - -
클라이언트 서버 (192.168.10.112)
1. ntpdata 설치
ntpdate 패키지 설치
sudo apt update
sudo apt install ntpdate
원격 시간 확인 (-q 옵션)
sudo ntpdate -q 192.168.10.111
server 192.168.10.111, stratum 3, offset -0.010633, delay 0.02882
24 Oct 13:16:48 ntpdate[2061]: adjust time server 192.168.10.111 offset -0.010633 sec
시간 동기화
sudo ntpdate 192.168.10.111
24 Oct 13:17:33 ntpdate[2067]: adjust time server 192.168.10.111 offset -0.010505 sec
2.1 Chrony 설치
Chrony 패키지 설치
sudo apt update
sudo apt install chrony
chronyc -v
서비스 시작 및 활성화
sudo systemctl --now enable chrony
Chrony 서비스 상태 확인
sudo systemctl status chrony
2.2 Chrony 설정
sudo vim /etc/chrony/chrony.conf
sudo tee /etc/chrony/chrony.conf <<EOF
server 192.168.10.111 iburst
driftfile /var/lib/chrony/chrony.drift
log tracking measurements statistics
logdir /var/log/chrony
maxupdateskew 100.0
rtcsync
makestep 1 3
EOF
Chrony 서비스 재시작
sudo systemctl restart chrony
2.3 Chrony 동작 확인
시간 동기화 상태 확인
chronyc tracking
Reference ID : C0A80A6F (node1)
Stratum : 4
Ref time (UTC) : Thu Oct 24 04:18:43 2024
System time : 0.000757098 seconds slow of NTP time
Last offset : -0.001043119 seconds
RMS offset : 0.001043119 seconds
Frequency : 27.101 ppm slow
Residual freq : +7.895 ppm
Skew : 1000000.000 ppm
Root delay : 0.008760448 seconds
Root dispersion : 0.528876126 seconds
Update interval : 0.0 seconds
Leap status : Normal
연결된 NTP 서버 상태 확인
chronyc sources -v
.-- Source mode '^' = server, '=' = peer, '#' = local clock.
/ .- Source state '*' = current best, '+' = combined, '-' = not combined,
| / 'x' = may be in error, '~' = too variable, '?' = unusable.
|| .- xxxx [ yyyy ] +/- zzzz
|| Reachability register (octal) -. | xxxx = adjusted offset,
|| Log2(Polling interval) --. | | yyyy = measured offset,
|| \ | | zzzz = estimated error.
|| | | \
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^* node1 3 6 17 19 +172us[ +274us] +/- 9866us
Chrony 서버와 클라이언트를 설정하고 시간 동기화를 수행할 수 있습니다.
참고URL
- Ubuntu Manpage : ntpdate
- Ubuntu Manpage : chronyd
'리눅스' 카테고리의 다른 글
우분투에서 IP 주소를 고정하는 방법 (0) | 2023.05.20 |
---|---|
우분투에 MySQL 5.7을 바이너리 파일로 설치하는 방법 (0) | 2023.05.20 |
우분투에서 Squid 및 Webmin을 설치하는 방법 (0) | 2023.05.14 |
Squid를 Docker 컨테이너로 실행하는 방법 (0) | 2023.05.12 |
리눅스에서 프록시를 지정하는 방법 (0) | 2023.05.12 |