Azure의 Windows VM에 대한 원격 데스크톱 연결 문제에 대한 자세한 문제 해결 단계

이 문서에서는 Windows 기반 Azure 가상 머신에 대한 복잡한 원격 데스크톱 오류를 진단하고 해결하는 자세한 문제 해결 단계를 제공합니다.

중요

더 일반적인 원격 데스크톱 오류를 제거하려면 계속하기 전에 원격 데스크톱에 대한 기본 문제 해결 문서를 읽어야 합니다.

기본 원격 데스크톱 문제 해결 가이드에서 다루는 특정 오류 메시지와 유사하지 않은 원격 데스크톱 오류 메시지가 발생할 수 있습니다. 다음 단계에 따라 RDP(원격 데스크톱) 클라이언트가 Azure VM의 RDP 서비스에 연결할 수 없는 이유를 확인합니다.

원격 데스크톱 연결의 구성 요소

RDP 연결에는 다음 구성 요소가 포함됩니다.

다이어그램은 RDP(원격 데스크톱) 연결과 관련된 구성 요소를 보여 줍니다.

계속하기 전에 VM에 대한 마지막으로 성공한 원격 데스크톱 연결 이후 변경된 내용을 정신적으로 검토하는 데 도움이 될 수 있습니다. 예시:

  • VM 또는 VM(가상 IP 주소 VIP라고도 함)이 포함된 클라우드 서비스의 공용 IP 주소가 변경되었습니다. DNS 클라이언트 캐시에 DNS 이름에 등록된 이전 IP 주소 가 여전히 있기 때문에 RDP 오류가 발생할 수 있습니다. DNS 클라이언트 캐시를 플러시하고 VM을 다시 연결해 보세요. 또는 새 VIP와 직접 연결해 보세요.
  • Azure Portal 생성된 연결을 사용하는 대신 타사 애플리케이션을 사용하여 원격 데스크톱 연결을 관리합니다. 애플리케이션 구성에 원격 데스크톱 트래픽에 대한 올바른 TCP 포트가 포함되어 있는지 확인합니다. VM의 설정 > 엔드포인트를 클릭하여 Azure Portal 클래식 가상 머신에 대해 이 포트를 검사 수 있습니다.

예비 단계

자세한 문제 해결을 진행하기 전에

이러한 단계 후에 원격 데스크톱을 통해 VM에 다시 연결해 보세요.

자세한 문제 해결 단계

다음 원본의 문제로 인해 원격 데스크톱 클라이언트가 Azure VM의 원격 데스크톱 서비스에 도달하지 못할 수 있습니다.

원본 1: 원격 데스크톱 클라이언트 컴퓨터

컴퓨터가 다른 온-프레미스 Windows 기반 컴퓨터에 원격 데스크톱을 연결할 수 있는지 확인합니다.

RDP 클라이언트가 강조 표시된 RDP 연결의 구성 요소와 연결을 나타내는 다른 온-프레미스 컴퓨터를 가리키는 화살표의 다이어그램

할 수 없는 경우 컴퓨터에서 다음 설정을 검사.

  • 원격 데스크톱 트래픽을 차단하는 로컬 방화벽 설정입니다.
  • 원격 데스크톱 연결을 방지하는 로컬로 설치된 클라이언트 프록시 소프트웨어입니다.
  • 원격 데스크톱 연결을 방지하는 로컬로 설치된 네트워크 모니터링 소프트웨어입니다.
  • 트래픽을 모니터링하거나 원격 데스크톱 연결을 방해하는 특정 유형의 트래픽을 허용/허용하지 않는 다른 유형의 보안 소프트웨어입니다.

이러한 모든 경우에 소프트웨어를 일시적으로 사용하지 않도록 설정하고 원격 데스크톱을 통해 온-프레미스 컴퓨터에 연결합니다. 이러한 방식으로 실제 원인을 확인할 수 있는 경우 네트워크 관리자와 협력하여 원격 데스크톱 연결을 허용하도록 소프트웨어 설정을 수정합니다.

