✅ 왜 regedit에 넣었는데도 적용 안 돼?
- SpecialPollInterval 값 자체는 항상 레지스트리에 존재 가능
- 그런데:
- /query /configuration 명령에서 NtpClient 의 SpecialPollInterval 값이 활성 값(Active) 으로 안 뜸
- 이유: flag 값(0x8)이 없어서 w32time이 이 값을 실제로 안 쓰고 있기 때문
즉, 값은 저장되어 있지만, w32time 서비스가 “안 써!” 라고 무시하는 상태
✅ 왜 값이 점점 늘어나 보이나?
- w32time은 가변 polling interval 구조:
- 초기 sync 성공 → 점점 polling 간격을 늘려서 네트워크 부하 줄임
- jitter, 지연, 서버 품질 따라 poll 간격 조정
- flag=0x8 없이 Client 모드(flag=0x1 등)만 쓰면 →
기본 값(1024초=약 17분)을 시작으로, 점점 더 늘어나서 몇 천 초까지 가기도 함
🧪 동작 예제
- flag=0x9 → 0x8(SPECIAL_INTERVAL) + 0x1(CLIENT)
- 이렇게 해야 SpecialPollInterval 값(예: 60초)을 무조건 사용
- flag=0x1만 있으면 → SpecialPollInterval 무시, w32time이 자체 계산으로 poll 간격 설정
✅ 정리
| regedit 값은? | 단순 데이터, 적용 여부는 flag 설정에 달림 |
| 적용되려면? | /manualpeerlist 설정 + flag=0x9 필요 |
| 왜 값이 늘어나? | 기본 클라이언트 모드에선 동적 poll 간격으로 점점 증가 |
✅ 플래그의 의미 (핵심 요약)
NTP 서버 주소 뒤에 붙는 ,0x숫자 값은
w32time 서비스가 이 서버를 어떤 모드로 사용할지 알려주는 설정입니다.
📌 가장 많이 쓰는 값
| 0x1 | CLIENT 모드 (단순 클라이언트) | poll interval은 w32time이 자동으로 계산, 동적 증가 |
| 0x8 | SPECIAL_INTERVAL 모드 (특수 폴링 사용) | SpecialPollInterval 값을 무조건 사용 (poll interval 고정) |
| 0x9 | CLIENT + SPECIAL_INTERVAL (0x1 + 0x8) | 둘 다: 클라이언트로 동작하면서, poll interval은 SpecialPollInterval 값 사용 |
✅ 현실적인 설정 팁
- 0x8만 쓰면?
- 제대로 동작하지 않을 수 있음 → 서버랑 대화 자체를 안 하거나 sync 실패하는 사례 많음
- 이유: CLIENT 플래그 없이 SPECIAL_INTERVAL만 쓰면, 서버를 제대로 피어로 인식 못 하는 버그/특성
- 그래서 Microsoft 공식 문서/운영자 가이드에서도 권장:
- 0x9 → CLIENT + SPECIAL_INTERVAL 같이 설정
📍 요약
| 서버랑 단순 클라이언트로만 sync (poll interval 자동 증가) | 0x1 | poll interval 자동 계산 |
| 서버랑 sync + poll interval 고정 (SpecialPollInterval 값 사용) | 0x9 | 추천 |
| 특별히 실험/테스트용으로만 poll interval 강제 | 0x8 | 동작 불안정 가능 |
⚠ 정리
- 안정성과 실전용: 0x9 (CLIENT + SPECIAL_INTERVAL) → 거의 표준
- 0x8만 쓰면 이론상 SpecialPollInterval 사용하지만, 서버와 sync가 안 되거나 적용 안 되는 사례 잦음
- 0x1만 쓰면 poll interval 자동 증가 (SpecialPollInterval 무시)
⚙️ 기본 동작 정리:
| ntp.server.com | 기본값 0x1 | poll interval 자동 증가, SpecialPollInterval 무시 |
| ntp.server.com,0x8 | SPECIAL_INTERVAL만 | poll interval은 고정, but 동작 불안정 가능 |
| ntp.server.com,0x9 | CLIENT+SPECIAL_INTERVAL | poll interval 고정, 안정적 동작 (권장) |
✅ 왜 안 뜰 수 있나?
w32tm /query /configuration 명령어는
실제 레지스트리에 설정된 값 중에서 시스템에 적용된 값만 보여주는데,
다음과 같은 경우엔 syncfromflags 항목이 안 보일 수 있어요:
| 아직 수동으로 설정한 적 없음 | /syncfromflags:manual 같은 명령을 안 했거나, /update를 안 해서 적용 안 됨 |
| 설정이 초기화됨 | w32tm /unregister → w32tm /register 같은 초기화 명령 이후 초기 상태 |
| 기본값 사용 중 | 기본적으로 도메인 조인 안 된 워크스테이션은 NtpServer 대신 “Local CMOS Clock” 같은 기본값만 적용 |
| 잘못된 순서 | 설정 변경 후 net stop w32time && net start w32time 안 해서 적용 안 됨 |
레지스트리
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\w32time\Parameters
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\w32time\TimeProviders\NtpClient
w32tm /config /manualpeerlist:"서버들" /syncfromflags:manual /update
-> 위 명령어는 W32Time\Parameters - NtpServer(REG_SZ) 값을 변경합니다
-> 실제로 NTP 동기화에 사용
반면 TimeProviders\NtpClient\ManualPeerList 값은 일반적으로 명령어로 변경되지 않으며,
기본값이나 과거 설정값이 남아있을 수 있습니다.
-> 읽기 전용이거나 레거시(과거) 설정일 가능성이 높고,
직접 수정해도 무시되거나 쓰기 권한이 제한될 수 있습니다.
TimeProviders\NtpClient 영역은 설정 값 일부(예: SpecialPollInterval, Enabled 등)를 담고는 있지만,
서버 리스트 관련 값들은 실제 동기화 프로세스에 직접 반영되지 않는 경우가 많습니다.
정리
| ...W32Time\Parameters\NtpServer | 실제 수동 NTP 서버 리스트 | w32tm /config 명령어로 변경됨 |
| ...W32Time\TimeProviders\NtpClient\ManualPeerList | 과거 또는 내부용 설정 | 명령어로 안 바뀌거나 무시됨 |
1. SpecialPollInterval 위치
- SpecialPollInterval 은 실제로는경로에 저장됩니다.
-
sql복사편집HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\w32time\TimeProviders\NtpClient
- 이 값은 NTP 클라이언트(TimeProviders\NtpClient)가 사용하는 폴링 간격 설정입니다.
- 반면,에는 SpecialPollInterval 값이 기본적으로 없습니다.
-
sql복사편집HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\w32time\Parameters
2. SyncFromFlags 위치
- SyncFromFlags (또는 Type 값)은에 Type이라는 이름으로 존재합니다.
-
sql복사편집HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\w32time\Parameters
- 이 값은 동기화 모드를 지정하며, 주요 값 예시는 다음과 같습니다:
- NTP : 외부 NTP 서버에서 동기화
- NT5DS : 도메인 컨트롤러에서 동기화 (도메인 계층)
- NoSync : 동기화 하지 않음
- Manual : 수동 설정으로 동기화
- 실제로 w32tm /config /syncfromflags:manual 같은 명령어가 이 값을 변경합니다.
3. 요약
| SpecialPollInterval | TimeProviders\NtpClient | NTP 클라이언트 폴링 간격 설정 |
| SyncFromFlags (Type) | Parameters | 동기화 모드 설정 (manual, NTP, NT5DS 등) |
4. 참고
- w32tm /query /configuration 명령어 출력에 반영되는 내용은 위 두 위치에서 읽어온 값들의 조합입니다.
- 명령어로 설정할 때는
- manualpeerlist → Parameters\NtpServer
- syncfromflags → Parameters\Type
- SpecialPollInterval → TimeProviders\NtpClient\SpecialPollInterval
이 각각 다르게 적용됩니다.
TYPE
1. Type 값의 의미
- Type = "NTP"
→ 외부 NTP 서버(예: pool.ntp.org, time.google.com 등)와 동기화합니다.
→ ManualPeerList에 지정된 서버들에서 동기화하죠. - Type = "Manual"
→ 직접 지정한 서버들과 수동 동기화합니다.
→ 보통 ManualPeerList 와 함께 쓰이고, 서버 리스트가 명확할 때 씁니다. - Type = "NT5DS"
→ 도메인 컨트롤러(AD 환경)에서 시간 동기화합니다.
→ 도메인에 속한 PC에 기본 설정입니다.
2. 언제 어떤 값을 써야 하나?
- 도메인에 속해 있다면 보통 NT5DS가 기본이며, 변경 권장하지 않습니다.
- 도메인 환경이 아니라면, 특히 정확한 서버를 지정하려면
→ Manual 로 설정하고, ManualPeerList 에 원하는 서버를 넣는 게 맞습니다. - NTP도 외부 서버와 동기화하는 모드지만, 자동으로 풀 서버 중 하나를 고르는 경우가 많아
서버 리스트를 명확히 관리하고 싶다면 Manual이 더 적합합니다.
3. 요약
| 도메인 환경(회사 네트워크 등) | NT5DS 유지 |
| 개인 PC, 정확한 서버 직접 지정 | Manual + ManualPeerList 설정 |
| 자동 NTP 서버 선택 원할 때 | NTP |
4. 결론
- Type을 Manual로 고쳐도 됩니다.
- 다만 도메인 환경에서는 도메인 정책과 충돌할 수 있으니 주의해야 합니다.
- 그리고 바꾼 뒤에는 w32time 서비스 재시작과 w32tm /resync 꼭 하셔야 효과 있습니다.
✅ 도메인 환경이란?
Windows 컴퓨터가 Active Directory(AD) 라는 중앙 서버(도메인 컨트롤러, DC) 에 가입된 상태를 말해요.
쉽게 말해:
- 회사나 기관에서 ID/PW로 로그인 → 로그인하면 네트워크를 통해 중앙 서버가 계정과 정책을 관리
- 중앙 서버(도메인 컨트롤러)가 컴퓨터 계정, 사용자 계정, 보안 정책, 그룹 정책(GPO) 등을 관리
🖥 예시
- 회사 노트북, 관공서·학교 PC, 병원 PC 같은 곳:
- 로그인 화면에 회사도메인\사용자명 또는 user@company.com 처럼 뜨면 도메인 환경
- 회사 메일/공용 드라이브/프린터 같은 리소스를 중앙에서 통제
- 집에서 쓰는 개인 PC:
- 도메인에 가입 안 돼 있음 → Workgroup(작업 그룹) 환경
🧩 왜 이게 중요하냐?
- Windows 시간 동기화(w32time)는 도메인 환경이면:
- 기본적으로 NT5DS 모드로 설정
- 도메인 컨트롤러에서 시간 가져오도록 강제됨
- 이때 syncfromflags:manual 이나 Type: Manual 로 바꿔도
- 그룹 정책(GPO) 가 다시 덮어씌워서 원래 값(NT5DS)으로 돌아감
- 즉, 도메인 환경에선 수동 설정이 유지가 잘 안 됨
⚡ 한줄 요약
도메인 환경 = 회사/기관/학교처럼 중앙 AD 서버가 관리
개인 PC나 집 컴퓨터 = 도메인에 가입 안 된 Workgroup 환경
✅ 핵심 요약
| NTP | 표준 NTP 클라이언트 모드 | ManualPeerList(NtpServer)에 지정한 서버 | 자동 poll interval(동적 조정), 기본 client poll 알고리즘 사용 |
| Manual | 수동 모드 | ManualPeerList(NtpServer)에 지정한 서버 | SpecialPollInterval 값만 사용 (고정 poll 간격) |
📍 좀 더 구체적으로:
Type="NTP"
- 기본 NTP 클라이언트 알고리즘을 사용:
- poll interval(동기화 간격)을 네트워크 상황, 지터(jitter), 서버 응답 품질 등에 따라 자동으로 증가/감소
- registry SpecialPollInterval 값은 무시
- 서버 리스트는 NtpServer 값(ManualPeerList)에 지정한 서버에서만 동기화
✅ 즉:
- 동적 간격(8분 → 17분 → 34분… 식으로)
- 서버는 지정된 서버만 사용
Type="Manual"
- manual 모드에서는 poll interval 조정 알고리즘을 안 씀
- 대신 SpecialPollInterval 값만 고정으로 사용 (예: 60초)
- 서버도 마찬가지로 NtpServer 값에 지정한 서버에서만 동기화
✅ 즉:
- poll interval이 무조건 고정 (SpecialPollInterval)
- 서버는 동일하게 manualpeerlist(NtpServer) 기준
⚡ 왜 이 차이가 중요?
- Type="NTP" 쓰면: 자동 poll 간격 조정 → 초기엔 짧아도 점점 길어져서 1024초, 2048초까지 늘어남
- Type="Manual" + 0x9 플래그 쓰면: poll 간격을 SpecialPollInterval 값으로 고정 (예: 60초)
즉, 시간 정확도가 중요한 상황엔 "Manual + 0x9" 조합으로 고정 폴링을 쓰는 게 유리
✅ 한줄 핵심 요약
둘 다 서버는 동일, 차이는 "poll interval":
- NTP → 자동 조정
- Manual → SpecialPollInterval 값 고정
📍 정확한 동작 구조
| syncfromflags:manual | "수동 서버만 동기화 대상으로 사용" | Config\AnnounceFlags 값 변경 |
| Type= "NTP" | 외부 NTP 서버와 동기화 (수동 설정 서버 포함) | 그대로 유지 (변경 안 됨) |
| Type= "Manual" | 정말 완전한 수동 모드 (특수) | 명령어로는 안 됨, 수동으로 regedit 필요 |
Windows 시간 서비스 핵심 문제
- W32Time은 본래 AD(도메인) 환경에 맞춰져 설계된 서비스라, 완전 실시간 고정 간격 동기화에는 적합하지 않음
- SpecialPollInterval 설정이 있어도,
Type=NTP 모드에서 Poll 간격 자동 증가를 막는 건 사실상 불가능에 가깝습니다. - Microsoft 공식 문서에도 “SpecialPollInterval은 Manual 모드에서만 확실히 동작한다” 고 명시돼있어요.
- Type=Manual로 바꾸면 서비스가 시작조차 안 되는 환경도 많아, 사실상 쓰기 힘들고요.
현실적인 대안
- 외부 툴이나 NTP 클라이언트 소프트웨어 활용
- 예: Meinberg NTP, Chrony(리눅스용), 별도 서비스로 운영하는 NTP 클라이언트
- Windows 기본 w32time 대신, 이런 도구들은 훨씬 더 세밀한 Poll 제어가 가능합니다.
- 하드웨어 기반 동기화 (GPS NTP 서버 등)
- 완전한 초정밀이 필요하면 전문 장비 필요
- 윈도우 기본 w32time 세팅 타협
- syncfromflags:manual + ManualPeerList + 0x9 + SpecialPollInterval 최대한 최적화하되
- 간격이 조금씩 늘어나는 건 감내
'IT 인터넷' 카테고리의 다른 글
| 광랜 FTTH 공유기 란? FTTC, FTTB, VDSL (0) | 2025.07.10 |
|---|---|
| DNS 캐시 삭제 (1) | 2025.07.10 |
| 시간 동기화 비교 사이트 time.is 외 (3) | 2025.07.10 |
| 레지스트리 권한 (2) | 2025.07.10 |
| DNS 란? cloudflare vs google vs 통신사 isp (0) | 2025.07.09 |
| NTP 서버란? NTP 서버 종류 (4) | 2025.07.09 |
| CMD vs PowerShell (0) | 2025.07.09 |
| ping 테스트 응답 안 하는 이유 (0) | 2025.07.09 |