Служба rpc что это

Служба rpc что это

Многие пользователи компьютерных систем слышали о таких понятиях, как удаленные процедуры, вызов удаленных процедур или RPC. Вот только далеко не все представляют себе, что это за технологии, как они работают и для чего нужны. А ведь многие из тех, кто отключил данную службу в Windows-системах, зачастую могут получать и ошибки, относящиеся к критическим сбоям. Об этом и многом другом далее пойдет речь.

Удаленный вызов процедур: что это?

Начать стоит с некоторых теоретических сведений. Как считается, удаленные процедуры (вызов удаленных процедур) – это механизм, позволяющий запускать или использовать какие-либо функции компьютерных систем в отличном от используемого терминала адресном пространстве. Проще говоря, это способ доступа к удаленному компьютеру, например, через локальную сеть или интернет-подключение.

Однако удаленные процедуры (вызов удаленных процедур), обозначаемые как RPC (сокращение от английского Remote Procedure Call), можно отнести не только к удаленным компьютерам. На локальном уровне такие технологии тоже применяются. В качестве простейшего примера можно привести вызов определенной функции одной программы из другого приложения посредством взаимодействия через специальные библиотеки.

Кроме того, абсолютно во всех версиях Windows имеется такая служба, а при ее отключении или отказе работоспособности модификация XP не работает вообще.

Принцип действия

Как правило, служба «Удаленный вызов процедур RPC» для работы в режиме клиент-сервер требует наличия как минимум двух основных компонентов: сетевого протокола для обмена данными и языка сериализации (перевода какого-то процесса или информационной структуры данных в битовую последовательность).

Архитектуры могут быть совершенно разными и отличающимися по своим возможностям. Но для обмена данными на так называемом транспортном уровне чаще всего применяются протоколы UDP и TCP, реже – HTTP.

Чтобы не вдаваться в технические аспекты, самым простым объяснением принципа работы таких технологий может стать следующие пример: клиентский процесс формирует запрос серверу с описанием выбранной процедуры с указанными параметрами и отправляет его, после чего сервер выполняет требуемую директиву и отправляет клиенту ответ, который отображается на клиентской машине. Однако сам серверный обработчик находится, так сказать, в режиме ожидания и активируется только в моменты получения клиентских запросов. При этом совсем не обязательно, чтобы выполнение схемы «запрос-ответ» производилось немедленно.

При этом максимальный эффект производительности достигается при обмене относительно малыми объемами данных и небольшим временем отклика компонентов, между которыми установлена интерактивная связь.

Удаленные процедуры (вызов удаленных процедур): характерные черты и реализации

Таким образом, можно выделить две главные особенности названных технологий:

  • асимметричность (инициация выполнения удаленной процедуры только одной из сторон);
  • синхронность (приостановка вызывающей процедуры с момента инициации запроса и возобновление после отправки ответа).

Что же касается реализаций, удаленные процедуры (вызов удаленных процедур) сегодня используют несколько базовых технологий, среди которых наиболее широко применяются следующие:

  • DCE/RPC – бинарный протокол на основе TCP/IP, SMB/SIFC и т. д.;
  • DCOM – объектно-ориентированное дополнение с возможностью передачи ссылок на объекты и вызовом методов их обработки;
  • JSON-RPC – текстовый протокол, основанный на HTTP;
  • .NET Remoting – бинарный протокол на основе UDP, TCP и HTTP;
  • JAVA RMI;
  • SOAP;
  • XML RPC;
  • SUN RPC;
  • ZeroC ICE;
  • Routix.RPC и др.

Проблемы и задачи

Теперь несколько слов о недостатках. Самая главная проблема, а соответственно, и задача реализации, состоит в том, что одна и та же операция вызова удаленной процедуры через узел службы «Удаленный вызов процедур» должна одновременно выполняться на разных машинах, причем зачастую с различными операционными системами, адресными пространствами и архитектурой. В процессе данные параметров должны копироваться с одного терминала на другой. Для этого используется не только транспортный протокол, но и сериализация, позволяющая преобразовать в байтовую последовательность разные типы данных.