원본 2: 조직 인트라넷 에지 디바이스

인터넷에 직접 연결된 컴퓨터가 Azure 가상 머신에 원격 데스크톱을 연결할 수 있는지 확인합니다.

인터넷에 연결된 RDP 클라이언트와 연결이 강조 표시된 RDP 연결의 구성 요소와 연결을 나타내는 Azure V M을 가리키는 화살표의 다이어그램

인터넷에 직접 연결된 컴퓨터가 없는 경우 리소스 그룹 또는 클라우드 서비스에서 새 Azure 가상 머신을 만들고 테스트합니다. 자세한 내용은 Azure에서 Windows를 실행하는 가상 머신 만들기를 참조하세요. 테스트 후에 가상 머신과 리소스 그룹 또는 클라우드 서비스를 삭제할 수 있습니다.

인터넷에 직접 연결된 컴퓨터로 원격 데스크톱 연결을 만들 수 있는 경우 다음을 위해 organization 인트라넷 에지 디바이스를 검사.

  • 인터넷에 대한 HTTPS 연결을 차단하는 내부 방화벽입니다.
  • 원격 데스크톱 연결을 방지하는 프록시 서버입니다.
  • 원격 데스크톱 연결을 방해하는 에지 네트워크의 디바이스에서 실행되는 침입 검색 또는 네트워크 모니터링 소프트웨어입니다.

네트워크 관리자와 협력하여 인터넷에 대한 HTTPS 기반 원격 데스크톱 연결을 허용하도록 organization 인트라넷 에지 디바이스의 설정을 수정합니다.

원본 3: 클라우드 서비스 엔드포인트 및 ACL

중요

클래식 VM은 2023년 9월 1일에 사용 중지됩니다.

ASM에서 IaaS 리소스를 사용하는 경우 2023년 9월 1일까지 마이그레이션을 완료하세요. Azure Resource Manager 다양한 기능 향상 기능을 활용하기 위해 더 빨리 전환하는 것이 좋습니다.

자세한 내용은 2023년 9월 1일까지 IaaS 리소스를 Azure Resource Manager 마이그레이션을 참조하세요.

클래식 배포 모델을 사용하여 만든 VM의 경우 동일한 클라우드 서비스 또는 가상 네트워크에 있는 다른 Azure VM이 Azure VM에 원격 데스크톱 연결을 만들 수 있는지 확인합니다.

하나의 Azure V M이 강조 표시되고 동일한 클라우드 서비스 내의 다른 Azure V M을 가리키는 화살표가 있는 RDP 연결의 구성 요소 다이어그램.

참고

Resource Manager 만든 가상 머신의 경우 원본 4: 네트워크 보안 그룹으로 건너뜁니다.

동일한 클라우드 서비스 또는 가상 네트워크에 다른 가상 머신이 없는 경우 가상 머신을 만듭니다. Azure에서 Windows를 실행하는 가상 머신 만들기의 단계를 따릅니다. 테스트가 완료된 후 테스트 가상 머신을 삭제합니다.

원격 데스크톱을 통해 동일한 클라우드 서비스 또는 가상 네트워크의 가상 머신에 연결할 수 있는 경우 다음 설정을 검사.

  • 대상 VM의 원격 데스크톱 트래픽에 대한 엔드포인트 구성: 엔드포인트의 프라이빗 TCP 포트는 VM의 원격 데스크톱 서비스가 수신 대기 중인 TCP 포트와 일치해야 합니다(기본값은 3389).
  • 대상 VM의 원격 데스크톱 트래픽 엔드포인트에 대한 ACL: ACL을 사용하면 원본 IP 주소를 기반으로 인터넷에서 들어오는 트래픽을 허용하거나 거부할 수 있습니다. 잘못 구성된 ACL은 엔드포인트로 들어오는 원격 데스크톱 트래픽을 방지할 수 있습니다. ACL을 확인하여 프록시 또는 다른 에지 서버의 공용 IP 주소에서 들어오는 트래픽이 허용되는지 확인합니다. 자세한 내용은 ACL(네트워크 Access Control 목록)이란?을 참조하세요.

엔드포인트가 문제의 원본인지 검사 하려면 현재 엔드포인트를 제거하고 새 엔드포인트를 만들고 외부 포트 번호에 대해 49152-65535 범위에서 임의 포트를 선택합니다. 자세한 내용은 가상 머신에 엔드포인트를 설정하는 방법을 참조하세요.

원본 4: 네트워크 보안 그룹

네트워크 보안 그룹을 사용하면 허용되는 인바운드 및 아웃바운드 트래픽을 보다 세부적으로 제어할 수 있습니다. Azure 가상 네트워크에서 서브넷 및 클라우드 서비스를 아우르는 규칙을 만들 수 있습니다.

IP 흐름 확인을 사용하여 네트워크 보안 그룹의 규칙이 가상 머신을 오가는 트래픽을 차단하고 있는지 확인합니다. 효과적인 보안 그룹 규칙을 검토하여 인바운드 "허용" NSG 규칙이 존재하고 RDP 포트(기본값 3389)에 우선 순위가 지정되었는지 확인할 수도 있습니다. 자세한 내용은 효과적인 보안 규칙을 사용하여 VM 트래픽 흐름 문제 해결을 참조하세요.

원본 5: Windows 기반 Azure VM

클라우드 서비스 내에서 강조 표시된 Azure V M과 RDP 연결의 구성 요소 다이어그램 및 문제의 가능한 원본이 될 수 있다는 메시지.

이 문서의 지침을 따릅니다. 이 문서에서는 가상 머신에서 원격 데스크톱 서비스를 다시 설정합니다.

  • "원격 데스크톱" Windows 방화벽 기본 규칙(TCP 포트 3389)을 사용하도록 설정합니다.
  • HKLM\System\CurrentControlSet\Control\Terminal Server\fDenyTSConnections 레지스트리 값을 0으로 설정하여 원격 데스크톱 연결을 사용하도록 설정합니다.

컴퓨터에서 연결을 다시 시도합니다. 원격 데스크톱을 통해 연결할 수 없는 경우 다음과 같은 가능한 문제에 대해 검사.

  • 원격 데스크톱 서비스가 대상 VM에서 실행되고 있지 않습니다.
  • 원격 데스크톱 서비스가 TCP 포트 3389에서 수신 대기하지 않습니다.
  • Windows 방화벽 또는 다른 로컬 방화벽에는 원격 데스크톱 트래픽을 방지하는 아웃바운드 규칙이 있습니다.
  • Azure 가상 머신에서 실행되는 침입 검색 또는 네트워크 모니터링 소프트웨어는 원격 데스크톱 연결을 방지합니다.

클래식 배포 모델을 사용하여 만든 VM의 경우 Azure 가상 머신에 대한 원격 Azure PowerShell 세션을 사용할 수 있습니다. 먼저 가상 머신의 호스팅 클라우드 서비스에 대한 인증서를 설치해야 합니다. Azure Virtual Machines 보안 원격 PowerShell 액세스 구성으로 이동하여 로컬 컴퓨터에InstallWinRMCertAzureVM.ps1 스크립트 파일을 다운로드합니다.

다음으로, 아직 설치하지 않은 경우 Azure PowerShell 설치합니다. Azure PowerShell 설치 및 구성하는 방법을 참조하세요.

다음으로, Azure PowerShell 명령 프롬프트를 열고 현재 폴더를 InstallWinRMCertAzureVM.ps1 스크립트 파일의 위치로 변경합니다. Azure PowerShell 스크립트를 실행하려면 올바른 실행 정책을 설정해야 합니다. Get-ExecutionPolicy 명령을 실행하여 현재 정책 수준을 확인합니다. 적절한 수준을 설정하는 방법에 대한 자세한 내용은 Set-ExecutionPolicy를 참조하세요.

