Качество подключения к удаленному компьютеру плохое

Обновлено: 02.07.2024

По работе возникает необходимость использовать раб комп из дома удалённо.
Т.к. наличие на раб компе белого ip позволяет использовать RDP, то его и пользую.

Всё устраивает, кроме 1. Периодически, если свернуть окно с RDP, а потом развернуть, то окно зависает. Т.е. удалённый комп как бы не реагирует. Решается всё простым перезаходом.
Закрываю зависшее окно, коннекчусь заново и всё ок. Это немного напрягает.

С удалённым компом всё ок, не виснет. Как при непосредственной работой за ним, так и после перезахода RDP. Винда и там и там 10 pro x64. Интернет отличный и дома, и на работе. Возникают мысли снести винду на рабочем, но лениво.

P.S. понимаю, что пост сейчас заминусят, но вдруг кто-нибудь сталкивался с подобной проблемой и подскажет, куда копать.
Всем спасибо!

Используй TCP подключение, а не UDP

Отключите UDP и оставьте соединение только по TCP.

От имени администратора откройте консоль CMD и в ней выполните команду:

reg add "HKLM\software\policies\microsoft\windows nt\Terminal Services\Client" /v fClientDisableUDP /d 1 /t REG_DWORD

Срочно долбите админа настроить vpn. Rdp смотрящий наружу это пздц всем файлам на компе

не сворачивайте, а закрывайте - открывайте, в чем проблема?

0.5гБит скорость на работе и не понимать почему не делается голый rdp.

Здесь причин может быть много.

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

2) если у вас белый ип и вы сделали проброс порта 3389 на свою машину вас могут ломать. Проанализируйте логи винды на предмет ошибки логина-пароля. Проброс прота оч небезопасное действо - глубокой ночью у кого-то может и получиться.. Скрывайтесь в впн туннеле, так хоть чуть побезопаснее будет

3) проверьте ваше оборудование и кабели от одного компьютера до другого - нет ли потерь пакетов (в момент разовой проверки все может быть ок, запустите непрерывно на некоторое время). На самый крайний случай можно удерживать активным соединение обычным пингом с ключом -t, но это только в качестве способа определить проблему

У меня блин в праздники почему-то перестал принтос с 10 на 2012 r2 сервер пробрасывать. Кто знает-это трабл, или все глючит в штатном режиме?

Отрубить всякие рюшечки, кеширование, обои, битмап, проброс ресурсов.

И да - голый рдп вроде не так давно сломали.

Отрабатывает тайм-аут соединения скорее асего. Сидеть голым задом читай Белый адрес да в rdp, да вы чертовски рисковый.

Обожаю эти многоуровневые подключения

Проспал, работаю сегодня из дома.

По RDP подключился к своему рабочему компу

Оттуда по RDP на сервер клиента

Оттуда по VNC на комп клиента

И там открыл TeamViewer, чтобы спец из другой фирмы мог творить там свои грязные сисадминские дела.


Запасаемся попкорном или CVE-2019-0708

Стало известно об опасной уязвимости в протоколе RDP: корпорация Microsoft подготовила экстренный патч для уязвимости с идентификатором CVE-2019-0708, позволяющей выполнить произвольный код на целевой системе.

Уязвимость удаленного выполнения кода существует в службах удаленных рабочих столов (ранее они назывались службами терминалов), когда злоумышленник, не прошедший проверку подлинности, подключается к целевой системе с помощью RDP и отправляет специально созданные запросы. Эта уязвимость использует предаутентификацию и не требует взаимодействия с пользователем. Злоумышленник, успешно воспользовавшийся данной уязвимостью, может выполнить произвольный код в целевой системе.

The vulnerability (CVE-2019-0708) resides in the “remote desktop services” component built into supported versions of Windows, including Windows 7, Windows Server 2008 R2, and Windows Server 2008. It also is present in computers powered by Windows XP and Windows 2003, operating systems for which Microsoft long ago stopped shipping security updates.

description:
This is a bug in RDP protocol.
That means you may exploit any Windows remotely who enables RDP.

vulnerability type:
Heap overflow

privilege level obtained:
SYSTEM privilege

reliability:
90% for one core / 30% for multiple core

exploitation length:
around 10 seconds

Possible buyer, [30.09.18 12:58]
is it pre-auth or post-auth vuln?

SELLER, [30.09.18 12:59]
Pre

Possible buyer, [30.09.18 12:59]
for how much they/he/she sells it?

