[Linux] 리눅스 NTP 세팅으로 시간 동기화 설정, 타임 존 설정 (Timedatectl, Chronyd)

2021. 4. 23. 08:02IT/Operating System

 모든 생명과 우주는 정교하게 짜여 있다. 그것을 시간 단위로 수치화하여 사람이 운용할 수 있게 하였는데 서로 시간을 동기화하여 맞추지 않으면 약속, 일, 건강 등 모든 것이 틀어지게 된다. 이것은 컴퓨터 장비에서도 마찬가지이다.

 장비의 시간이 제멋대로라면 단독장비만 사용할 때는 큰 불편함을 느끼지 못하겠지만 네트워크에 연결되는 순간 서로 간 다른 시간으로 명령어를 주고받고 로그를 생성하기 때문에 제대로 웹페이지에 접속이 안된다던가 프로그램 작동이 오류가 나는 경우가 많다. 특히 어렸을 때 시간을 맞추지 않고 대충 사용하는 친구 녀석의 컴퓨터가 이것저것 버그가 발생해서 확인해 보니 시간만 맞춰서 해결되었던 적이 기억이 난다.

 

 리눅스에서 시간을 세팅하는 방법은 그리 어렵지 않다. 일단 OS를 설치 후 프로그램을 구동하기 전에 기본 세팅 들을 해줘야 하는데 그 세팅 중 하나가 시간을 맞추는 것이다.

 

 만약 NTP가 설정되어있지 않다면 Timezone 설정 후 NTP를 설정하면 되고 NTP를 사용하지 않겠다고 하면 Timezone 설정 후 시간만 설정하면 된다.

 

 이번 내용은 NTP를 사용하기 위함에 대한 글이다.

 

리눅스 커널 7 버전 이후로 부터는 timedatectl을 통해 시간 제어가 가능하다. 하기 명령어를 통해 현재 상태를 확인해 볼 수 있다.

 

 > timedatectl

 

 

현재 시간 설정 상태 확인

 

 

 만일 Asia/Seoul이 아닌 다른 지역으로 되어있어서 KST 시간으로 되어있지 않다면 하기 명령어로 서울로 잡아주자.

 

 > timedatectl set-timezone Asia/Seoul

 

 다시 확인해 보면 문제없이 Seoul로 잡혀 있을 것이다.

 

이제 시간 동기화를 통해 자동으로 시간을 맞춰 보자. NTP는 네트워크 포트 123번 을 통해 상대화 시간 정보를 교환한다. Chronyd라는 데몬이 그 역할을 해주는 프로그램이라고 보면 되는데 systemctl로 데몬 상태를 확인하고 active인지를 확인 하자.

 

 

 > systemctl status chronyd

 

NTP 데몬인 Chronyd의 상태 Active 확인

 

 

 데몬이 잘 설치가 되어있는 것을 확인하였다면 설정 파일 수정하여 시간을 받아올 서버를 지정해 주면 된다. (데몬이 없으면 설치 필요)

 웬만한 설정 파일은 리눅스의 기본 폴더인 /etc에 들어있다.

 

 

 > vi /etc/chrony.conf

 

 편집기로 세팅을 볼 수 있는데 첫 줄에 server로 시작하는 값을 한 줄만 추가해 보자.  필자는 구글 NTP 서버를 이용하였는데 만일 별도의 내부 시간 제공 서버가 있다면 IP를 쳐주면 된다. 혹시 시간 서버를 다중화 하고싶다면 여러 줄을 입력해 주면 된다.

인터넷이 되는 리눅스 서버이니 구글로 서버를 지정

 수정한  설정 파일을 다시 읽을 수 있도록 데몬을 재 실행시켜주고 상태를 보자

# 데몬 restart
 > systemctl restart chronyd

 

# 상태 체크

 > chronyc sources -v

 

“*” 표시가 NTP 서버 주소 옆에 붙어야 정상

 상태 체크 명령어를 통해 자세히 상태를 볼 수 있으며 아래쪽 서버로부터 밭아온 주소와 자세한 상태를 조회할 수 있겠다.

 

이로써 리눅스의 시간을 자동으로 맞춰주는 NTP기능을 활성화시켜 준다.

 

● 결론

  1. NTP는 생각보다 중요함

  2. chrony 데몬 으로 NTP 세팅 및 조회하니 정보가 디테일하여 좋다.

  3. 혹시 작동이 잘 안 되면 Network Port 123번을 OS, 하드웨어 방화벽에서 막지 않았는지 체크가 필요