윈도우 서버 2008 R2에 NTP 서버 기능이 있을까? 혹시나 싶어 역할/기능 추가 마법사를 찾아보아도 NTP와 관련된 내용은 전혀 보이지 않는다.


그렇다면 기능이 없다는 말인가? 그럴 리가...

윈도우에서 NTP 서버 및 클라이언트 기능은 W32Time 서비스가 담당한다. 그런데 NTP 서버 기능은 기본적으로 비활성화 되어 있다. 따라서 이 부분을 활성화 해주면 끝이다.

그런데 일단 현재 활성화가 되어 있는지부터 먼저 확인해보자. 아래 커맨드를 입력해보라.

w32tm /query /configuration

아마 아래와 같은 에러가 발생할지도 모른다.


에러가 발생하는 이유는 W32Time 서비스가 시작되지 않았기 때문이다. 그런데 이 서비스는 기본 값으로 시작 유형이 자동으로 설정되어 있다. 따라서 서버가 부팅되면서 자동으로 올라올 것 같은 착각이 든다. 하지만 실제론 자동으로 시작되지 않는다. 그 이유는 트리거가 AD 도메인 조인된 경우에 시작되도록 설정되어 있기 때문이다.

sc qtriggerinfo w32time


물론 도메인 환경이라면 그냥 사용해도 무방하겠으나, 만약 WORKGROUP 환경이라면 아래와 같이 W32Time 서비스의 트리거를 "네트워크 시작과 중지" 조건으로 변경해보자.

sc triggerinfo w32time start/networkon stop/networkoff


트리거를 수정했다면 이제 W32Time 서비스를 실행한 후 현재 NTP 상태를 확인해보자.

net start w32time
w32tm /query /configuration

아래와 같이 마지막 부분에 NtpServer 정보가 나오는데, Enabled: 0 이라고 보인다. 즉 NTP 서버로서의 기능은 비활성화 되어 있다는 뜻이다.


이제 이 부분을 활성화 해보자. 아래와 같이 레지스트리 수정으로 간단히 해결된다.

reg add "HKLM\SYSTEM\CurrentControlSet\services\W32Time\TimeProviders\NtpServer" /v "Enabled" /t "REG_DWORD" /d "1" /f

그런 다음 W32Time 서비스를 재시작 해주거나, 아니면 아래와 같이 설정값을 업데이트 해주면 된다.

w32tm /config /update


이렇게 활성화 시킨 후 다시 확인해보니 이번에는 Enabled: 1 로 잘 변경되어 있었다.

w32tm /query /configuration


확인을 위해 CentOS에서 ntpdate로 이 서버를 지정하여 테스트 해보니 동기화가 잘 되었다.


그런데 NTP 서버 역할을 올바로 수행하기 위해서는, 자기 자신도 NTP 클라이언트가 되어 신뢰할 수 있는 외부 NTP 서버를 바라보며 주기적으로 시간 동기화를 해야 한다. NTP 클라이언트로서의 설정 방법은 아래 포스팅을 참고하면 된다.

2014/02/12 - [윈도우 일반] - 윈도우 NTP 동기화