Проверка состояния протокола RDP

Проверка состояния протокола RDP на локальном компьютере

Сведения о том, как проверить и изменить состояние протокола RDP на локальном компьютере, см. в разделе How to enable Remote Desktop (Как включить удаленный рабочий стол).

Проверка состояния протокола RDP на удаленном компьютере

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

Чтобы проверить и изменить состояние протокола удаленного рабочего стола на удаленном компьютере, используйте подключение сетевого реестра:

Редактор реестра, в котором отображается запись fDenyTSConnections

  1. Сначала откройте меню Пуск и выберите Выполнить. В появившемся текстовом поле введите regedt32.
  2. В редакторе реестра нажмите Файл и выберите пункт Подключить сетевой реестр.
  3. В диалоговом окне Выбор: "Компьютер" введите имя удаленного компьютера, выберите Проверить имена и нажмите кнопку ОК.
  4. Перейдите в раздел HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server и в раздел HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services.
    • Если раздел fDenyTSConnections имеет значение 0, значит протокол RDP включен.
    • Если раздел fDenyTSConnections имеет значение 1, значит протокол RDP отключен.
  5. Чтобы включить протокол RDP, для fDenyTSConnections замените значение 1 на 0.

Проверка блокировки объектом групповой политики протокола RDP на локальном компьютере

Если не удается включить протокол RDP в пользовательском интерфейсе или для fDenyTSConnections возвращается значение 1 после его изменения, объект групповой политики может переопределять параметры на уровне компьютера.

Чтобы проверить конфигурацию групповой политики на локальном компьютере, откройте окно командной строки с правами администратора и введите следующую команду:

Когда команда будет выполнена, откройте файл gpresult.html. Выберите Конфигурация компьютера\Административные шаблоны\Компоненты Windows\Службы удаленных рабочих столов\Узел сеансов удаленных рабочих столов\Подключения и найдите политику Разрешить пользователям удаленное подключение с использованием служб удаленных рабочих столов.

Если для параметра этой политики задано значение Включено, групповая политика не блокирует подключения по протоколу RDP.

Пример сегмента gpresult.html, в котором показано, что объект групповой политики на уровне домена Block RDP блокирует протокол RDP.

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

Пример сегмента gpresult.html, в котором объект групповой политики уровня домена Local Group Policy блокирует протокол RDP.

Проверка блокировки объектом групповой политики протокола RDP на удаленном компьютере

Чтобы проверить конфигурацию групповой политики на удаленном компьютере, нужно выполнить почти такую же команду, что и для локального компьютера.

В файле (gpresult-<computer name>.html), который создается после выполнения этой команды, используется такой же формат данных, как в версии файла для локального компьютера (gpresult.html).

Изменение блокирующего объекта групповой политики

Эти параметры можно изменить в редакторе объектов групповой политики (GPE) и консоли управления групповыми политиками (GPM). Дополнительные сведения об использовании групповой политики см. в статье Advanced Group Policy Management (Расширенное управление групповыми политиками).

Чтобы изменить блокирующую политику, используйте один из следующих методов.

  • В GPE укажите определенный уровень для объекта групповой политики (локальный или доменный) и выберите Конфигурация компьютера > Административные шаблоны > Компоненты Windows > Службы удаленных рабочих столов > Узел сеансов удаленных рабочих столов > Подключения > Разрешить пользователям удаленное подключение с использованием служб удаленных рабочих столов.
    1. Задайте для политики значение Включена или Не задана.
    2. На затронутых компьютерах откройте окно командной строки с правами администратора и выполните команду gpupdate /force.
  • В GPM перейдите к подразделению, в котором блокирующая политика применяется к соответствующим компьютерам, и удалите эту политику.

Проверка состояния служб RDP

На локальном компьютере (клиентском) и удаленном компьютере (целевом) должны быть запущены следующие службы:

  • службы удаленных рабочих столов (TermService);
  • перенаправитель портов пользовательского режима служб удаленного рабочего стола (UmRdpService).

Для локального или удаленного управления службами можно использовать оснастку MMC. Вы также можете использовать PowerShell для управления службами в локальном или удаленном расположении (если удаленный компьютер настроен для приема удаленных командлетов PowerShell).

Службы удаленных рабочих столов в оснастке MMC "Службы" Не изменяйте параметры служб, заданные по умолчанию.

На любом компьютере запустите одну или обе службы, если они запущены.

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

