Windows KMS 오류 0xC004F074 연결 실패 해결 방법 포트·DNS 완전 점검

이 글의 목적은 Windows 정품 인증 과정에서 자주 발생하는 KMS 오류 0xC004F074(키 관리 서비스에 연결할 수 없음)를 체계적으로 분석하고, 포트 1688 및 DNS SRV 레코드 점검을 중심으로 실무자가 단계별로 문제를 진단·해결할 수 있도록 돕는 것이다.

1. KMS 오류 0xC004F074란 무엇인가

0xC004F074 오류는 클라이언트가 KMS(Key Management Service) 서버에 연결해 정품 인증을 시도하는 과정에서 통신에 실패했을 때 나타나는 대표적인 코드이다.

주요 메시지는 다음과 비슷한 형태로 표시된다.

  • Windows는 더 이상 이 컴퓨터를 정품으로 확인할 수 없다. 오류 코드: 0xC004F074
  • Software Licensing Service는 KMS와의 키 관리 서비스 통신을 완료할 수 없었다고 보고한다.

이 오류가 의미하는 바는 “클라이언트가 정해진 KMS 호스트에 정상적으로 도달하지 못했다”는 것이다. 실제 원인은 매우 다양하지만 실무에서는 다음 네 가지 범주로 거의 수렴한다.

  • KMS 포트(기본 1688/TCP) 차단 또는 리스닝 실패
  • DNS에 KMS SRV 레코드(_VLMCS._TCP) 미등록 또는 잘못된 등록
  • KMS 클라이언트 키·호스트 이름·버전 불일치
  • 시간 동기화 문제 및 도메인·네트워크 환경 오류

2. 기본 전제 점검: KMS 대상 환경인지 먼저 확인

2.1 KMS 라이선스 구조 이해

KMS 방식은 기업·기관용 볼륨 라이선스 환경에서 사용하는 정품 인증 구조이다. 이 구조에서는 사내에 KMS 호스트 서버가 1대 이상 존재하며, 다수의 KMS 클라이언트(OS, Office 등)가 주기적으로 해당 서버에 접속해 정품 상태를 갱신한다.

따라서 개인용 PC나 소규모 환경에서 임의의 “인터넷 KMS 주소”를 설정한 경우, 해당 주소가 더 이상 유효하지 않거나 네트워크 차단 상태라면 0xC004F074가 반복적으로 발생한다.

주의 : 회사에서 공식적으로 운영하지 않는 비공식 KMS 서버를 사용한 정품 인증은 라이선스 위반에 해당하며, 기술적으로도 안정적인 지원이 불가능하다. 기업·기관에서는 반드시 정식 볼륨 라이선스 계약과 공인 KMS 서버를 사용해야 한다.

2.2 클라이언트 OS·에디션 확인

KMS로 인증 가능한 에디션인지 먼저 확인해야 한다. 대표적으로 다음과 같은 에디션은 KMS 대상이다.

  • Windows 10/11 Enterprise, Education
  • Windows Server Standard, Datacenter 등 서버 에디션
  • Office 볼륨 라이선스 버전 (Pro Plus, LTSC 등)

반대로 Home 에디션, 소매용(Retail) 제품키를 사용하는 환경은 KMS 인증 대상이 아니므로 0xC004F074 오류가 반복적으로 발생할 수밖에 없다.

2.3 네트워크(도메인·VPN) 기본 점검

  • 사내 도메인에 정상적으로 로그인되어 있는지 확인한다.
  • 재택 환경이라면 VPN 연결 후 KMS 서버에 접근 가능한지 확인한다.
  • IP 충돌, 프록시, 게스트 네트워크 등 사설망에서 사내망으로의 접근을 제한하는 요소가 없는지 점검한다.

3. 포트 1688/TCP 점검: KMS 연결 실패의 핵심

KMS는 기본적으로 TCP 1688 포트를 사용한다. 이 포트가 클라이언트 측 방화벽, 중간 보안 장비, KMS 서버 측 방화벽 또는 서버 서비스 설정으로 인해 차단되면 반드시 0xC004F074 오류가 발생한다.

3.1 클라이언트에서 포트 연결 테스트

