“The RPC server is unavailable
” 오류는 네트워크에서 두 컴퓨터 사이에 통신 오류가 발생하면 Windows에서 나타납니다. 컴퓨터(RPC 클라이언트)는 원격 컴퓨터(RPC 서버)에 연결할 수 없습니다. 따라서 실행 중인 프로그램이 작동하지 않고 원격 호스트의 데이터에 액세스할 수 없기 때문에 RPC 오류를 반환합니다. 이 기사에서는 RPC 프로토콜을 사용하여 네트워크를 통해 컴퓨터의 정상적인 통신을 방해할 수 있는 일반적인 문제를 분석합니다.
RPC (원격 프로세스 호출 )은 클라이언트-서버 앱이 로컬 네트워크를 통해 통신하는 데 널리 사용되는 프로토콜입니다. 일반적으로 원격 컴퓨터와 통신하는 데 사용되지만 일부 프로그램은 앱과 로컬에서 실행되는 서비스 간의 상호 작용에 RPC를 사용합니다.
일반적인 세션에서 RPC 클라이언트는 RPC 종점 매퍼에 연결합니다. TCP 포트 135를 통한 RPC 서버의 서비스 필요한 RPC 앱(서비스)이 실행 중인 포트 번호를 요청합니다. RPC 종점 매퍼는 서비스가 시작될 때 지정된 서비스에 할당된 동적 RPC 포트의 번호를 반환합니다. 그런 다음 RPC 클라이언트는 지정된 TCP 포트에서 RPC 앱 서비스에 연결합니다.
RPC 클라이언트가 RPC 서버에 연결할 수 없는 경우 앱에 다음 오류가 나타납니다.
The RPC server is unavailable최신 Windows 버전(Windows Vista/2008 이상)은 동적 RPC 포트 범위 를 사용합니다.
49152
에서 65535
로 . Windows Server 2003/XP/2000은 다른 RPC 포트 범위(1024 – 65535)를 사용했습니다. 다음은 컴퓨터가 RPC를 통해 통신하지 못하게 하는 가장 일반적인 문제입니다.
- 원격 컴퓨터가 꺼져 있습니다.
- RPC 서비스가 원격 호스트에서 실행되고 있지 않습니다.
- 잘못된 호스트 이름(또는 잘못된 IP 주소가 서버 DNS 이름과 일치)을 사용하여 RPC 서버에 연결하려고 합니다.
- 서버 또는 클라이언트에서 잘못된 네트워크 연결 설정이 사용되었습니다.
- 클라이언트와 서버 간의 RPC 트래픽은 방화벽에 의해 차단됩니다.
원격 컴퓨터 가용성 확인
원격 컴퓨터가 켜져 있는지 확인하고 이름과 IP 주소로 ping을 실행합니다. 호스트 이름으로 RPC 서버를 사용할 수 없는 경우 DNS 레코드가 올바른지 확인하고 클라이언트에서 DNS 캐시를 플러시하십시오. ipconfig /flushdns
.
RPC 서버가 실행 중인 컴퓨터의 이름이 최근에 변경된 경우 Active Directory DNS에 다시 등록해 보십시오. ipconfig /registerdns
.
DCE/RPC 서비스 상태 확인
들어오는 RPC 연결을 처리하는 서비스가 서버에서 실행 중인지 확인하십시오.
- 서비스 관리 콘솔(
services.msc
); - 다음 서비스가 실행 중이고 자동으로 시작되도록 구성되어 있는지 확인하십시오. 원격 프로시저 호출(RPC) , RPC 종점 매퍼 및 DCOM 서버 프로세스 실행기 .
Get-Service RpcSs,RpcEptMapper,DcomLaunch| Select DisplayName,Status,StartType
선택
RPC 서비스가 중지되어 시작할 수 없는 경우 레지스트리를 통해 활성화해 보십시오. 서비스의 레지스트리 키를 찾아 시작 값을 변경합니다. 매개변수를 2로 (자동 서비스 시작):
- 원격 프로시저 호출(RPC) — HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\RpcSs
- RPC 종점 매퍼 — HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\RpcEptMapper
- DCOM 서버 프로세스 실행기 — HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\DcomLaunch
방화벽이 RPC 연결을 차단하고 있습니다.
컴퓨터 간의 RPC 트래픽이 방화벽에 의해 차단되지 않았는지 확인하십시오. 고급 보안이 포함된 Windows Defender 방화벽을 사용하는 경우 RPC 트래픽을 허용하는 규칙을 만들거나 규칙이 있는지 확인해야 합니다. 규칙 중 하나는 포트 TCP 135를 통해 RPC 종점 매퍼 서비스에 대한 액세스를 허용하는 것이고, 다른 하나는 RPC 동적 포트를 통해 사용하려는 RPC 서비스에 대한 액세스를 허용하는 것입니다. 모든 네트워크 프로필에 대한 규칙 만들기:도메인 , 비공개 및 공개
RPC를 지원하는 인바운드 규칙 만들기 문서의 지침에 따라 규칙을 수동으로 만들 수 있습니다. https://docs.microsoft.com/en-us/windows/security/threat-protection/windows-firewall/create-inbound-rules-to-support-rpc). AD 도메인 환경에서는 GPO를 사용하거나 PowerShell 스크립트를 사용하여 방화벽 규칙을 배포할 수 있습니다.
클라이언트의 RPC 서버에서 TCP/135 포트를 사용할 수 있는지 확인합니다(RPC 끝점 매퍼가 이를 수신해야 함). PowerShell을 통해 포트 가용성을 확인할 수 있습니다.
Test-NetConnection 192.168.1.201 -port 135
RPC 포트를 사용할 수 있으면 TcpTestSucceeded:True
메시지가 표시됩니다. .
PortQry 도구를 사용하여 원격 컴퓨터에 등록되고 RPC 끝점 매퍼 서비스에서 보급한 RPC 끝점(서비스 및 응용 프로그램) 목록을 가져올 수 있습니다.
portqry -n 192.168.1.201 -p tcp -e 135
PortQry 출력에서 사용하려는 RPC 서비스에 할당된 포트 번호(실행 중입니까?)를 볼 수 있으며 해당 포트가 클라이언트에서 차단되지 않았는지 확인합니다.
타사 방화벽/바이러스 백신 소프트웨어를 사용하는 경우 RPC 트래픽을 차단하지 않고 RPC 동적 포트 트래픽을 올바르게 처리할 수 있는지 확인하십시오.네트워크 프로토콜 및 설정 확인
컴퓨터의 네트워크 설정이 올바른지 확인하십시오:IP 주소, 기본 게이트웨이, 서브넷 마스크, DNS 서버 설정(PowerShell에서 네트워크 설정을 확인할 수 있음). 인터넷 프로토콜 버전 6(TCP/IPv6) 및 Microsoft 네트워크용 파일 및 프린터 공유 네트워크 어댑터의 설정에서 활성화됩니다.
TCP/IPv6 프로토콜이 비활성화되고 다음 오류가 반환되는 경우 일부 네트워크 앱이 올바르게 작동하지 않습니다.
1722 The RPC server is unavailable
. IPv6을 활성화한 후에도 RPC 오류가 지속되면 레지스트리를 통해 Teredo 프로토콜을 비활성화해 보십시오.이름이 DisabledComponents 및 값인 DWORD 매개변수 생성 8 reg 키 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters:
reg add hklm\system\currentcontrolset\services\tcpip6\parameters /v DisabledComponents /t REG_DWORD /d 8
어떤 경우에는 RPC 서버에서 트래픽 덤프를 가져와 Microsoft Network Monitor 3.4 또는 Message Analyzer를 사용하여 분석해야 합니다.
Windows 10 1809 및 Windows Server 2019에는 기본 제공 트래픽 스니퍼인 패킷 모니터(PktMon.exe)가 있습니다.