APP下载

解决“RPC服务器不可用”的难题

2021-07-08俞木发

电脑爱好者 2021年13期
关键词:打印机防火墙端口

俞木发

了解RPC服务

RPC是“Remote ProcedureCall”的简称,直译为“远程过程调用”,它是Windows为一个节点请求另一个节点提供的系统服务。比如在局域网中,客户端(以下简称为电脑A)要访问部署在服务端(以下简称为电脑B)的共享打印机。由于打印机没有安装在电脑A上,因此电脑A对打印机的访问就需要通过网络调用,RPC的作用就是用来表达调用的语义和传达调用的数据。如果系统提示RPC服务不可用,那么电脑A就无法成功访问打印机了。RPC的连接流程如图所示(图2),可以看到在整个连接过程中,最容易导致RPC故障的主要就是系统服务、通信协议、防火墙、远程服务端以及电脑A、B本地网络状态这五个环节。

解决RPC不可用的问题

如上所述,我们知道了产生RPC连接问题的五个主要环节。下面我们就主要针对这些环节介绍相应的解决方案。

1系统服务状态检测

Windows中的RPC连接是通过“Remote Procedure Call(RPC)”服务提供的,该服务又和“RPC Endpoint Mapper”、“DCOM Server Process Launcher”等服务相关联。因此,在遇到RPC服务不可用时,我们需要先对电脑A和电脑B中的上述三个服务的状态进行检测。在任务栏的搜索框中输入“services.msc”启动服务组件,找到上述三个服务(需要同时检测电脑A和B),然后将它们的启动状态均设置为“自动”,并启动这些服务(图3)。

2通信协议状态检测

RPC服务使用的网络通信协议主要是本机以太網的“Microsoft网络的文件和打印机共享”和“Internet协议版本6(TCP/IPv6)”。如果服务状态检测没有问题,那么可以在任务栏的搜索框中输入“以太网设置”(需要检测电脑A和B),然后依次执行“更改适配器选项→选中本机网卡→右击选择属性”,在打开的窗口中确保上述两个项目前的复选框均已勾选,最后点击“确定”保存并退出(图4)。

3防火墙状态检测

如图2的流程所示,RPC服务在电脑A发起远程连接,以及电脑B返回连接请求的时候都要通过防火墙。如果电脑的防火墙对一些端口进行了限制,那么也会导致RPC服务不可用。比如常规的RPC服务需要用到TCP/135端口连接,端口连接状态可以使用PowerShell命令进行检测。以管理员身份启动PowerShell后输入并执行“ipconfig”命令,在窗口中记住本机的IP地址,假设电脑A的地址是“192.168.1.5”。继续执行“Test-NetConnection 192.168.1.5-port 135”命令进行检测,这里确保“TcpTestSucceeded”状态显示为“True”(表示可以成功连接135端口)(图5)。

如果上述状态显示为“False”(表示135端口不可用),那么我们就需要对电脑A(主要检测出站规则)和电脑B(主要检查入站规则)的防火墙规则进行检查。以检查电脑B的入站规则为例,在桌面任务栏的搜索框中输入“高级安全”,启动“高级安全Windows Defender防火墙”,在左侧的窗格中切换到“入站规则”,然后在右侧的窗格中检查“操作”状态为“阻止”的规则,打开相应的规则后切换到“协议和端口”,查看是否有阻止TCP/135端口的设置,如有则将该规则删除即可(图6)。电脑A的出站规则的检测类似。

4远程电脑状态检测

如图2的流程所示,电脑A在进行RPC连接时需要得到远程电脑B的响应,如果电脑B的网络出现问题也会导致RPC不可用。电脑A、B之间网络互通可以通过Ping命令来测试,比如已经知道之前连接的电脑B的IP地址是192.168.1.6,在电脑A上启动命令提示符后输入并执行“ping 192.168.1.6”,如果显示“无法访问目标主机”,那么说明电脑A与B的网络打印机之间线路不通(图7)。此时就需要对电脑A、B的网络设置进行检测。比如可以用电脑A、B分别Ping电脑C,以确定电脑A、B和其他局域网电脑的网络是否有问题,然后再进行对应的检测;检查电脑A、B的IP是否处在同一网段,还有子网掩码是否相同,如果不一致,进行对应的设置;检查电脑A、B防火墙的设置,必要时关闭防火墙再连接测试;检查电脑B是否已经开机等。

5电脑本地网络状态检测

如上所述,RPC是为节点之间的网络访问提供服务,如果本地电脑的网络状况出现问题,也会导致RPC服务不可用。如果使用上述介绍的方法进行检测均没有问题,比如电脑A可以Ping通电脑B,但是问题依旧,那么可能是电脑A本地DNS缓存的问题。可以在命令提示符窗口中继续执行“ipconfig/flushdns”命令(清空本地DNS缓存)。如果RPC服务器上运行的电脑B的名称最近做过更改,那么可以在电脑B上执行“ipconfig/registerdns”命令,将其重新注册到活动目录DNS中,这样一般可以解决问题(图8)。

猜你喜欢

打印机防火墙端口
构建防控金融风险“防火墙”
端口阻塞与优先级
另类3D打印机
打印机基板大型注塑模具设计
FDM型混色3D打印机的设计
在舌尖上筑牢抵御“僵尸肉”的防火墙
初识电脑端口
8端口IO-Link参考设计套件加快开发速度
复制粘贴打印机
下一代防火墙要做的十件事