Windows 10/11에서 PowerShell을 관리자 권한으로 실행하고 다음 명령으로 KMS 서버의 포트 응답을 확인할 수 있다.

# 예시: KMS 서버 이름이 kms01.contoso.com인 경우 Test-NetConnection -ComputerName kms01.contoso.com -Port 1688
단순 Ping도 함께 확인
Test-NetConnection -ComputerName kms01.contoso.com

결과의 TcpTestSucceeded가 False이면 네트워크 경로 상에서 포트가 차단되어 있음을 의미한다.

3.2 고전적인 telnet 테스트

telnet 클라이언트를 활성화한 후 다음 명령으로 포트 접속 여부를 확인할 수도 있다.

telnet kms01.contoso.com 1688 

커서만 깜빡이며 빈 화면이 유지되면 포트가 열려 있을 가능성이 높으며, 곧바로 “연결할 수 없습니다” 등의 메시지가 나온다면 중간 경로에서 차단되는 것이다.

3.3 방화벽 정책 점검 포인트

점검 위치 점검 내용 권장 설정
클라이언트 Windows 방화벽 아웃바운드 TCP 1688 허용 여부 도메인·사설 프로필에서 KMS 서버로 아웃바운드 허용
사내 방화벽/IPS 클라이언트 서브넷 → KMS 서버 IP:1688 허용 여부 해당 방향 정책에 TCP 1688 허용 규칙 추가
KMS 서버 Windows 방화벽 인바운드 TCP 1688 허용 여부 소프트웨어 라이선싱 서비스 또는 포트 1688 수신 허용
주의 : 일부 보안 정책에서는 “알 수 없는 포트”를 일괄 차단하는 룰을 가진다. 이 경우 1688 포트를 명시적으로 허용 목록에 추가하지 않으면 테스트 시 Ping은 정상이고 KMS만 실패하는 상황이 발생한다.

4. DNS SRV 레코드(_VLMCS._TCP) 점검

도메인 환경에서 KMS 클라이언트는 기본적으로 DNS에 등록된 SRV 레코드를 통해 KMS 서버를 자동으로 찾는다. 이 레코드는 다음 형식을 따른다.

서비스: _vlmcs 프로토콜: _tcp 포트: 1688 대상: kms01.contoso.com 

4.1 클라이언트에서 SRV 조회

클라이언트에서 명령 프롬프트 또는 PowerShell을 열고 다음과 같이 DNS를 조회한다.

nslookup -type=SRV _vlmcs._tcp.contoso.com 

정상이라면 해당 도메인의 KMS 서버와 포트가 반환된다. 아무 레코드도 반환되지 않거나 엉뚱한 서버 이름이 나온다면 KMS 자동 검색이 실패하여 0xC004F074가 발생할 수 있다.

4.2 SRV 레코드가 없을 때의 우회 설정

DNS 수정 권한이 없거나, 임시 해결이 필요한 경우 클라이언트에 KMS 서버를 직접 지정할 수 있다.

slmgr.vbs /skms kms01.contoso.com:1688 slmgr.vbs /ato 

이렇게 설정하면 SRV 레코드를 조회하지 않고 지정한 호스트로 바로 접속을 시도한다.

주의 : 다양한 사이트에서 제공하는 “공용 KMS 주소”를 임의로 넣는 것은 보안상 매우 위험하며 라이선스 위반이다. 반드시 조직에서 공식 공지한 KMS 서버 주소만 사용해야 한다.

5. KMS 클라이언트 설정(slmgr) 정밀 점검

5.1 현재 라이선스 상태 확인

관리자 권한 명령 프롬프트에서 다음 명령을 실행해 현재 KMS 상태를 확인한다.

slmgr.vbs /dlv 

출력에서 다음 항목을 중점적으로 확인한다.

  • 설치된 제품 키 종류(GVLK 여부)
  • KMS 머신 이름(설정되어 있는지, 올바른지)
  • 라이선스 상태(라이선스됨, 알림, KMS 클라이언트 설정 등)

5.2 잘못된 키 제거 및 KMS 클라이언트 키 재설치

테스트 과정에서 Retail/MAK 키를 섞어 넣었다면 다음 순서로 정리한다.

# 기존 키 제거 slmgr.vbs /upk
남아 있는 경우 강제 제거 (옵션)
slmgr.vbs /cpky