Второй момент связан с тем, что удаленные процедуры (вызов удаленных процедур) используют не один процесс, как на локальном уровне, а два (на клиентской машине и на сервере). Посему аварийное завершение программы на одном из терминалов может вызвать такую же реакцию и на другом.

Наконец, одной из основных называется проблема совместимости ввиду неоднородности некоторых языков программирования, несмотря даже на установленные единые стандарты.

Основные типы подсистем

Удаленный вызов процедур Windows 10 или любой другой системы рангом ниже подразумевает использование специальных подсистем:

  • транспортная подсистема, предназначенная для управления исходящими и входящими подключениями с гарантированной доставкой пакетов данных;
  • пул-протоколов – концепция выполнения процедуры на вызываемом терминале;
  • сериализация (маршалинг) – преобразование потоков данных в стандартные байтовые коды, независящие от архитектуры;
  • шифрование отправляемых и принимаемых пакетов с наложением на них цифровой подписи;
  • система аутентификации и авторизации.
Читайте также:  Как вернуть поисковую строку яндекса

Какие типы программ требуют выполнения RPC?

Если же говорить о том, какие программные модули операционных систем требуют держать службу RPC включенной, все их перечислить просто невозможно.

Но среди всем известных компонентов Windows-систем можно отметить службу факсов, службы криптографии, регистрацию ошибок, справку и поддержку, доступ к устройствам HID, службу сообщений (Messenger), администрирование дисков и логических разделов, управление съемными накопителями, аудиосистему, установщик Windows и еще бог весть что.

Думается, этого списка достаточно, чтобы понять, насколько многие компоненты системы, да и сам пользователь, зависимы от этой службы.

На что влияет RPC

Вообще, исходя из предыдущего описания, можно оценить влияние RPC. Так, например, известно немало случаев, когда при отключении этой службы полностью пропадал звук, невозможным оказывалось восстановление системы после критических сбоев или инициированное пользователем, «слетали» настройки беспроводной сети.

Но самое печальное состоит в том, что, если отключить удаленный вызов процедур RPC, иногда бывает невозможно даже получить доступ к основным настройкам системы, будь пользователь хоть трижды администратором на собственном терминале.

Можно ли отключить эту службу

По большому счету, многие пытались (и пытаются) службу «Удаленный вызов процедур» отключить. Делать это категорически запрещается. В общем-то, и сама система при осуществлении такой попытки сделать этого не даст, выдав соответствующее уведомление.

Но не все знают, что в разделе службы (services.msc) есть еще такая штука, как «Локатор удаленного вызова процедур RPC». Вот его-то как раз и можно отключить безболезненно для системы. Приложения, которые могут его использовать в своей работе, самостоятельно вызовут сервис при необходимости.

Устранение сбоев и ошибок

Наконец, посмотрим, что можно сделать, если выдается ошибка при удаленном вызове процедуры. В самом простом случае можно попытаться включить службу заново (если, конечно, получится).

Для этого в соответствующем разделе, где находится искомая служба, двойным кликом вызывается меню редактирования параметров, нажимается кнопка включения, а сам тип включения устанавливается на автоматический. Если проделать такую процедуру при стандартной загрузке системы не представляется возможным, можно попытаться произвести аналогичные действия в безопасном режиме. Некоторые специалисты советуют заодно на время проведения действий на всякий случай отключить антивирусное ПО.

Если это не поможет, но под рукой имеется установочный или восстановительный диск системы, можно запустить командную консоль с правами администратора (загружаться с диска не нужно) и прописать в ней такие команды:

  • cd z:i386 (Z – литера оптического привода);
  • expand explorer.ex_ %TEMP%explorer.exe;
  • expand svchost.ex_ %TEMP%svchost.exe.

После этого запускаем «Диспетчер задач» (Ctrl + Del + Alt или taskmgr в меню «Выполнить») и завершаем процесс Explorer.exe.

Далее в командной консоли прописываем следующее: copy %TEMP%explorer.exe %SYSTEMROOT% /y.

В «Диспетчере» останавливаем все процессы svhost.exe, после чего в течение 60 секунд нужно успеть в командой строке ввести строку copy %TEMP%svchost.exe %systemroot%system32 /y.