Проверка состояния прослушивателя протокола RDP

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

Проверка состояния прослушивателя RDP

Для выполнения этой процедуры используйте экземпляр PowerShell с разрешениями администратора. На локальном компьютере также можно использовать командную строку с разрешениями администратора. Но для этой процедуры используется PowerShell, так как одни и те же командлеты выполняются локально и удаленно.

Чтобы подключиться к удаленному компьютеру, выполните следующий командлет:

Команда qwinsta выводит список процессов, которые ожидают передачи данных через порты компьютера.

Введите qwinsta.

Если в списке содержится rdp-tcp с состоянием Listen, прослушиватель протокола удаленного рабочего стола работает. Перейдите к разделу Проверка порта прослушивателя протокола RDP. В противном случае перейдите к шагу 4.

Экспортируйте конфигурацию прослушивателя RDP с рабочего компьютера.

  1. Войдите на компьютер с той же версией операционной системы, что и у затронутого компьютера, и получите доступ к реестру компьютера (например, с помощью редактора реестра).
  2. Перейдите к следующей записи реестра:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp
  3. Экспортируйте запись в REG-файл. Например, в редакторе реестра щелкните запись правой кнопкой мыши, выберите пункт Экспортировать, а затем введите имя файла для экспортируемых параметров.
  4. Скопируйте экспортированный REG-файл на затронутый компьютер.

Чтобы импортировать конфигурацию прослушивателя протокола RDP, откройте окно PowerShell с разрешениями администратора на затронутом компьютере (или откройте окно PowerShell и подключитесь к этому компьютеру из удаленного расположения).

Чтобы создать резервную копию для существующей записи реестра, воспользуйтесь таким командлетом:

Чтобы удалить резервную копию для существующей записи реестра, воспользуйтесь таким командлетом:

Чтобы импортировать новую запись реестра и перезапустить службу, воспользуйтесь такими командлетами:

Замените <filename> именем экспортированного REG-файла.

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

Проверка состояния самозаверяющего сертификата протокола RDP

Сертификаты удаленного рабочего стола в оснастке MMC "Сертификаты".

  1. Если подключиться так и не удалось, откройте оснастку MMC "Сертификаты". Когда будет предложено выбрать хранилище сертификатов для управления, выберите Учетная запись компьютера и затронутый компьютер.
  2. В папке Сертификаты в разделе Удаленный рабочий стол удалите самозаверяющий сертификат протокола RDP.
  3. На затронутом компьютере выполните следующие действия, чтобы перезапустить службу удаленных рабочих столов.
  4. Обновите оснастку диспетчера сертификатов.
  5. Если самозаверяющий сертификат протокола RDP не был создан повторно, проверьте разрешения для папки MachineKeys.

Проверка разрешений для папки MachineKeys

  1. На затронутом компьютере откройте проводник и перейдите к папке C:\ProgramData\Microsoft\Crypto\RSA\ .
  2. Щелкните правой кнопкой мыши папку MachineKeys, а затем выберите Свойства, Безопасность и Дополнительно.
  3. Убедитесь, что настроены следующие разрешения:
    • Builtin\Администраторы: Полный доступ
    • Все: чтение и запись.

Проверка порта прослушивателя протокола RDP

На локальном компьютере (клиентском) и удаленном компьютере (целевом) прослушиватель протокола RDP должен ожидать передачи данных через порт 3389. Другие приложения не должны использовать этот порт.

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

Чтобы проверить или изменить порт протокола RDP, используйте редактор реестра:

Подраздел PortNumber для протокола RDP.

  1. Откройте меню Пуск, выберите Выполнить и введите regedt32 в появившемся текстовом поле.
    • Чтобы подключиться к удаленному компьютеру, в редакторе реестра щелкните Файл и выберите пункт Подключить сетевой реестр.
    • В диалоговом окне Выбор: "Компьютер" введите имя удаленного компьютера, выберите Проверить имена и нажмите кнопку ОК.
  2. Откройте реестр и перейдите к записи HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\<listener> .
  3. Если PortNumber имеет значение, отличное от 3389, укажите значение 3389.

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

Проверка того, что другое приложение не пытается использовать тот же порт

Для выполнения этой процедуры используйте экземпляр PowerShell с разрешениями администратора. На локальном компьютере также можно использовать командную строку с разрешениями администратора. Но для этой процедуры используется PowerShell, так как одни и те же командлеты выполняются локально и удаленно.

Откройте окно PowerShell. Чтобы подключиться к удаленному компьютеру, введите Enter-PSSession -ComputerName <computer name> .

Введите следующую команду:

Команда netstat выводит список портов, которые должны прослушивать службы.

Найдите запись для TCP-порта 3389 (или назначенного RDP-порта) с состоянием Ожидает вызова.

Идентификатор процесса службы или процесса, использующих этот порт, отобразится в столбце "Идентификатор процесса".

Чтобы определить, какое приложение использует порт 3389 (или назначенный порт протокола RDP), введите следующую команду:

Команда tasklist выводит данные об определенном процессе.

Найдите запись для номера процесса, связанного с портом (в выходных данных netstat). Службы или процессы, связанные с этим идентификатором процесса, отобразятся в столбце справа.

Если порт используется приложением или службой, отличающейся от служб удаленных рабочих столов (TermServ.exe), устранить конфликт можно с помощью одного из следующих методов:

  • В настройках такого приложения или службы укажите другой порт (рекомендуется).
  • Удалите другое приложение или службу.
  • В настройках протокола RDP укажите другой порт, а затем перезапустите службы удаленных рабочих столов (не рекомендуется).

Проверка блокировки порта протокола RDP брандмауэром

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

Откройте окно командной строки с правами администратора, перейдите в каталог, где установлено средство psping, и введите следующую команду:

Проверьте выходные данные команды psping на наличие таких результатов:

  • Подключение к <computer IP>: удаленный компьютер доступен.
  • (0% loss) (0 % потерь): все попытки подключения выполнены успешно.
  • The remote computer refused the network connection (Удаленный компьютер отклонил сетевое подключение): удаленный компьютер недоступен.
  • (100% loss) (100 % потерь): не удалось выполнить подключение.

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

Проверьте, блокирует ли этот компьютер подключения от всех остальных компьютеров, некоторых других компьютеров или только одного компьютера.

Ошибка "Выполняется оценка качества подключения" при попытке зайти на терминальную ферму

И так, в одно прекрасное утро, начали поступать массовые жалобы от технической поддержки, что пользователи не могут подключиться к RDS ферме. Я сразу полез проверять наши терминалы. При попытке подключиться, люди видели вот такую картину. Долго висело подключение со статусом "Выполняется оценка качества подключения"

Выполняется оценка качества подключения

После чего попытка подключения прерывается и появляется ошибка из ряда:

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

Ошибка подключения RDP

Алгоритм диагностики и устранения ошибки

Первым делом я через команду ping проверил сетевую доступность своих серверов, с ними было все в порядке. Далее я открыл оснастку управления RDS фермой и посмотрел статусы всех серверов участвующих в ней. Я увидел много ошибок:

Я увидел у одних статус "data retrieval failures occurred", у других статус "Target computer not accessible, где-то был статус "Cannot get role and feature data"

data retrieval failures occurred

Попытавшись открыть настройки RDS фермы, я получил вот такую ошибку:

The server pool does not match the RD Connection Brokers that are in it. Errors: Cannot connect to any of the specified RD Connection Brokers servers. Ensure that at least one server is avaliable and that the Remote Desctop Management (rdms), RD Connection Broker (tssdis), or RemoteApp and Desctop Connection (tscpubrpc) service running

Ошибка подключения к RDS брокерам

Видя все это безобразие, я полез на свои брокеры подключений, напоминаю для этого нужно использовать ключ "/admin". Начав изучать логи Windows я обнаружил событие ID 2048.

ID 2048: The Remote Desktop Connection Broker server detected that the database is not available and will notify all Remote Desktop Connection Broker plug-ins

The Remote Desktop Connection Broker server detected that the database is not available and will notify all Remote Desktop Connection Broker plug-ins

Тут все встало на свои места, пользователи видели ошибку "Выполняется оценка качества подключения" из-за того, что брокеры потеряли связь со своей базой данных. Напоминаю, что посмотреть настройки базы данных для отказоустойчивой RDS фермы, вам необходимо открыть окно "Выполнить" и ввести в нем:

Открытие cliconfg.exe

На вкладке "Alias" вы найдете имя сервера и параметры подключения к базе данных. Далее остается их только восстановить и вернуть работу вашей RDS ферме.

Просмотр настроек базы данных Connection Brokers