해당 OS 에디션용 KMS 클라이언트 GVLK 설치 (예시는 Windows 10/11 Enterprise용)
slmgr.vbs /ipk XXXXX-XXXXX-XXXXX-XXXXX-XXXXX

KMS 서버 지정 (필요 시)
slmgr.vbs /skms kms01.contoso.com:1688

활성화 시도
slmgr.vbs /ato

5.3 수동 지정 제거 및 자동 검색으로 복귀

과거에 /skms로 특정 호스트를 강제로 지정한 후 서버가 변경되었다면 여전히 오래된 서버로 접속을 시도하며 0xC004F074가 발생할 수 있다. 이 경우 다음 명령으로 수동 설정을 초기화한다.

slmgr.vbs /ckms slmgr.vbs /ato 

이렇게 하면 DNS SRV 레코드를 기준으로 새 KMS 서버를 자동 검색한다.

6. 시간 동기화 및 보안 채널 문제

클라이언트와 KMS 서버, 도메인 컨트롤러 간의 시간이 크게 어긋난 경우 Kerberos 인증이 실패하고 그 결과 KMS 통신이 정상적으로 진행되지 않을 수 있다.

6.1 시간 차이 점검

  • 클라이언트와 KMS 서버의 시간을 비교해 5분 이상 차이가 나는지 확인한다.
  • 도메인 환경이라면 클라이언트가 도메인 컨트롤러로부터 시간을 동기화하고 있는지 확인한다.

6.2 시간 재동기화 명령

다음 명령으로 시간 서비스를 재동기화할 수 있다.

w32tm /resync 
주의 : 가상 환경에서 호스트 시간과 게스트 시간이 따로 놀면 도메인 시간 정책과 충돌할 수 있다. Hyper-V, VMware 등의 시간 동기화 옵션과 도메인 시간 정책을 함께 설계해야 한다.

7. KMS 서버 측 점검(관리자 관점)

클라이언트 점검에도 불구하고 0xC004F074가 계속 발생한다면 KMS 호스트 자체를 점검해야 한다.

7.1 서비스 상태 확인

KMS는 “Software Protection” 또는 “Software Licensing” 서비스와 연계되어 동작한다. 서버에서 다음을 확인한다.

  • 서비스가 자동 시작으로 설정되어 있는지
  • 부팅 후 실제로 실행 중인지
  • 이벤트 뷰어에 라이선스 관련 오류가 기록되고 있는지

7.2 포트 리스닝 여부 확인

서버에서 명령 프롬프트를 열고 다음 명령으로 1688 포트 리스닝을 확인한다.

netstat -ano | find "1688" 

리스닝 상태가 보이지 않는다면 KMS 구성 자체에 문제가 있거나 서비스가 제대로 초기화되지 않은 것이다.

7.3 KMS 호스트 키 및 클라이언트 카운트

  • 정상적인 KMS 호스트 키가 설치되어 있는지 확인한다.
  • KMS 활성화 기준(예: Windows 클라이언트 25대, 서버 5대 이상 등)에 도달했는지 확인한다.
  • 기준 미달이면 클라이언트들이 “임계치 미도달” 상태로 남아 있을 수 있고, 이 과정에서 반복된 실패가 0xC004F074로 해석될 수 있다.

8. 자주 발생하는 시나리오와 해결 요약

시나리오 주요 증상 핵심 조치
사내망 밖에서 인증 시도 회사 외부·집에서 0xC004F074 반복 VPN 접속 후 인증 또는 사내망 내 PC에서 /ato 실행
포트 1688 방화벽 차단 Ping은 되나 Test-NetConnection -Port 1688 실패 클라이언트→KMS 서버 방향 TCP 1688 방화벽 허용
DNS SRV 레코드 미구성 /ckms 후에도 KMS 서버를 자동으로 찾지 못함 _vlmcs._tcp SRV 레코드 등록 또는 /skms로 직접 지정
잘못된 제품 키 Retail/MAK 키 상태에서 KMS 오류 발생 /upk 후 GVLK 재설치 및 /ato 재실행
시간 동기화 문제 도메인 로그인 문제와 함께 KMS 오류 동반 w32tm /resync, 도메인 시간 정책 점검
주의 : KMS 문제를 해결할 때는 항상 “라이선스 구조(볼륨/KMS 여부) → 네트워크 경로(포트·DNS) → 클라이언트 설정(slmgr) → 서버 상태” 순서로 접근해야 한다. 순서를 뒤섞으면 같은 검사를 여러 번 반복하게 되어 진단 시간이 길어지기 쉽다.