Наконец, если есть доступ к редактору системного реестра (regedit) восстановлен, нужно пройти по ветке HKCC через разделы SYSTEM и CurrentControlSet и добраться до параметра CSConfigFlags, изменив его значение на ноль.

Это далеко не все методы исправления ошибок, связанных с RPC. Дело в том, что, если эта служба повлекла за собой нарущения в работе других сервисов, возможно, сначала придется устранять проблемы с их работоспособностью, а только потом предпринимать какие-то действия в отношении RPC. И не всегда к вышеописанным параметрам и настройкам можно получить полный доступ. Если уж совсем ничего не получится, как это ни плачевно звучит, придется полностью переустанавливать операционную систему, хотя хочется надеяться, что до этого дело не дойдет.

Заключение

Вот кратко и все, что касается технологии и службы RPC. На самом деле все это выглядит намного сложнее, нежели было представлено в данном описании, и для полного понимания вопроса необходимо обладать хотя бы начальными знаниями. Но для того, чтобы иметь об RPC общее представление, этого пока достаточно.

Что же касается отключения, не вздумайте заниматься подобными вещами, иначе вся система откажет. Приведенные решение по исправлению сбоев обычно помогают, но полной гарантии все равно дать нельзя, ведь деактивация службы могла вызвать сбои и в других компонентах.

При подключении к инструментарию управления Windows (WMI), SQL Server, удаленному соединению или для некоторых оснасток консоли управления (MMC) может возникнуть ошибка " сервер RPC недоступен". На приведенном ниже рисунке показан пример ошибки RPC.

Это типичное сообщение об ошибке в сетевом мире, которое может быть продолжено очень быстро, не пытаясь понять, что происходит в разделе "внутри".

Прежде чем приступить к устранению неполадок, возникающих при ошибке "сервер RPC недоступен " — сначала изучите основы ошибки. Есть несколько важных терминов для понимания:

Читайте также:  Vk music bot в телеграм

    Сопоставитель конечных точек — служба, прослушиваемая на сервере, направляющая клиентские приложения на серверные приложения по порту и UU >

В разделе Устранение неполадок используется большое количество приведенных выше данных, самый важный из них — номер динамического порта RPC, который вы получаете при общении с EPM.

Как работает соединение

Клиент A хочет выполнить некоторые функции или использовать службу, запущенную на удаленном сервере, сначала установите соединение с удаленным сервером, выполнив для него три способа подтверждения.

Порты RPC также можно получать из определенного диапазона.

Настройка динамического выделения порта RPC

Динамическое выделение портов удаленного вызова процедур (RPC) используется серверными приложениями и удаленными приложениями администрирования, например диспетчером протокола DHCP, диспетчером служб Windows Internet Name Service (WINS) и т. д. Динамическое назначение порта RPC предписывает программе RPC использовать конкретный случайный порт в диапазоне, настроенном для TCP и UDP, в зависимости от реализации используемой операционной системы.

Пользователи, использующие брандмауэры, могут захочет управлять тем, какие порты использует RPC, чтобы маршрутизаторы брандмауэра могли перенаправлять только эти порты протокола управления передачей (UDP и TCP). Многие серверы RPC в Windows позволяют указать порт сервера в настраиваемых элементах конфигурации, например в записях реестра. Когда вы можете указать выделенный порт сервера, вы знаете, какой трафик проходит между узлами в брандмауэре, и можете определить, какой трафик будет разрешен более направленным образом.

В качестве порта сервера выберите порт за пределами диапазона, который вы можете использовать ниже. Вы можете найти полный список серверных портов, которые используются в Windows и основных продуктах Майкрософт в службах статей и требования к сетевым портам для Windows. В этой статье также указаны серверы RPC и серверы, которые могут быть настроены на использование настраиваемых портов сервера за пределами возможностей среды выполнения RPC.

Некоторые брандмауэры также допускают фильтрацию UUID, когда он рассматривается из запроса сопоставителя конечных точек RPC для идентификатора UUID интерфейса RPC. Ответ включает номер порта сервера, и затем можно передать следующую привязку RPC для этого порта.