Дополнительные причины ошибки "Выполняется оценка качества подключения"

  • Из самых распространенных проблем, это наличие на вашем сервере, куда вы подключаетесь наличие программного продукта КриптоПРО версии 3.9, проблема там была в неком ГОСТ SSL, который предлагалось отключить или же полностью удалить КриптоПРО, с переходом на более свежую версию. Если нужно отключить ГОСТ SSL, то в реестре Windows нужно привести ключ cpksp вот к такому виду:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\CProPatches\SCHANNEL]
"Image Dll"="_schannel.dll"
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\cpksp]
"Start"=dword:00000003

  • Вторая проблема, это не работает или не отвечает ваш сервер лицензирования удаленных рабочих столов. В диспетчере сервера — ошибки службы лицензирования рабочих столов. Отсутствует сервер лицензирования. Устраняем проблему с лицензиями и радуемся
  • Еще бывает, что помогает выбор транспортных протоколов, давайте подробнее. При подключении по RDP используются два транспортных протокола TCP/UDP. Фишка в том, чтобы оставить только TCP. Для этого создайте групповую политику или отредактируйте локальную на серверах подключений, вот по такому пути:
Конфигурация компьютера - Административные шаблоны - Компоненты Windows - Службы удаленных рабочих столов - Узел сеансов удаленных рабочих столов - Подключения - Выбор транспортных протоколов - выбрать только TCP

Потребуется перезагрузка или перезапуск служб RDP.

Выбор транспортных протоколов RDP

Этот параметр политики позволяет указать, какие протоколы можно использовать для доступа к данному серверу по протоколу RDP. Если вы включаете этот параметр политики, необходимо указать, хотите ли вы, чтобы протокол RDP использовал протокол UDP.

Вы можете выбрать один из следующих вариантов: «Использовать UDP и TCP (по умолчанию)», «Использовать только TCP» или «Использовать либо UDP, либо TCP». Если вы выбираете вариант «Использовать либо UDP, либо TCP» и подключение UDP выполнено успешно, то большая часть трафика по протоколу RDP использует протокол UDP.

Если подключение UDP не выполнено успешно или если вы выбираете вариант «Использовать только TCP», весь трафик по протоколу RDP использует протокол TCP.Если вы отключаете или не настраиваете этот параметр политики, RDP выбирает оптимальные протоколы для обеспечения наилучшего взаимодействия с пользователем.

Я часто встречал ситуацию, что человек работает удаленно с дачи или еще более удаленного места, со своим мобильным интернетом, в следствии проблем со скоростью получал ошибку "Выполняется оценка качества подключения", где сразу начинал говорить, что ваша RDS ферма плохая. Пока ты ему докажешь, что дело в его мобильном интернете, пройдет не один десяток минут. Хорошо, что после RDP клиента восьмой версии, диагностировать стало проще, там появился индикатор, о подключении к клиенту удаленного рабочего стола (RDC).

Вы найдете индикатор RDC вверху панели подключения, в верхней части любого полноэкранного подключения к удаленному рабочему столу. Индикатор отобразит от одной до четырех полос, которые суммируют задержку двустороннего соединения (RTT) и текущую полосу пропускания в простой для чтения иконке. Выглядит, это вот так.

Качество подключения к удаленному компьютеру хорошее

RDC индикатор

Например, полный набор из четырех полос указывает, что задержка составляет менее 50 мс, а полоса пропускания превышает 10 Мбит/с. Когда полосок меньше, пользователь подключается с более высокой задержкой или с меньшей пропускной способностью.

Пользователь также может щелкнуть значок индикатора, чтобы увидеть письменное описание качества своего соединения и узнать, пользуется ли он дополнительными преимуществами соединения на основе UDP.

Те, кто используют подключение к удаленному рабочему столу (RDP) до своего рабочего компьютера могут столкнуться с фризами (подвисаниями) в работе удаленного рабочего стола (RDP). Обычно, переподключение решает эту проблему, но через некоторое время проблема повторяется. При этом нет видимых проблем со связью.

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

В начале, следует проверить используется ли UDP при подключении к RDP, для этого необходимо кликнуть на кнопку в окне подключения:



То для решения проблемы можно попробовать принудительно отключить использование UDP протокола при подключении к RDP.

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


Если у Вас Windows 10 Home, воспользуйтесь статьей на нашем сайте для включения редактора gpedit.





После сохранения необходимо перезагрузить компьютер.

Для проверки того, что подключение идет без использования протокола UDP кликнем на кнопку в окне подключения:



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

Читайте также: