Windows 11/10에서 원격 데스크톱 연결 문제 및 오류 수정

RDP(원격 데스크톱 프로토콜)(Remote Desktop Protocol (RDP)) 는  네트워크 연결을 통해 다른 컴퓨터에 연결할 수 있는 그래픽 인터페이스를 사용자에게 제공하는 Microsoft 에서 개발한 독점 프로토콜입니다  .사용자 는 이를 위해 RDP 클라이언트 소프트웨어를 사용하고 다른 컴퓨터는 (RDP)RDP 서버 소프트웨어를 실행해야 합니다. 이 게시물에서는 Windows 11/10에서 일반적인 원격 데스크톱 연결 문제(troubleshoot general Remote Desktop connection issues) 를 해결 하는 방법을 살펴보겠습니다 .

원격 데스크탑

원격 데스크톱(Fix Remote Desktop) 연결 문제 수정

원격 데스크톱 클라이언트가 작동(Remote Desktop client is not working) 하지 않거나 원격 데스크톱에 연결할 수(cannot connect to a remote desktop) 없지만 원인을 식별하는 데 도움이 되는 메시지 또는 기타 증상을 제공하지 않는 경우 아래에 설명된 문제 해결 단계를 시도하십시오 .

1] 로컬 컴퓨터 에서 RDP 프로토콜 상태 확인(Check)

로컬 컴퓨터에서 RDP 프로토콜 의 상태를 확인하고 변경하려면 원격 데스크톱(enable Remote Desktop) 을 활성화해야 합니다. 명령 프롬프트 또는 PowerShell을 사용하여 원격 데스크톱을 활성화(enable Remote Desktop using Command Prompt or PowerShell) 할 수도 있습니다 .

2] 원격 컴퓨터 에서 RDP 프로토콜 상태 확인(Check)

원격 컴퓨터의 RDP 프로토콜 상태 확인

원격 컴퓨터에서 RDP 프로토콜 의 상태를 확인하고 변경하려면 네트워크 레지스트리 연결을 사용하십시오.

레지스트리 작업이므로 필요한 예방 조치로 레지스트리를 백업(back up the registry)  하거나  시스템 복원 지점을 만드는  것이 좋습니다. 완료되면 다음과 같이 진행할 수 있습니다.

  • Windows 키 + R을 눌러 실행 대화(Run) 상자를 불러옵니다.
  • 실행 대화 상자에서 입력 regedit하고 Enter 키를 눌러 레지스트리 편집기(open Registry Editor) 를 엽니다 .
  • 레지스트리 편집기에서  파일(File) 을 선택한 다음  네트워크 레지스트리 연결(Connect Network Registry) 을 선택합니다 .
  • 컴퓨터 선택(Select Computer) 대화 상자에서 원격 컴퓨터의 이름을 입력합니다 . 
  • 이름 확인을(Check Names.) 선택 합니다.
  • 확인 을 선택 합니다(OK) .
  • 그런 다음  아래 레지스트리 키 경로 로 이동하거나 이동 합니다.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server
  • 위치의 오른쪽 창에서 fDenyTSConnections 키를 두 번 클릭하여 속성을 편집합니다.
  • RDP 를 활성화하려면 fDenyTSConnections(Value) 데이터  를  1  에서  0 으로 설정 합니다.

값 0은 RDP 가 활성화됨을 나타내고 값 1은 RDP 가 비활성화됨을 나타냅니다.

관련(Related) : Windows 10에서 원격 데스크톱 옵션이 회색으로 표시됩니다 .(Remote Desktop option is greyed out)

3] 그룹 정책 개체(Group Policy Object) ( GPO )가 로컬 컴퓨터에서 RDP 를 차단 하는지 확인(Check)

원격 데스크톱 연결 문제 수정

사용자 인터페이스  에서 RDP 를 켤 수 없거나  변경한 후 fDenyTSConnections 값이 (fDenyTSConnections)1  로 되돌아  가면 GPO 가 컴퓨터 수준 설정을 재정의할 수 있습니다.(GPO)

로컬 컴퓨터에서 그룹 정책 구성을 확인하려면 다음을 수행하십시오.

  • Windows key + R 을 눌러 실행 대화 상자를 불러옵니다.
  • 실행 대화 상자에서 를 입력 cmd한 다음 CTRL + SHIFT + ENTERopen Command Prompt in admin/elevated mode .
  • 명령 프롬프트 창에서 아래 명령을 입력하고  Enter 키를 누릅니다 .
gpresult /H c:\gpresult.html
  • 명령이 실행되면 gpresult.html을 엽니다.
  • Computer Configuration\Administrative Templates\Windows Components\Remote Desktop Services\Remote Desktop Session Host\Connections 연결 에서 사용자가 원격 데스크톱 서비스를 사용하여 원격으로 연결할 수 있도록 허용(Allow users to connect remotely by using Remote Desktop Services) 정책을 찾습니다  .

이 정책에 대한 설정이  Enabled 이면 그룹 정책 이 (Group Policy)RDP 연결 을 차단하지 않습니다 . 이 정책에 대한 설정이  Disabled 이면  Winning GPO 를 선택 합니다. RDP 연결 을 차단 하는 GPO 입니다.(GPO)

4] GPO 가 원격 컴퓨터에서 RDP 를 차단 하는지 확인(Check)

원격 컴퓨터에서 그룹 정책(Group Policy) 구성 을 확인하려면 관리자 권한 CMD 프롬프트 에서 아래 명령을 실행하십시오 .

gpresult /S <computer name> /H c:\gpresult-<computer name>.html

이 명령이 생성하는 파일( gpresult-<computer name>.htmlgpresult.html ) 에서 사용하는 것과 동일한 정보 형식을 사용합니다.

5] 차단 GPO 수정

차단 GPO 수정

GPE ( 그룹 정책 개체 편집기(Group Policy Object Editor) ) 및 GPMC(그룹 정책 관리 콘솔 ) 에서 이러한 설정을 수정할 수 있습니다 .

차단 정책을 수정하려면 다음 방법 중 하나를 사용하십시오.

GPE를 사용하여 다음을 수행합니다.

  • Windows key + R 을 눌러 실행 대화 상자를 불러옵니다.
  • 실행 대화 상자에 입력 gpedit.msc하고 Enter 키를 눌러 그룹 정책 편집기(open Group Policy Editor) 를 엽니다 .
  • 로컬 그룹 정책 편집기(Local Group Policy Editor) 내 에서 왼쪽 창을 사용하여 아래 경로로 이동합니다.
Computer Configuration > Administrative Templates > Windows Components > Remote Desktop Services > Remote Desktop Session Host > Connections
  • 위치의 오른쪽 창에서 사용자가 원격 데스크톱 서비스를 사용하여 원격으로 연결할 수 있도록 허용(Allow users to connect remotely by using Remote Desktop Services) 을 두 번 클릭하여 속성을 편집합니다.
  • 정책을  사용(Enabled)  또는  구성되지 않음(Not configured) 으로 설정합니다 .
  • 적용(Apply) > 확인(OK) 을 클릭 하고 종료합니다.
  • 영향을 받는 컴퓨터에서 관리자로 명령 프롬프트 창을 열고 아래 명령을 실행합니다.
 gpupdate /force

GPMC 를 사용 하여 차단 정책이 영향을 받는 컴퓨터에 적용되는 OU(조직 구성 단위)로 이동하고 OU에서 정책을 삭제합니다.

6] RDP 서비스 상태 확인(Check)

RDP 서비스 상태 확인

로컬(클라이언트) 컴퓨터와 원격(대상) 컴퓨터 모두에서 다음 서비스가 실행 중이어야 합니다.

  • 원격 데스크톱 서비스(Remote Desktop Services) ( TermService )
  • 원격 데스크톱 서비스 사용자 모드 포트 리디렉터(Remote Desktop Services UserMode Port Redirector) ( UmRdpService )

두 컴퓨터 중 하나 또는 두 서비스가 모두 실행되고 있지 않으면 시작합니다.

다음을 수행합니다.

  • Windows key + R 을 눌러 실행 대화 상자를 불러옵니다.
  • 실행 대화 상자에서 입력 services.msc하고 Enter 키를 눌러 서비스를 엽니다(open Services) .
  • 서비스(Services) 창에서 스크롤 하여 앞서 언급한 두 서비스를 모두 찾습니다.
  • 항목을 두 번 클릭(Double-click) 하여 속성을 편집합니다.
  • 속성 창에서 시작(Start) 버튼을 클릭합니다.
  • 확인(OK) 을 클릭 합니다.

또한 PowerShell 을 사용하여 서비스를 로컬 또는 원격으로 관리할 수 있습니다(원격 컴퓨터가 원격 PowerShell cmdlet을 허용하도록 구성된 경우).

7] RDP 리스너 상태 확인(Check)

RDP 리스너 상태 확인

동일한 cmdlet이 로컬 및 원격에서 모두 작동하기 때문에 이 절차에서는 PowerShell 을 사용합니다. (PowerShell)로컬 컴퓨터의 경우 관리 권한이 있는 명령 프롬프트를 사용할 수도 있습니다.

원격 컴퓨터에 연결하려면 다음을 수행하십시오.

  • Windows key + X 를 눌러 고급 사용자 메뉴(open Power User Menu) 를 엽니다 .
  • 키보드에서 A 를 탭 하여 관리자/고급 모드에서 PowerShell을 시작 합니다.
  • PowerShell 콘솔 에서 아래 명령을 입력하고 Enter 키를 누릅니다 .
Enter-PSSession -ComputerName <computer name>
  • 를 입력하십시오  qwinsta.

위의 이미지와 같이 목록에 Listen  상태의  rdp-tcp 가 포함되어 있으면  RDP 수신기가 작동하는 것입니다. 아래 의 문제 해결 단계 10] 으로 (Troubleshooting step 10])이동(Jump) 합니다. 그렇지 않으면 작동 중인 컴퓨터에서 (Otherwise)RDP 수신기 구성 을 내 보내야 합니다.

다음을 수행합니다.

  • 영향을 받는 컴퓨터와 운영 체제 버전이 동일한 컴퓨터에 로그인하고 해당 컴퓨터의 레지스트리에 액세스합니다.
  • (Navigate)다음 레지스트리 항목으로 이동 하거나 이동합니다.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp
  • 항목을 .reg 파일로 내보냅니다(Export the entry to a .reg file) .
  • 내보낸 .reg 파일을 영향을 받는 컴퓨터에 복사합니다.
  • RDP 수신기 구성 을 가져오려면 영향을 받는 컴퓨터에 대한 관리 권한이 있는 PowerShell 창을 엽니다(또는 (PowerShell)PowerShell 창을 열고 영향을 받는 컴퓨터에 원격으로 연결).

기존 레지스트리 항목을 백업하려면(To back up the existing registry entry) 다음 cmdlet을 입력합니다.

cmd /c 'reg export "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-tcp" C:\Rdp-tcp-backup.reg'

기존 레지스트리 항목을 제거하려면(To remove the existing registry entry) 다음 cmdlet을 입력합니다.

Remove-Item -path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-tcp' -Recurse -Force

새 레지스트리 항목을 가져온 다음 서비스를 다시 시작하려면(To import the new registry entry and then restart the service) 아래 cmdlet을 실행하십시오. <filename>자리 표시자를 내보낸 .reg 파일 의 이름으로 바꿉니다 .

cmd /c 'regedit /s c:\<filename>.reg' 
Restart-Service TermService -Force

cmdlet 실행이 완료되면 원격 데스크톱 연결을 다시 시도하여 구성을 테스트할 수 있습니다. 여전히 연결할 수 없으면 영향을 받는 컴퓨터를 다시 시작합니다.

여전히 연결할 수 없으면 다음 문제 해결 단계를 진행 하여 RDP 자체 서명 인증서의 상태를 확인합니다(check the status of the RDP self-signed certificate) .

8] RDP 자체 서명 인증서 상태 확인(Check)

RDP 자체 서명 인증서 상태 확인

여전히 연결할 수 없으면 다음을 수행하십시오.

  • Windows key + R 을 눌러 실행 대화 상자를 불러옵니다.
  • 실행 대화 상자에서 입력 mmc하고 Enter 키를 눌러 Microsoft Management Console(open Microsoft Management Console) 을 엽니다 .
  • 파일(File) 메뉴를 클릭 합니다.
  • Add/Remove Snap-in 선택 합니다.
  • (Certificates)(Select Certificates)스냅인 목록에서 인증서 를 선택  합니다.
  • 추가(Add) 를 클릭 합니다.
  • 관리할 인증서 저장소를 선택하라는 메시지가 표시되면  컴퓨터 계정을 선택합니다.(Computer account.)
  • 다음(Next) 을 클릭 합니다.
  • 영향을 받는 컴퓨터를 선택합니다.
  • 마침(Finish) 버튼을 클릭 합니다.
  • 확인(OK) 을 클릭 합니다.
  • 이제 원격 데스크톱 아래의 (Remote Desktop)인증서(Certificates)  폴더에서  RDP 자체 서명 인증서 를 삭제합니다 .
  • 영향을 받는 컴퓨터에서 원격 데스크톱 서비스(Remote Desktop Services) 서비스를 다시 시작합니다.
  • 인증서 스냅인을 새로 고칩니다.
  • RDP 자체 서명 인증서가 다시 생성되지 않은 경우 MachineKeys 폴더의 권한을 확인 하십시오(MachineKeys) .

9] MachineKeys 폴더 의 권한 확인(Check)

영향을 받는 컴퓨터에서 다음을 수행합니다.

  • Windows key + E 를 눌러 파일 탐색기(open File Explorer) 를 엽니다 .
  • 아래 디렉터리 경로로 이동합니다.
 C:\ProgramData\Microsoft\Crypto\RSA\
  • 위치에서 MachineKeys(MachineKeys) 를  마우스 오른쪽 버튼으로 클릭 하고 속성(Properties)보안 , (Security)고급(Advanced) 을 차례로 선택  합니다 .

(Make)다음 권한이 구성되어 있는지 확인 하십시오.

  • 내장 관리자: 모든 권한(Full control)
  • 모두: 읽기, 쓰기(Read, Write)

10] RDP 리스너 포트 확인

RDP 수신기 포트 확인

로컬(클라이언트) 컴퓨터와 원격(대상) 컴퓨터 모두에서 RDP 수신기는 포트 3389에서 수신 대기해야 합니다. 다른 응용 프로그램은 이 포트를 사용해서는 안 됩니다.

RDP 포트 를 확인하거나 변경하려면 레지스트리 편집기(Registry Editor) 를 사용하십시오 . 예방 조치로 레지스트리를 백업하거나 시스템 복원 지점을 만든 후 다음과 같이 계속하십시오.

  • 레지스트리 편집기를 열고 파일(File) 을 선택한 다음  네트워크 레지스트리 연결(Connect Network Registry) 을 선택합니다 .
  • 컴퓨터 선택(Select Computer) 대화 상자에서 원격 컴퓨터의 이름을 입력합니다 . 
  • 이름 확인을(Check Names.) 선택 합니다.
  • 확인 을 선택 합니다(OK) .
  • 그런 다음  아래 레지스트리 키 경로 로 이동하거나 이동 합니다.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp
  • 위치의 오른쪽 창에서 PortNumber 항목을 두 번 클릭하여 속성을 편집합니다.
  • 속성 창에서 (Value) 데이터 필드에 3389 이외의 값이 있으면 3389 로 변경합니다  .(3389.)
  • 확인(OK) 을 클릭 하여 변경 사항을 저장합니다.
  • 원격 데스크톱 서비스(Remote Desktop Services) 서비스를 다시 시작합니다 .

11] 다른 애플리케이션이 동일한 포트를 사용하고 있지 않은지 확인(Check)

다음을 수행합니다.

  • 관리자 모드에서 PowerShell을 엽니다.
  • 원격 컴퓨터에 연결하려면 아래 명령을 실행하십시오.
 Enter-PSSession -ComputerName <computer name>

다음으로 다음 명령을 실행합니다.

cmd /c 'netstat -ano | find "3389"'
  • (Look)상태가  Listening 인 (Listening)TCP 포트 3389(또는 할당된 RDP 포트) 에 대한 항목을 찾습니다 .

참고(Note) : 해당 포트를 사용하는 프로세스 또는 서비스 의 프로세스 식별자( PID )는 (PID)PID 열 아래에 나타납니다.

  • 포트 3389(또는 할당된 RDP 포트)를 사용하는 애플리케이션을 확인하려면 다음 명령을 입력하십시오.
cmd /c 'tasklist /svc | find "<pid listening on 3389>"'
  • (Look) ( 출력 에서) 포트와 연관된  PID 번호 에 대한 항목을 찾으십시오 . netstat해당 PID 와 연결된 서비스 또는 프로세스가 오른쪽 열에 나타납니다.
  • 원격 데스크톱 서비스(Remote Desktop Services) ( TermServ.exe ) 이외의 응용 프로그램이나 서비스 가 포트를 사용하는 경우 다음 방법 중 하나를 사용하여 충돌을 해결할 수 있습니다.

다른 포트를 사용하도록 다른 애플리케이션 또는 서비스를 구성합니다(권장).

다른 응용 프로그램 또는 서비스를 제거합니다.

다른 포트를 사용하도록 RDP(RDP) 를 구성한 다음 원격 데스크톱 서비스(Remote Desktop Services) 서비스 를 다시 시작합니다 (권장하지 않음).

12] 방화벽이 RDP 포트 를 차단하고 있는지 확인(Check)

psping 도구를 사용  하여 포트 3389를 사용하여 영향을 받는 컴퓨터에 연결할 수 있는지 테스트할 수 있습니다.

다음을 수행합니다.

  • 영향을 받지 않는 다른 컴퓨터로 이동하여 psping 을 (psping)다운로드 합니다 (download) .
  • 관리자 권한으로 명령 프롬프트 창을 열고  psping 을 설치한 디렉터리로 변경 한 후 다음 명령을 입력합니다.
psping -accepteula <computer IP>:3389
  •  다음과 같은 결과 에 대한 psping 명령 의 출력을 확인하십시오  .

Connecting to <computer IP> 중 : 원격 컴퓨터에 연결할 수 있습니다.

(0% loss) : 모든 연결 시도가 성공했습니다.

원격 컴퓨터가 네트워크 연결을 거부했습니다(The remote computer refused the network connection) . 원격 컴퓨터에 연결할 수 없습니다.

(100% loss) : 모든 연결 시도가 실패했습니다.

  • 여러 컴퓨터에서 psping(psping) 을 실행   하여 영향을 받는 컴퓨터에 연결하는 능력을 테스트합니다.
  • 영향을 받는 컴퓨터가 다른 모든 컴퓨터, 일부 다른 컴퓨터 또는 다른 컴퓨터 한 대의 연결만 차단하는지 확인합니다.

취할 수 있는 추가 단계는 다음과 같습니다.

  • 네트워크 관리자에게 문의하여 네트워크에서 영향을 받는 컴퓨터에 대한 RDP(RDP) 트래픽을 허용하는지 확인하십시오 .
  • 원본 컴퓨터와 영향을 받는 컴퓨터(영향을 받는 컴퓨터의 Windows 방화벽(Windows Firewall) 포함) 간의 방화벽 구성을 조사하여 방화벽이 RDP 포트 를 차단하고 있는지 확인합니다 .

이 게시물이 발생할 수 있는 RDP 연결 문제를 성공적으로 해결하는 데 도움이 되기를 바랍니다!



About the author

저는 10년 이상의 Windows 및 Mac 소프트웨어 작업 경험을 가진 정규 소프트웨어 엔지니어입니다. 저는 두 플랫폼 모두에서 애플리케이션을 설계, 테스트 및 배포하는 방법을 알고 있습니다. 보안 및 시스템 관리 경험도 있습니다. 나의 기술과 지식은 더 나은, 더 효율적인 컴퓨터 시스템을 구축하는 데 도움이 될 수 있습니다.



Related posts