С помощью редактора реестра вы можете изменить следующие параметры RPC. Значения ключа порта RPC, описанные ниже, находятся в следующем разделе реестра:

Тип данных "имя элемента HKEY_LOCAL_MACHINESoftwareMicrosoftRpcInternet"

Порты REG_MULTI_SZ

  • Указывает набор диапазонов IP-портов, которые содержат либо все порты, доступные в Интернете, либо все порты, недоступные через Интернет. Каждая строка представляет один порт или целый набор портов. Например, один порт может быть представлен 5984, а набор портов может быть представлен 5000-5100. Если какие – либо записи находятся за пределами диапазона от 0 до 65535 или строка не может быть интерпретирована, среда выполнения RPC считает всю конфигурацию недействительной.

Портсинтернетаваилабле REG_SZ Y или N (без учета регистра)

  • Если да, порты, перечисленные в разделе Ports (порты), являются портами, доступными в Интернете на этом компьютере. Если N, порты, указанные в разделе Ports, являются портами, которые не являются доступными в Интернете.

Усеинтернетпортс REG_SZ) Y или N (без учета регистра)

  • Указывает политику системы по умолчанию.
  • Если задано значение Y, для процессов, использующих по умолчанию, будут назначены порты из набора портов, доступных в Интернете, как определено ранее.
  • Если N процесс, использующий значение по умолчанию, будет назначаться портами из набора портов интрасети.

Пример.

В этом примере порты 5000 – 6000 включительно выделены произвольно, чтобы понять, как можно настроить новый раздел реестра. Это не является рекомендацией минимального количества портов, необходимых для конкретной системы.

Добавление ключа Интернета в раздел: HKEY_LOCAL_MACHINESoftwareMicrosoftRpc

В разделе Интернет-ключ добавьте значения "Ports" (MULTI_SZ), "Портсинтернетаваилабле" (REG_SZ) и "Усеинтернетпортс" (REG_SZ).

Например, новый раздел реестра выглядит следующим образом: ports: REG_MULTI_SZ: 5000-6000 Портсинтернетаваилабле: REG_SZ: Y Усеинтернетпортс: REG_SZ: Y

Перезагрузите сервер. Во всех приложениях, использующих динамическое назначение порта RPC, используются порты 5000 – 6000 включительно.

Вы должны открыть диапазон портов, расположенных над портом 5000. Номера портов, приведенные ниже 5000, могут быть уже использованы другими приложениями и могут привести к конфликтам с приложениями DCOM. Кроме того, предыдущий опыт показывает, что требуется открыть не менее 100 портов, поскольку некоторые системные службы используют эти порты RPC для связи друг с другом.

Минимальное необходимое число портов может отличаться от компьютера к компьютеру. Компьютеры с большим трафиком могут работать в ситуации исчерпания портов, если динамические порты RPC ограничены. Это следует учитывать при ограничении диапазона портов.

Если в конфигурации порта возникла ошибка или в пуле недостаточно портов, служба сопоставителя конечных точек не сможет регистрировать серверы RPC с динамическими конечными точками. При возникновении ошибки в конфигурации код ошибки будет 87 (0x57) ERROR_INVALID_PARAMETER. Это может повлиять на серверы Windows RPC, например Netlogon. В этом случае будет регистрироваться событие 5820.

Читайте также:  Западает поплавок в бачке унитаза

Имя журнала: системный источник: код события NETLOGON: 5820 уровень: ошибка ключевые слова: классическая описание: службе Netlogon не удалось добавить интерфейс AuthZ RPC. Служба была прервана. Произошла следующая ошибка: "параметр неверен".

Если вы хотите глубоко погрузиться в том, как это работает, ознакомьтесь с разрешениями на вызов RPC для ИТ-специалистов ина профессиональном уровне.

Устранение ошибок RPC

порткуери

Лучше всего всегда устранять проблемы с RPC, прежде чем приступить к трассировке — с помощью таких средств, как PortQry. Вы можете быстро определить, можно ли установить соединение, выполнив команду:

Это может привести к выводу большого количества выходных данных, но вы должны найти * ip_tcp-и номер порта в квадратных скобках, указывающий, успешно ли вы можете получить динамический порт из EPM, а также установить подключение к нему. В случае сбоя вы обычно можете начать сбор одновременных трассировок сети. Что-то вроде этого из результатов "PortQry":

