더북(TheBook)

네트워크 서비스 시작하기

다른 프로그램에게 서비스를 요청하는 프로그램을 클라이언트, 요청에 응답하는 프로그램을 서버라고 합니다. 서버는 사용자가 직접 제어하지 않고 백그라운드에서 실행되면서 여러 작업을 하는 처리해야 합니다. 이러한 시스템 프로세스를 데몬daemon이라고 하며 일반적으로 서버는 데몬으로 동작합니다.

네트워크 시간 프로토콜Network Time Protocol, NTP을 대상으로 리눅스에서 네트워크 서비스를 제공하는 실습을 해보겠습니다. NTP는 인터넷을 통해 시스템 시간을 동기화하기 위한 서비스로 시간 서버로부터 시간 정보를 받아와서 시스템 시간을 조정합니다.

apt-get update 명령으로 패키지 정보를 갱신하고 apt-get install 명령으로 NTP 서버인 ntpd (NTP 데몬)를 설치합니다.

shinjaehun@losttemple:~$ sudo apt-get update
shinjaehun@losttemple:~$ sudo apt-get install ntp

일반적으로 루트 권한으로 서비스를 시작합니다. sudo service [서비스 이름] [옵션] 형식으로 입력하며 NTP 서비스를 시작하려면 다음과 같이 start 옵션을 붙여야 합니다.

shinjaehun@losttemple:~$ sudo service ntp start

서버의 환경 설정을 변경하려면 vi를 비롯한 텍스트 편집기로 설정 파일을 수정해야 합니다. NTP 서버의 환경 설정 파일은 /etc/ntp.conf입니다.

shinjaehun@losttemple:~$ sudo vi /etc/ntp.conf
Tip

vi 사용법은 ‘3.8 텍스트 에디터 vi 다루기’에서 설명하고 있습니다.

기본적으로 시간 정보를 받아오는 서버의 주소는 ubuntu.pool.ntp.org로 정해져 있는데 다음과 같이 행 처음에 ‘#’ 표시를 달아서 주석 처리, 즉 설정 내용을 반영하지 않도록 고쳤습니다. 우리나라 NTP 서버인 time.bora.net의 주소를 입력했고 ntp.ubuntu.com도 주석 처리했습니다. 설정 파일 수정이 끝나면 :wq를 입력해서 파일 내용을 저장하고 커맨드라인으로 돌아옵니다.

# Use servers from the NTP Pool Project. Approved by Ubuntu Technical Board
# on 2011-02-08 (LP: #104525). See http://www.pool.ntp.org/join.html for
# more information.

#server 0.ubuntu.pool.ntp.org
#server 1.ubuntu.pool.ntp.org
#server 2.ubuntu.pool.ntp.org
#server 3.ubuntu.pool.ntp.org

server time.bora.net

# Use Ubuntu's ntp server as a fallback.
#server ntp.ubuntu.com

ntp 데몬을 재시작해서 수정한 설정 내용을 반영합니다. restart 옵션을 넣어서 ntp 서비스를 재시작합니다.

shinjaehun@losttemple:~$ sudo service ntp restart
 * Stopping NTP server ntpd                                    [ OK ]
 * Starting NTP server ntpd                                    [ OK ]

시스템 프로세스는 백그라운드에서 실행합니다. ps 명령으로 ntp 데몬이 동작하는 상태를 확인할 수 있습니다.

shinjaehun@losttemple:~$ ps -ef | grep ntp
ntp       8202  3538  0 16:50 ?        00:00:00 /usr/sbin/ntpd -p /var/run/ntpd.pid -g 
-u 116:125

서비스가 제대로 실행되고 있는지 확인해봅시다. ntpq는 시간 서버의 상태를 조회하는 명령으로 ntp 패키지를 설치하는 과정에서 함께 설치되는 도구입니다. -p 옵션으로 설정 파일에 등록한 시간 서버 time.bora.net과의 동기화 상태를 확인할 수 있습니다.

shinjaehun@losttemple:~$ ntpq -p
     remote           refid       st t when poll reach delay   offset   jitter
==============================================================================
 time.bora.net    90.1.14.51        2 u    1   64    1  15.527  -35.130  0.000

시간이 지나면(약 5분에서 10분쯤 뒤에) 시간 서버 주소 앞에 *가 표시되는데 이는 원격 서버로부터 시간 정보를 동기화하기 시작했음을 알려줍니다.

shinjaehun@losttemple:~$ ntpq -p
     remote           refid     st t when poll reach  delay   offset   jitter
==============================================================================
*time.bora.net    90.1.14.51      2 u   37   64   37   15.050  -48.823   8.679
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.