当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 解决 Windows 上的“RPC 服务器不可用”错误

作者:精品下载站 日期:2024-12-14 23:01:58 浏览:14 分类:玩电脑

解决 Windows 上的“RPC 服务器不可用”错误


The RPC server is unavailable

当网络中的两台计算机之间发生通信错误时,Windows 上会出现“错误”。您的计算机(RPC 客户端)无法连接到远程计算机(RPC 服务器)。因此,您正在运行的程序无法工作并返回 RPC 错误,因为它无法访问远程主机上的数据。在本文中,我们将分析可能阻止使用 RPC 协议通过网络进行计算机正常通信的常见问题。

[玩转系统] 解决 Windows 上的“RPC 服务器不可用”错误

RPC远程进程调用)是客户端-服务器应用程序通过本地网络进行通信的流行协议。通常,它用于与远程计算机进行通信,但是,某些程序在应用程序和本地运行的服务之间的交互中使用 RPC。

在典型的会话中,RPC 客户端通过 TCP 端口 135 连接到 RPC 服务器上的 RPC Endpoint Mapper 服务,并请求其运行所需的 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 进行通信的最常见问题:

  1. 远程计算机已关闭;

  2. 远程主机上未运行 RPC 服务;

  3. 您正在尝试使用错误的主机名(或者错误的 IP 地址与服务器 DNS 名称匹配)连接到 RPC 服务器;

  4. 服务器或客户端使用了错误的网络连接设置;

  5. 客户端和服务器之间的 RPC 流量被防火墙阻止。

检查远程计算机可用性

确保远程计算机已打开,通过其名称和 IP 地址对其进行 ping 操作。如果主机名无法使用 RPC 服务器,请检查 DNS 记录是否正确并尝试刷新客户端上的 DNS 缓存:

ipconfig /flushdns

如果运行 RPC 服务器的计算机的名称最近已更改,请尝试在 Active Directory DNS 中重新注册它:

ipconfig /registerdns

检查DCE/RPC服务状态

确保处理传入 RPC 连接的服务正在服务器上运行:

  1. 打开服务管理控制台(

    services.msc

    );

  2. 确保以下服务正在运行并配置为自动启动:远程过程调用 (RPC)RPC Endpoint MapperDCOM Server Process Launcher

    [玩转系统] 解决 Windows 上的“RPC 服务器不可用”错误

您可以通过 PowerShell 检查服务的状态:

Get-Service RpcSs,RpcEptMapper,DcomLaunch| Select DisplayName,Status,StartType

[玩转系统] 解决 Windows 上的“RPC 服务器不可用”错误

如果RPC服务被停止并且无法启动,请尝试通过注册表激活它们。找到服务的注册表项,并将Start参数的值更改为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

[玩转系统] 解决 Windows 上的“RPC 服务器不可用”错误

防火墙阻止 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

[玩转系统] 解决 Windows 上的“RPC 服务器不可用”错误

如果 RPC 端口可用,您将看到以下消息:

TcpTestSucceeded:True

您可以使用 PortQry 工具获取在远程计算机上注册并由 RPC Endpoint Mapper 服务公布的 RPC 端点(服务和应用程序)的列表:

portqry -n 192.168.1.201 -p tcp -e 135

在 PortQry 输出中,您可以看到分配给您要使用的 RPC 服务的端口号(它是否正在运行?),并确保该端口未被客户端阻止。

如果您使用第三方防火墙/防病毒软件,请确保它不会阻止 RPC 流量并且可以正确处理 RPC 动态端口流量。

检查网络协议和设置

确保计算机上的网络设置正确:IP 地址、默认网关、子网掩码、DNS 服务器设置(您可以从 PowerShell 检查网络设置)。确保在网络适配器的设置中启用了Internet 协议版本 6 (TCP/IPv6)Microsoft 网络的文件和打印机共享

[玩转系统] 解决 Windows 上的“RPC 服务器不可用”错误

如果禁用 TCP/IPv6 协议,某些网络应用程序将无法正常工作并返回错误:

1722 The RPC server is unavailable

。如果启用 IPv6 后 RPC 错误仍然存在,请尝试通过注册表禁用 Teredo 协议:
在注册表项 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters 中创建名称为 DisabledComponents 和值 8 的 DWORD 参数:

reg add hklm\system\currentcontrolset\services\tcpip6\parameters /v DisabledComponents /t REG_DWORD /d 8

在某些情况下,您必须从 RPC 服务器获取流量转储并使用 Microsoft Network Monitor 3.4 或消息分析器对其进行分析。

Windows 10 1809 和 Windows Server 2019 具有内置流量嗅探器 - 数据包监视器 (PktMon.exe)。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