Частичный вывод ниже.

Запрос на целевую систему с именем: 169.254.0.2 пытается разрешить IP-адресу имя. IP-адрес разрешен в RPCServer.contoso.com запроса. Порт TCP 135 (служба EPMAP): ПРОСЛУШИВАНИе с помощью временного исходного порта запрашивает базу данных сопоставителя конечных точек. Ответ сервера: UUID: d95afe70-a6d5-4259-822e-2c84da1ddb0d ncacn_ip_tcp: 169.254.0.10[49664]

Один шрифт — это номер временного порта, с которым вы успешно сделали соединение.

Netsh

Вы можете выполнить приведенные ниже команды, чтобы использовать для Windows встроенные средства Netsh, чтобы собрать одновременную трассировку. Не забудьте выполнить приведенную ниже команду для команды "администраторская CMD", для которой требуется повышение прав.

Теперь попробуйте воспроизвести свою ошибку на клиентском компьютере и, как только вы считаете, что она была воспроизведена, и остановите трассировки с помощью команды.

Откройте трассировки в сетевом мониторе Microsoft 3,4 или анализаторе сообщений и отфильтруйте трассировку для

Ipv4.address== и ipv4.address== и tcp.port==135 просто tcp.port==135 должен помогать вам.

Найдите протокол "EPM" в столбце "протокол".

Теперь убедитесь, что вы получаете ответ от сервера. При получении ответа Обратите внимание на динамический номер порта, который вы выделили для использования.

Убедитесь, что соединение с этим динамическим портом успешно установлено.

Фильтр должен выглядеть примерно так: tcp.port== ipv4.address==

Это поможет вам проверить подключение и выявить возможные проблемы с сетью.

Порт недоступен

Наиболее распространенная причина, по которой мы бы смогли увидеть сервер RPC, недоступен, если динамический порт, к которому пытается подключиться клиент, недоступен. После этого трассировка на стороне клиента будет показывать повторные передачи TCP SYN для динамического порта.

Порт недоступен по одной из указанных ниже причин.

  • Динамический диапазон портов блокируется брандмауэром в среде.
  • На среднем устройстве удаляются пакеты.
  • Конечный сервер отбрасывает пакеты (драйвер с фильтрацией и отфильтром, а также с помощью Drop/NIC).

—>

Посетителей: 240392 | Просмотров: 289398 (сегодня 2) Шрифт:

Системная служба удаленного вызова процедур (RPC) представляет собой механизм взаимодействия между процессами (IPC), который позволяет осуществлять обмен данными и вызывать функции из других процессов. Другой процесс может быть запущен на локальном компьютере, в локальной сети или на удаленном компьютере; для получения доступа к нему используется подключение по глобальной (WAN) или виртуальной частной (VPN) сети. Служба RPC выступает в роли службы отображения конечных точек RPC и диспетчера служб СОМ (Component Object Model). Служба удаленного вызова процедур необходима для запуска многих других служб.

Эту службу можно назвать ключевой в Windows XP, ваша система не будет без нее работать, именно поэтому это единственная служба, которую вы не можете отключить через консоль Службы (services.msc). Отключение данной службы в Windows 2000 приводило к тому, что система переставала загружаться. Поэтому я КАТЕГОРИЧЕСКИ не рекомендую отключать эту службу (а сделать это можно только через утилиту msconfig).

Название службы: RpcSs
Название процесса: svchost.exe
По умолчанию в Windows XP Home: Автоматически
По умолчанию в Windows XP Pro: Автоматически
Рекомендуемое значение: Автоматически
Вход от имени: Сетевая служба
Используемые протоколы и порты, на которых служба ожидает входящий трафик: TCP: 135, TCP: 593

Какие сервисы нужны для нормального функционирования службы Удаленный вызов процедур (RPC) (Remote Procedure Call (RPC)):

Какие сервисы требуют работу службы Удаленный вызов процедур (RPC) (Remote Procedure Call (RPC)) для нормального функционирования:

Ссылка на основную публикацию
Adblock
detector