리눅스 서버를 운영하다 보면 서버의 날짜와 시간이 실제 시간과 다르게 표시되는 경우가 있습니다. 처음에는 단순히 시계가 조금 틀린 문제처럼 보이지만, 서버 환경에서는 시간 오차가 로그 분석, 인증, 데이터 처리, 자동화 작업 등에 영향을 줄 수 있습니다.
특히 여러 대의 서버를 운영한다면 각 서버의 시간이 서로 다를 경우 장애가 발생한 정확한 시간을 파악하기 어려워집니다. 그래서 리눅스 서버에서는 NTP(Network Time Protocol)를 이용한 시간 동기화가 중요합니다.
Red Hat 역시 네트워크 장비와 서버의 시간이 일관되게 유지되면 로그 추적성이 좋아지고, Kerberos와 같이 동기화된 시간을 필요로 하는 프로토콜도 있다고 설명합니다.
이번 글에서는 리눅스 서버의 현재 시간 확인부터 시간대 설정, NTP 동기화 상태 확인, chrony를 이용한 시간 동기화 방법까지 단계별로 알아보겠습니다.
1. 리눅스 서버 시간이 중요한 이

유
서버에서는 다양한 작업이 시간 정보를 기준으로 실행됩니다.
예를 들어 다음과 같은 작업이 있습니다.
- 시스템 로그 기록
- 데이터베이스 작업 시간 기록
- 백업 작업
- 크론(Cron) 자동 실행
- SSL/TLS 인증서 검증
- 서버 간 통신
- 사용자 로그인 인증
- 장애 발생 시간 확인
만약 서버 시간이 실제 시간보다 크게 차이 난다면 로그의 순서가 뒤섞일 수 있습니다.
예를 들어 웹서버에서 오류가 오후 3시에 발생했는데 로그에는 오후 2시 40분으로 기록된다면 장애 원인을 분석하는 과정이 복잡해질 수 있습니다.
여러 서버를 동시에 운영하는 환경에서는 시간 동기화가 더욱 중요합니다.
2. 현재 서버 시간 확인하기
가장 간단하게 현재 시간을 확인하는 명령어는 date입니다.
date
실행하면 현재 서버의 날짜와 시간이 표시됩니다.
Sun Sep 6 18:20:10 KST 2026
좀 더 자세한 시간 정보를 확인하려면 timedatectl을 사용할 수 있습니다.
timedatectl
일반적으로 다음과 같은 정보를 확인할 수 있습니다.
Local time: Sun 2026-09-06 18:20:10 KST
Universal time: Sun 2026-09-06 09:20:10 UTC
Time zone: Asia/Seoul (KST, +0900)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no
timedatectl은 현재 시간뿐만 아니라 시간대와 NTP 동기화 상태까지 한 번에 확인할 수 있어 서버 관리에서 매우 유용합니다.
3. 리눅스 서버 시간대 확인하기
서버의 시간이 잘못되어 있다면 실제 시간 자체가 틀린 것이 아니라 시간대(Time Zone)가 잘못 설정된 경우도 있습니다.
현재 시간대를 확인합니다.
timedatectl
또는 다음 명령어를 사용할 수 있습니다.
timedatectl list-timezones
한국 서버라면 일반적으로 다음과 같이 설정할 수 있습니다.
sudo timedatectl set-timezone Asia/Seoul
설정한 뒤 다시 확인합니다.
timedatectl
다음과 같이 표시된다면 한국 시간대로 설정된 것입니다.
Time zone: Asia/Seoul (KST, +0900)
Red Hat 문서에서도 timedatectl set-timezone 명령을 이용해 시스템의 시간대를 변경하는 방법을 안내하고 있습니다.
4. NTP란 무엇인가?
NTP는 Network Time Protocol의 약자입니다.
쉽게 말하면 인터넷이나 네트워크에 있는 기준 시간 서버를 이용하여 컴퓨터의 시간을 정확하게 맞추는 기술입니다.
서버가 자체적으로 가지고 있는 시스템 시계는 시간이 지나면서 조금씩 오차가 발생할 수 있습니다.
NTP는 이러한 오차를 보정하면서 서버의 시스템 시간을 기준 시간에 맞춰줍니다.
Ubuntu 공식 문서에서도 NTP를 네트워크를 통해 시간을 동기화하는 프로토콜로 설명하고 있습니다.
5. NTP 동기화 상태 확인하기
현재 서버에서 NTP가 활성화되어 있는지 확인하려면 다음 명령어를 사용합니다.
timedatectl
다음과 같은 항목을 확인하면 됩니다.
System clock synchronized: yes
NTP service: active
정상적으로 동기화되고 있다면 yes, active와 같은 상태가 표시됩니다.
반대로 다음과 같이 표시된다면 시간 동기화 설정을 확인해야 합니다.
System clock synchronized: no
NTP service: inactive
이 경우 NTP 서비스가 실행되고 있는지 확인해야 합니다.
6. chrony란 무엇인가?
리눅스 서버에서 NTP 동기화를 담당하는 프로그램으로 많이 사용되는 것이 chrony입니다.
chrony는 시스템 시간을 NTP 서버와 동기화하고 지속적으로 시간 오차를 보정하는 역할을 합니다.
Red Hat Enterprise Linux 8 이후에는 chronyd가 NTP 구현에 사용되며, Ubuntu 역시 최신 버전에서는 chrony를 기본 시간 동기화 방식으로 사용합니다. Ubuntu 공식 문서에 따르면 Ubuntu 25.10부터 chrony가 기본으로 사용됩니다.
chrony에는 다음 두 가지 주요 프로그램이 있습니다.
chronyd
chronyc
chronyd는 실제 시간 동기화를 수행하는 데몬이고, chronyc는 chronyd의 상태를 확인하고 관리하기 위한 명령줄 도구입니다.
7. chrony 설치하기
Ubuntu 계열에서 chrony가 설치되어 있지 않다면 다음 명령어로 설치할 수 있습니다.
sudo apt update
sudo apt install chrony
설치가 완료되면 서비스를 확인합니다.
systemctl status chrony
환경에 따라 서비스 이름이나 기본 시간 동기화 방식이 다를 수 있으므로 현재 서버의 배포판과 버전을 먼저 확인하는 것이 좋습니다.
8. chrony 시간 동기화 상태 확인하기
chrony가 정상적으로 동작하는지 확인하려면 다음 명령어를 사용할 수 있습니다.
chronyc tracking
또는 더 자세하게 확인하려면 다음과 같이 실행합니다.
chronyc sources -v
chronyc tracking에서는 기준 시간 서버, Stratum, 시간 오차 등의 정보를 확인할 수 있습니다.
Ubuntu 공식 문서에서도 chronyc -N tracking을 이용하여 chrony의 시간 정확도와 동기화 상태를 확인하는 방법을 설명하고 있습니다.
9. NTP 서버 확인하기
chrony가 어떤 서버를 기준으로 시간을 맞추고 있는지 확인하려면 다음 명령어를 사용합니다.
chronyc sources -v
출력 결과에는 현재 사용 가능한 시간 서버와 동기화 상태가 표시됩니다.
예를 들어 다음과 같은 형태로 확인할 수 있습니다.
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^* time.example.com 2 6 377 30 +120us
^+ time2.example.com 2 6 377 28 -80us
여기에서 현재 선택된 시간 서버를 확인할 수 있습니다.
10. NTP 동기화가 되지 않을 때 확인할 사항
NTP가 정상적으로 동작하지 않는다면 다음 항목을 순서대로 확인하는 것이 좋습니다.
① 네트워크 연결 확인
ping -c 4 8.8.8.8
인터넷 연결 자체에 문제가 없는지 확인합니다.
② NTP 서비스 확인
timedatectl
NTP 서비스가 활성화되어 있는지 확인합니다.
③ chrony 서비스 확인
systemctl status chrony
서비스가 중지되어 있다면 환경에 맞는 방식으로 서비스를 시작합니다.
sudo systemctl enable --now chrony
④ chrony 상태 확인
chronyc tracking
시간 서버와 정상적으로 동기화되고 있는지 확인합니다.
⑤ 시간 서버 설정 확인
chronyc sources -v
NTP 서버가 정상적으로 응답하고 있는지 확인합니다.
11. NTP 통신에 사용되는 포트
NTP는 일반적으로 UDP 123번 포트를 사용합니다.
따라서 방화벽이나 클라우드 보안 정책에서 NTP 서버와의 통신이 차단되어 있다면 시간 동기화가 정상적으로 이루어지지 않을 수 있습니다.
Ubuntu의 최신 chrony 구성에서는 NTP 자체는 UDP 123번을 사용하며, NTS를 사용하는 경우 시간 서버 인증을 위한 별도의 TCP 4460 포트가 사용될 수 있습니다.
따라서 서버에서 NTP가 작동하지 않는다면 네트워크 방화벽이나 클라우드 보안 그룹 등의 정책도 함께 확인해야 합니다.
12. 서버 시간을 수동으로 설정할 수도 있을까?
NTP를 사용할 수 없는 상황에서는 서버 시간을 수동으로 설정할 수도 있습니다.
예를 들어 다음과 같이 설정할 수 있습니다.
sudo timedatectl set-time "2026-09-06 18:30:00"
설정 후 확인합니다.
date
하지만 운영 서버에서는 수동으로 시간을 계속 맞추는 것보다 NTP를 이용한 자동 동기화를 사용하는 것이 좋습니다.
수동으로 시간을 변경하면 다른 서버와 시간 차이가 다시 발생할 수 있기 때문입니다.
13. 시간 동기화 서비스를 여러 개 실행하지 않기
서버에서 여러 시간 동기화 서비스가 동시에 시간을 관리하도록 설정하면 문제가 발생할 수 있습니다.
예를 들어 chrony를 사용하면서 systemd-timesyncd까지 동시에 관리하려고 하면 서로 다른 서비스가 시스템 시간을 제어하려고 할 수 있습니다.
Ubuntu 공식 문서에서도 chrony가 설치된 경우 timedatectl이 chrony가 시간 관리를 담당하도록 하여 여러 시간 동기화 서비스가 충돌하지 않도록 한다고 설명합니다.
따라서 서버에서는 하나의 시간 동기화 방식을 선택해서 관리하는 것이 좋습니다.
14. 리눅스 서버 시간 설정 점검 순서
실제 서버에서 시간 문제가 발생했다면 다음 순서로 확인하면 편리합니다.
① date로 현재 시간 확인
↓
② timedatectl로 시간대 확인
↓
③ NTP 동기화 상태 확인
↓
④ chrony 서비스 상태 확인
↓
⑤ chronyc tracking 확인
↓
⑥ chronyc sources -v 확인
↓
⑦ 네트워크와 UDP 123 포트 확인
주요 명령어만 정리하면 다음과 같습니다.
date
timedatectl
timedatectl list-timezones
chronyc tracking
chronyc sources -v
systemctl status chrony
15. 정확한 서버 시간이 중요한 이유
서버의 시간이 정확해야 하는 가장 중요한 이유는 서버에서 발생하는 모든 작업의 기록을 신뢰할 수 있기 때문입니다.
특히 여러 서버에서 동시에 장애가 발생했을 때 각 서버의 시간이 다르면 어떤 작업이 먼저 발생했는지 판단하기 어렵습니다.
반면 모든 서버가 같은 기준 시간으로 동기화되어 있다면 웹서버 로그, 애플리케이션 로그, 데이터베이스 로그를 비교하면서 장애 발생 과정을 추적하기 쉬워집니다.
또한 일부 인증 프로토콜은 시간 정보에 의존하기 때문에 서버 간 시간 차이가 인증 문제로 이어질 수도 있습니다. Red Hat은 대표적인 사례로 Kerberos가 타임스탬프를 사용한다고 설명합니다.
마무리
리눅스 서버의 시간 설정은 단순히 현재 시각을 맞추는 작업이 아닙니다. 서버 로그를 정확하게 기록하고, 여러 서버의 작업 순서를 확인하며, 인증과 네트워크 서비스를 안정적으로 운영하기 위해 필요한 기본 관리 항목입니다.
서버의 현재 시간은 date로 확인할 수 있고, 시간대와 NTP 상태는 timedatectl을 이용하면 편리합니다.
또한 운영 환경에서는 chrony를 활용하여 서버의 시간을 지속적으로 동기화할 수 있습니다.
특히 서버 장애를 분석할 때 로그의 시간이 정확하지 않으면 원인을 찾는 데 많은 시간이 걸릴 수 있습니다. 따라서 리눅스 서버를 운영한다면 시간대 설정 → NTP 활성화 → chrony 상태 확인 순서로 기본적인 시간 동기화 상태를 점검하는 습관을 갖는 것이 좋습니다.