...
NTP 시간 동기화 (Ubuntu)
서버를 운영한다고 하면, 서버의 시간은 매우 중요한 부분이다. 여러 사용자가 접속하여 서비스를 이용하는데, 시간이 어긋나버리면 서비스와 동작에 영향을 미칠 수 있기 때문이다. 또한 일반적인 클라이언트 PC 같은 경우 시간이 0.1 ~ 1초 틀어진다고 해도 큰 문제가 되지는 않지만, 서버 같은 경우 시간이 스크립트 트리거(Trigger) 역할을 하고 로그 또한 시간 단위로 기록되기 때문에 정확한 시간 설정이 필수 이다.
보통서버는 ntp서버 라는 시간의 기준이되는 서버가 존재한다. 일반서버들은 대부분 ntp서버와 통신을하여 시간을 맞추게 된다.
공용 ntp 서버로는 time.bora.net, time.nuri.net, time.windows.com, time.google.com 등을 많이 사용한다.
- time.bora.net (203.248.240.140)
- time.nuri.net (211.115.194.21)
- time2.kriss.re.kr (210.98.16.101)
우분투에서 ntp서버와 시간동기화 하는 방법은 크게 2가지 있다.
rdate 명령어 사용
$ apt-get install rdate # rdate설치
$ rdate -s [ntp서버url] # rdate 명령어수행
$ date # 변경된 시간 확인
위의 명령어를수행하면, ntp서버와 시간동기화를 하게 된다. 그러나 rdate 명령어는 명령어를 수행할때 시간을 맞춰주기때문에, 몇초씩 벌어질 수 있다는 단점이 있다. 그렇기 때문에 rdate를 이용해 시간을 동기화 할 경우, 보통 crontab에 명령어를 수행하도록 설정을 하는 편이다.
ntp 서비스 사용
$ apt-get install -y ntp # ntp 설치가 완료되면 /etc 경로에 ntp.conf 라는 ntp 설정파일이 생성된다.
설치가 완료되면, ntp.conf 파일을 열어 세팅해야 된다.
$ vi /etc/ntp.conf # root로 열어준다.
우선 빨간 박스로 쳐진 부분을 주석 처리해주고, 뒤에 ntp서버를 설정해 준다.
ntp 서버는 여러가지가 있는데, 포스팅 초반부분에서 소개한 time.bora.net 에 연결하는 예시를 들어보면,
주석 처리한 부분 바로 아래 server 203.248.240.140 iburst 를 적어주고 저장해주면 된다.
공식 ntp 사이트를 이용한다고 하면, 아래의 링크된 공식 사이트로 들어가 보면 한국 pool 이 보이는데 3개의 값들을 그대로 긁어와 붙여주면 된다.
pool.ntp.org: NTP Servers in Korea, kr.pool.ntp.org
Korea — kr.pool.ntp.org We need more servers in this country. If you have a server with a static IP, please consider joining the pool! To use this specific pool zone, add the following to your ntp.conf file: server 1.kr.pool.ntp.org server 2.asia.pool.nt
www.ntppool.org
모두 입력했으면 서비스를 재기동 한다.
$ service ntp restart # ntp 재시작
# or
$ systemctl start ntp # 서비스 실행
$ systemctl status ntp # 서비스 상태 확인
$ ntpq -p # ntp 시간 동기화 확인
- remote : sync 를 하는 straum 2 서버주소
- refid : 각 straum 2 서버가 현재 sync 를 하고 있는 straum 1 서버를 보여준다.
- st : 이 값이 16일 경우 해당 서버에 접속 할 수 없는 상태다.
- delay : 양수이며 최대한 작은게 좋은 서버
- * 표시가 있는 것이 현재 NTP 데몬이 싱크를 하고 있는 서버
- + 는 ntp 알고리즘에 의해 접속은 가능하지만 sync 를 하고 있지는 않음을 의미
- - 는 ntp 알고리즘에 의해 접속은 가능하지만 sync 가능 리스트에서 제외
- 아무 기호 표시 없다면 접속이 불가능
시간이 좀 지나서 서버주소 앞에 (*) 나타나면 정상이다.
ntp 문제 해결
간혹 ntp서버와 시간 동기화를 했음에도 불구하고 시간변경이 안되는 경우가 있다.
아래의 명령어로 현재서버의 localtime 파일이 어떤 파일에 링킹 되어있는지 확인을 해본다.
$ ll /etc/localtime
만일 서울이 아닌 뉴욕 같은 다른 도시로 맞춰져 있다면, 동기화를하더라도 시차가 발생하기 때문에 수정을 해야 한다.
$ rm-rf /etc/localtime
$ ln -s /usr/share/zoneinfo/Asia/Seoul/etc/localtime
이외의 동기화 문제
1. NTP서버의 ip주소가 변경 되었을 수 있다.
2. 만약 도메인으로 서버를 넣으셨다면 DNS 설정을 확인한다.
3. 방화벽에 차단되고 있을 수 있다. NTP서비스는 123포트를 사용한다. 포트를 오픈 해준다.
# 참고자료
https://koostar.tistory.com/193
https://letitkang.tistory.com/186
https://webdir.tistory.com/120
이 글이 좋으셨다면 구독 & 좋아요
여러분의 구독과 좋아요는
저자에게 큰 힘이 됩니다.