"RPC सर्वर अनुपलब्ध" त्रुटि का परिचय
"RPC सर्वर अनुपलब्ध है" त्रुटि Windows पर तब दिखाई देती है जब नेटवर्क में दो कंप्यूटरों के बीच संचार त्रुटि होती है। आपका कंप्यूटर (एक RPC क्लाइंट) रिमोट कंप्यूटर (एक RPC सर्वर) से कनेक्ट नहीं हो सकता। इसलिए, आप जो प्रोग्राम चला रहे हैं वह काम नहीं करता और RPC त्रुटि देता है क्योंकि यह रिमोट होस्ट पर डेटा तक नहीं पहुंच सकता। इस लेख में हम उन सामान्य समस्याओं का विश्लेषण करेंगे जो RPC प्रोटोकॉल का उपयोग करके नेटवर्क पर कंप्यूटरों के सामान्य संचार को रोक सकती हैं।
RPC (रिमोट प्रोसेस कॉल) क्लाइंट-सर्वर ऐप्स के लिए स्थानीय नेटवर्क पर संचार करने के लिए एक लोकप्रिय प्रोटोकॉल है। आमतौर पर, इसका उपयोग रिमोट कंप्यूटर के साथ संवाद करने के लिए किया जाता है, हालांकि, कुछ प्रोग्राम स्थानीय रूप से चलने वाले ऐप और सर्विस के बीच इंटरैक्शन में RPC का उपयोग करते हैं।
एक सामान्य सत्र में, एक RPC क्लाइंट TCP पोर्ट 135 पर RPC सर्वर पर 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 सेवाएं रिमोट होस्ट पर नहीं चल रही हैं
- आप गलत होस्टनाम का उपयोग करके RPC सर्वर से कनेक्ट करने का प्रयास कर रहे हैं (या गलत IP पता सर्वर DNS नाम से मेल खाता है)
- सर्वर या क्लाइंट पर गलत नेटवर्क कनेक्शन सेटिंग्स उपयोग की जाती हैं
- फायरवॉल द्वारा क्लाइंट और सर्वर के बीच RPC ट्रैफिक ब्लॉक किया गया है
रिमोट कंप्यूटर उपलब्धता की जांच
सुनिश्चित करें कि रिमोट कंप्यूटर चालू है, इसके नाम और IP पते से पिंग करें। यदि RPC सर्वर होस्टनाम द्वारा उपलब्ध नहीं है, तो जांचें कि DNS रिकॉर्ड सही हैं और क्लाइंट पर DNS कैश फ्लश करें: ipconfig /flushdns।
यदि आपके RPC सर्वर चल रहे कंप्यूटर का नाम हाल ही में बदला गया है, तो इसे एक्टिव डायरेक्टरी DNS में फिर से पंजीकृत करने का प्रयास करें: ipconfig /registerdns।
DCE/RPC सेवाओं की स्थिति जांचें
सुनिश्चित करें कि आने वाले RPC कनेक्शन को प्रोसेस करने वाली सेवाएं सर्वर पर चल रही हैं:
- सर्विस मैनेजमेंट कंसोल खोलें (
services.msc) - सुनिश्चित करें कि निम्न सेवाएं चल रही हैं और स्वचालित रूप से शुरू होने के लिए कॉन्फ़िगर की गई हैं: रिमोट प्रोसीजर कॉल (RPC), RPC एंडपॉइंट मैपर और DCOM सर्वर प्रोसेस लॉन्चर
आप PowerShell के माध्यम से सेवाओं की स्थिति जांच सकते हैं:
Get-Service RpcSs,RpcEptMapper,DcomLaunch| Select DisplayName,Status,StartType
यदि 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
फायरवॉल RPC कनेक्शन ब्लॉक कर रहा है
सुनिश्चित करें कि कंप्यूटरों के बीच RPC ट्रैफिक आपके फायरवॉल द्वारा ब्लॉक नहीं किया गया है। यदि आप Windows Defender Firewall with Advanced Security का उपयोग कर रहे हैं, तो आपको RPC ट्रैफिक की अनुमति देने वाले नियम बनाने होंगे या यह सुनिश्चित करना होगा कि वे मौजूद हैं। नियमों में से एक RPC एंडपॉइंट मैपर सर्विस तक पोर्ट TCP 135 पर पहुंच की अनुमति देना है, दूसरा है RPC डायनामिक पोर्ट्स के माध्यम से आपके द्वारा उपयोग की जाने वाली RPC सर्विस तक पहुंच की अनुमति देना। सभी नेटवर्क प्रोफाइल के लिए नियम बनाएं: डोमेन, निजी और सार्वजनिक।
आप लेख Create Inbound Rules to Support RPC (https://docs.microsoft.com/en-us/windows/security/threat-protection/windows-firewall/create-inbound-rules-to-support-rpc) में निर्देशों का पालन करके नियम मैन्युअल रूप से बना सकते हैं। AD डोमेन वातावरण में, आप GPO का उपयोग करके फायरवॉल नियम तैनात कर सकते हैं या PowerShell स्क्रिप्ट का उपयोग कर सकते हैं।
सुनिश्चित करें कि पोर्ट TCP/135 आपके RPC सर्वर पर क्लाइंट से उपलब्ध है (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 Networks के लिए फाइल और प्रिंटर शेयरिंग सक्षम हैं।
कुछ नेटवर्क ऐप्स सही ढंग से काम नहीं करते हैं यदि 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 या Message Analyzer का उपयोग करके करना होगा।
Windows 10 1809 और Windows Server 2019 में बिल्ट-इन ट्रैफिक स्निफर है - Packet Monitor (PktMon.exe)।