다음으로 Azure 구독 이름, 클라우드 서비스 이름 및 가상 머신 이름(및 > 문자 제거)을 < 입력한 다음, 다음 명령을 실행합니다.

$subscr="<Name of your Azure subscription>"
$serviceName="<Name of the cloud service that contains the target virtual machine>"
$vmName="<Name of the target virtual machine>"
.\InstallWinRMCertAzureVM.ps1 -SubscriptionName $subscr -ServiceName $serviceName -Name $vmName

Get-AzureSubscription 명령 표시의 SubscriptionName 속성에서 올바른 구독 이름을 가져올 수 있습니다. Get-AzureVM 명령 표시의 ServiceName 열에서 가상 머신의 클라우드 서비스 이름을 가져올 수 있습니다.

새 인증서가 있는지 확인합니다. 현재 사용자에 대한 인증서 스냅인을 열고 신뢰할 수 있는 루트 인증 기관\인증서 폴더를 확인합니다 . 발급 대상 열(예: cloudservice4testing.cloudapp.net)에 클라우드 서비스의 DNS 이름을 가진 인증서가 표시됩니다.

다음으로, 다음 명령을 사용하여 원격 Azure PowerShell 세션을 시작합니다.

$uri = Get-AzureWinRMUri -ServiceName $serviceName -Name $vmName
$creds = Get-Credential
Enter-PSSession -ConnectionUri $uri -Credential $creds

유효한 관리자 자격 증명을 입력한 후 다음 Azure PowerShell 프롬프트와 비슷한 내용이 표시됩니다.

[cloudservice4testing.cloudapp.net]: PS C:\Users\User1\Documents>

이 프롬프트의 첫 번째 부분은 대상 VM을 포함하는 클라우드 서비스 이름으로, "cloudservice4testing.cloudapp.net"과 다를 수 있습니다. 이제 이 클라우드 서비스에 대한 Azure PowerShell 명령을 실행하여 언급된 문제를 조사하고 구성을 수정할 수 있습니다.

원격 데스크톱 서비스 수신 대기 TCP 포트를 수동으로 수정하려면

원격 Azure PowerShell 세션 프롬프트에서 이 명령을 실행합니다.

Get-ItemProperty -Path "HKLM:\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" -Name "PortNumber"

PortNumber 속성은 현재 포트 번호를 표시합니다. 필요한 경우 이 명령을 사용하여 원격 데스크톱 포트 번호를 기본값(3389)으로 다시 변경합니다.

Set-ItemProperty -Path "HKLM:\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" -Name "PortNumber" -Value 3389

이 명령을 사용하여 포트가 3389로 변경되었는지 확인합니다.

Get-ItemProperty -Path "HKLM:\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" -Name "PortNumber"

이 명령을 사용하여 원격 Azure PowerShell 세션을 종료합니다.

Exit-PSSession

Azure VM의 원격 데스크톱 엔드포인트가 TCP 포트 3398도 내부 포트로 사용하고 있는지 확인합니다. Azure VM을 다시 시작하고 원격 데스크톱 연결을 다시 시도합니다.

추가 리소스

Windows 가상 머신에 대한 암호 또는 원격 데스크톱 서비스를 다시 설정하는 방법

Azure PowerShell 설치 및 구성 방법

Linux 기반 Azure 가상 머신에 대한 SSH(Secure Shell) 연결 문제 해결

Azure 가상 머신에서 실행되는 애플리케이션에 대한 액세스 문제 해결

도움을 요청하십시오.

질문이 있거나 도움이 필요한 경우 지원 요청을 생성하거나Azure 커뮤니티 지원에 문의하세요. Azure 피드백 커뮤니티에 제품 피드백을 제출할 수도 있습니다.