9. 현장에서 바로 활용할 수 있는 점검 체크리스트

9.1 클라이언트 담당자용 체크리스트

  • 이 PC가 KMS 대상 에디션인지 확인했는가
  • 사내망 또는 VPN을 통해 KMS 서버에 도달 가능한가
  • Ping 및 Test-NetConnection -Port 1688이 성공하는가
  • slmgr /dlv에서 KMS 클라이언트 GVLK가 설치된 상태인가
  • /skms에 오래된 서버가 남아 있지 않은가 (필요 시 /ckms 실행)
  • w32tm /resync 후에도 시간 차이가 없는가

9.2 서버·도메인 관리자용 체크리스트

  • DNS에 _vlmcs._tcp SRV 레코드가 올바르게 등록되어 있는가
  • KMS 서버의 Windows 방화벽에서 TCP 1688 인바운드가 허용되어 있는가
  • 사내 방화벽/IPS에서 클라이언트 서브넷 → KMS 서버로의 1688 포트가 열려 있는가
  • KMS 호스트 키가 정상적으로 설치되고 활성화되어 있는가
  • KMS 클라이언트 수가 임계치에 도달했는가
  • 이벤트 뷰어에 나타나는 라이선스 관련 오류를 주기적으로 모니터링하고 있는가

FAQ

개인용 PC에서 0xC004F074 오류가 뜨는데 어떻게 해야 하는가?

Home 에디션이나 소매용(Retail) Windows를 사용하는 개인용 PC에서 0xC004F074가 뜨는 경우, 대부분 과거에 인터넷에 떠도는 KMS 주소를 사용해 정품 인증을 시도한 흔적 때문이다. 이 경우 KMS 방식이 아닌 정식 Retail/디지털 라이선스 또는 정식 볼륨 라이선스 정책에 따라 재설치·재인증을 진행해야 한다.

VPN을 연결하지 않으면 항상 0xC004F074가 발생한다. 정상인가?

KMS 서버가 사내망에만 존재하고, 외부에서는 접근이 차단된 구조라면 VPN 없이 재택 환경에서 인증을 시도할 경우 0xC004F074가 발생하는 것이 정상이다. 이 경우 정책적으로 VPN 접속 후 /ato를 실행하거나, 사내에 주기적으로 접속하는 때에 자동으로 재인증되도록 안내해야 한다.

포트 1688 대신 다른 포트를 사용할 수 있는가?

KMS 호스트 구성에서 다른 포트를 사용하도록 설정하는 것이 기술적으로 가능하지만, 클라이언트 설정과 DNS SRV 레코드, 방화벽 정책을 모두 일괄적으로 수정해야 한다. 이미 1688 포트를 기준으로 운영 중인 조직이라면 포트를 변경하기보다는 1688 포트 사용을 전제로 보안 설계를 하는 편이 관리 측면에서 유리하다.

DNS SRV 레코드를 전혀 사용하지 않고도 운영할 수 있는가?

가능하다. 모든 클라이언트에 /skms로 KMS 서버를 직접 지정하는 방식으로 운영할 수 있다. 다만 이미지 배포, 스크립트 관리, 서버 변경 시 재설정 등 관리 포인트가 증가하므로 규모가 커질수록 DNS SRV 기반 자동 검색 방식을 사용하는 것이 권장된다.

0xC004F074와 다른 KMS 오류 코드가 함께 나타날 때 우선순위는 어떻게 잡아야 하는가?

우선 네트워크 수준 오류(예: 포트 차단, DNS 오류)를 먼저 해결하고, 그 다음 제품 키·에디션·클라이언트 수 등 라이선스 구조 문제를 점검하는 순서가 좋다. 네트워크가 불안정한 상태에서는 다른 오류 코드도 왜곡되어 나타날 수 있기 때문이다.

: