<h2>Диагноз</h2>
<p>RDP настроен. Порт открыт. Файрвол выключен. Подключение не устанавливается. «Удалённый компьютер не отвечает» — и тишина. Или хуже: подключается, но сразу обрывается с ошибкой аутентификации. Или просит пароль, ты вводишь правильный — и опять ничего.</p>
<p>RDP кажется простым протоколом, пока не начинаешь его настраивать. Тогда выясняется, что <a class="wpil_keyword_link" href="https://it-apteka.com/category/windows-server/" target="_blank" rel="noopener" title="Windows Server" data-wpil-keyword-link="linked" data-wpil-monitor-id="1274">Windows</a> Home его не поддерживает как сервер, что порт 3389 заблокирован провайдером, что NLA включён и не даёт зайти со старого клиента, что на Linux нужен отдельный сервер xrdp — и это только начало.</p>
<p>В этой статье — полный рецепт. Включишь RDP-сервер на Windows 10/11, подключишься с Windows, Linux, macOS и мобильных устройств, пробросишь порт через роутер, поменяешь стандартный порт 3389 и разберёшься с топ-6 ошибками, которые встречаются в 90% случаев.</p>
<p><strong>Что понадобится:</strong></p>
<ul>
<li>Windows 10/11 Pro, Enterprise или Education на стороне сервера (Home — не поддерживает RDP-сервер без костылей)</li>
<li>Права локального администратора</li>
<li>Для подключения снаружи: доступ к роутеру или белый IP</li>
<li>15–20 минут</li>
</ul>
<p><strong>Что будет в статье:</strong></p>
<ul>
<li>Включение RDP на Windows 10 и Windows 11</li>
<li>Добавление пользователей RDP</li>
<li><a href="https://it-apteka.com/smena-porta-rdp-windows-shpargalka-it-inzhenera-s-primerami/" title="Смена порта RDP Windows: шпаргалка IT-инженера с примерами" target="_blank" rel="noopener" data-wpil-monitor-id="1256">Смена стандартного порта</a></li>
<li>Подключение с Windows, Linux, macOS, Android и iOS</li>
<li>RDP на Ubuntu: установка xrdp-сервера</li>
<li>RDP Wrapper — как включить RDP на Windows Home</li>
<li>Проброс порта через роутер</li>
<li>Файл .rdp: создание и настройка</li>
<li>Топ-6 ошибок с лечением</li>
<li>Профилактика и <a class="wpil_keyword_link" href="https://it-apteka.com/category/security/" target="_blank" rel="noopener" title="Безопасность" data-wpil-keyword-link="linked" data-wpil-monitor-id="1272">безопасность</a></li>
</ul>
Статья покрывает RDP как встроенный протокол Windows (mstsc) и xrdp для Linux. Если тебе нужен именно 1С через RDP — принцип тот же: сначала поднимаешь сервер по этой инструкции, потом устанавливаешь 1С на серверную машину.
<p><!-- ====== ПРИЧИНЫ ====== --></p>
<h2>Почему болит: главные причины по которым RDP не работает</h2>
<h3>1. Windows Home — нет RDP-сервера</h3>
<p>На Windows Home RDP-клиент есть, сервера — нет. Подключиться к другой машине можно, принять подключение — нельзя. Без RDP Wrapper или смены редакции Windows это не обойти штатными средствами.</p>
<h3>2. RDP не включён в настройках системы</h3>
<p>По умолчанию RDP выключен даже на Pro-версиях. Галочка в <a href="https://it-apteka.com/nslookup-i-dig-diagnostika-dns-dlja-sistemnogo-administratora/" title="nslookup и dig - диагностика DNS для системного администратора" target="_blank" rel="noopener" data-wpil-monitor-id="1258">системных настройках должна быть активирована вручную —</a> многие об этом забывают и идут сразу настраивать роутер.</p>
<h3>3. Брандмауэр блокирует порт 3389</h3>
<p>Windows Firewall по умолчанию блокирует входящие подключения на 3389. Когда включаешь RDP через системные настройки — правило создаётся автоматически. Если включаешь через реестр или GPO — создаёшь правило вручную, иначе подключения не дойдут.</p>
<h3>4. NLA включён, клиент не поддерживает</h3>
<p><a class="wpil_keyword_link" href="https://it-apteka.com/category/networks/" target="_blank" rel="noopener" title="Сети" data-wpil-keyword-link="linked" data-wpil-monitor-id="1273">Network</a> Level Authentication (NLA) требует аутентификации до установки сессии. Старые клиенты (mstsc на XP, некоторые Linux-клиенты) NLA не поддерживают — и получают отказ без внятного объяснения.</p>
<h3>5. Пользователь не добавлен в группу RDP</h3>
<p>Подключаться по RDP могут только члены группы «Remote Desktop Users» или администраторы. Создал пользователя — не добавил в группу — получил ошибку аутентификации, хотя логин и пароль правильные.</p>
<h3>6. Провайдер или роутер закрывает порт 3389</h3>
<p>Некоторые провайдеры блокируют 3389 на уровне сети как «потенциально опасный». Решение — смена порта на нестандартный (например, 54321) и проброс через роутер.</p>
<p><!-- ====== РЕЦЕПТ ====== --></p>
<h2>Рецепт: настройка RDP от А до Я</h2>
<h3>Шаг 1. Включение RDP на Windows 10 и Windows 11</h3>
<h4>Через графический интерфейс</h4>
<p>На Windows 10: правой кнопкой по «Этот компьютер» → «Свойства» → «Настройка удалённого доступа». Ставишь галочку «Разрешить подключения к этому компьютеру».</p>
<p>На Windows 11: Пуск → Параметры → Система → Удалённый рабочий стол → переключатель в положение «Вкл».</p>
"Важно"
Если переключатель серый и недоступен — ты на Windows Home. Листай до раздела про RDP Wrapper. Если переключатель активен, но не сохраняется — проверь, не заблокирована ли настройка групповой политикой (GPO).
<h4>Через PowerShell (быстрее)</h4>
<p>Открываешь PowerShell от имени администратора и выполняешь:</p>
<pre><code class="language-bash">
# Включить RDP
Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Control\Terminal Server' -Name "fDenyTSConnections" -Value 0
# Разрешить RDP через брандмауэр
Enable-NetFirewallRule -DisplayGroup "Remote Desktop"
# Проверить что RDP включён (должно вернуть 0)
Get-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Control\Terminal Server' -Name "fDenyTSConnections"
</code></pre>
<p>После выполнения RDP включён и порт 3389 открыт в брандмауэре Windows. Перезагрузка не нужна.</p>
<h4>Через реестр (если нет PowerShell)</h4>
<pre><code class="language-bash">
# В cmd от имени администратора:
reg add "HKLM\System\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f
netsh advfirewall firewall set rule group="remote desktop" new enable=Yes
</code></pre>
<h3>Шаг 2. Добавление пользователей RDP</h3>
<h4>Через интерфейс</h4>
<p>В настройках удалённого рабочего стола (куда ходил на шаге 1) есть кнопка «Выбрать пользователей». Жмёшь, добавляешь нужного пользователя. Администраторы добавляются автоматически.</p>
<h4>Через PowerShell</h4>
<pre><code class="language-bash">
# Добавить пользователя в группу RDP (замени "ИмяПользователя" на нужное):
Add-LocalGroupMember -Group "Remote Desktop Users" -Member "ИмяПользователя"
# Проверить кто в группе:
Get-LocalGroupMember -Group "Remote Desktop Users"
</code></pre>
<pre><code class="language-bash">
# Через net (работает в cmd):
net localgroup "Remote Desktop Users" ИмяПользователя /add
</code></pre>
Учётная запись пользователя должна иметь пароль. Подключение по RDP с пустым паролем по умолчанию заблокировано в Windows. Если нужно разрешить — есть GPO-настройка, но это плохая идея для машины с доступом из интернета.
<h3>Шаг 3. Смена стандартного порта RDP</h3>
<p>Порт 3389 — первый, который сканируют боты. За сутки на него приходят тысячи попыток подбора паролей. Меняем на нестандартный.</p>
<pre><code class="language-bash">
# Через PowerShell (замени 54321 на свой порт):
$portNumber = 54321
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' -Name "PortNumber" -Value $portNumber
# Открыть новый порт в брандмауэре:
New-NetFirewallRule -DisplayName "RDP Custom Port" -Direction Inbound -Protocol TCP -LocalPort $portNumber -Action Allow
# Закрыть старый порт 3389 (опционально, но рекомендуется):
Disable-NetFirewallRule -DisplayGroup "Remote Desktop"
</code></pre>
<pre><code class="language-bash">
# Через реестр (cmd):
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v PortNumber /t REG_DWORD /d 54321 /f
netsh advfirewall firewall add rule name="RDP Custom" protocol=TCP dir=in localport=54321 action=allow
</code></pre>
<p>После смены порта — обязательно перезапусти службу RDP или перезагрузи машину.</p>
<pre><code class="language-bash">
# Перезапустить службу удалённого рабочего стола:
Restart-Service -Name "TermService" -Force
</code></pre>
"Важно"
Запиши новый порт. Если забудешь — придётся лезть в реестр снова. При подключении новый порт указывается так: адрес:порт, например 192.168.1.100:54321
<h3>Шаг 4. Подключение по RDP с Windows</h3>
<h4>Через стандартный клиент mstsc</h4>
<p>Нажимаешь Win+R, вводишь <code>mstsc</code>, жмёшь Enter. Открывается «Подключение к удалённому рабочему столу».</p>
<p>В поле «Компьютер» вводишь адрес: IP или имя компьютера. Если порт нестандартный — через двоеточие: <code>192.168.1.100:54321</code>.</p>
<p>Жмёшь «Подключить», вводишь логин и пароль пользователя удалённой машины.</p>
<h4>Через файл .rdp</h4>
<p>Можно сохранить параметры подключения в файл и запускать одним кликом. В mstsc нажимаешь «Показать параметры» → вкладка «Общие» → «Сохранить как». Файл сохраняется с расширением <code>.rdp</code>.</p>
<p>Вручную файл <code>.rdp</code> выглядит так:</p>
<pre><code class="language-bash">
# Пример файла connection.rdp:
full address:s:192.168.1.100:54321
username:s:Администратор
screen mode id:i:2
desktopwidth:i:1920
desktopheight:i:1080
session bpp:i:32
compression:i:1
keyboardhook:i:2
audiomode:i:0
redirectdrives:i:0
redirectprinters:i:0
redirectclipboard:i:1
autoreconnection enabled:i:1
authentication level:i:2
</code></pre>
<p>Сохраняешь файл, дважды кликаешь — открывается подключение с уже заполненными параметрами.</p>
Параметр <code>authentication level:i:2</code> означает предупреждение при неверном сертификате, но подключение разрешено. Для продакшна ставь <code>:i:1</code> — строгая проверка сертификата.
<h3>Шаг 5. Подключение по RDP с Linux</h3>
<h4>Remmina — графический клиент</h4>
<p>Самый удобный RDP-клиент для Linux. Устанавливается на Ubuntu/Debian:</p>
<pre><code class="language-bash">
sudo apt update
sudo apt install remmina remmina-plugin-rdp -y
</code></pre>
<p>Запускаешь Remmina, создаёшь новое подключение: Protocol → RDP, вводишь адрес, порт, логин, пароль. Сохраняешь и подключаешься.</p>
<h4>FreeRDP — консольный клиент</h4>
<p>Если нужен терминал или <a class="wpil_keyword_link" href="https://it-apteka.com/category/scripts/" target="_blank" rel="noopener" title="Скрипты" data-wpil-keyword-link="linked" data-wpil-monitor-id="1271">скрипт</a> — FreeRDP твой выбор.</p>
<pre><code class="language-bash">
# Установка:
sudo apt install freerdp2-x11 -y
# Подключение (замени параметры на свои):
xfreerdp /v:192.168.1.100:54321 /u:Администратор /p:ПарольЗдесь /w:1920 /h:1080 /f
# Параметры:
# /v: <a href="https://it-apteka.com/dhcp-snooping-chto-jeto-takoe-i-kak-zashhitit-set-ot-rogue-dhcp-servera-2/" title="DHCP Snooping - что это такое и как защитить сеть от Rogue DHCP сервера" target="_blank" rel="noopener" data-wpil-monitor-id="1259">— адрес:порт сервера</a>
# /u: - имя пользователя
# /p: - пароль (можно не указывать - спросит при подключении)
# /w: /h: - разрешение экрана
# /f - полноэкранный режим
# /cert-ignore - игнорировать ошибки сертификата (для внутренней сети)
</code></pre>
<pre><code class="language-bash">
# Если NLA не нужен (старый сервер):
xfreerdp /v:192.168.1.100 /u:user /p:pass /sec:rdp
# Подключение с передачей локальной папки:
xfreerdp /v:192.168.1.100 /u:user /drive:home,/home/user/shared
</code></pre>
<h4>RDP-клиент для Astra Linux</h4>
<p>На Astra Linux (и других отечественных дистрибутивах на базе <a class="wpil_keyword_link" href="https://it-apteka.com/tag/debian/" target="_blank" rel="noopener" title="Debian" data-wpil-keyword-link="linked" data-wpil-monitor-id="1275">Debian</a>) работает тот же FreeRDP:</p>
<pre><code class="language-bash">
# Astra Linux 1.7+:
sudo apt install freerdp2-x11 -y
xfreerdp /v:адрес_сервера /u:пользователь /p:пароль /cert-ignore
</code></pre>
<p>Если репозитории закрыты — устанавливай из ISO-образа дистрибутива или с официального сайта FreeRDP через deb-пакет.</p>
<h3>Шаг 6. Подключение по RDP с macOS</h3>
<h4>Microsoft Remote Desktop</h4>
<p>Официальный клиент от Microsoft, бесплатный. Скачиваешь из Mac App Store по запросу «Microsoft Remote Desktop».</p>
<p>После установки: жмёшь «+» → Add PC → вводишь адрес компьютера (с портом если нестандартный: <code>192.168.1.100:54321</code>) → сохраняешь → двойной клик для подключения.</p>
На macOS клиент работает стабильно. Единственная частая проблема — предупреждение о сертификате. Жмёшь «Continue» — подключение устанавливается. Для постоянного использования <a href="https://it-apteka.com/dhcp-options-v-cisco-i-mikrotik-option-12-42-43-60-66-67-82-primery-nastrojki/" title="DHCP Options в Cisco и MikroTik: Option 12, 42, 43, 60, 66, 67, 82 — примеры настройки" target="_blank" rel="noopener" data-wpil-monitor-id="1260">— добавь исключение в настройках</a> подключения.
<h3>Шаг 7. Подключение с Android и iOS</h3>
<p>Официальное приложение: <a href="https://it-apteka.com/zapusk-skripta-ustanovki-microsoft-directx-net-framework-i-vc-v-steam-chto-jeto-i-kak-ispravit-zavisanie/" title="Запуск скрипта установки Microsoft DirectX, .NET Framework и VC++ в Steam - что это и как исправить зависание" target="_blank" rel="noopener" data-wpil-monitor-id="1261">Microsoft Remote Desktop —</a> есть и в Google Play, и в App Store. Бесплатно.</p>
<p>Принцип тот же: добавляешь ПК, вводишь адрес и учётные данные, подключаешься. На мобильных экранах удобно использовать режим «Touch» вместо «Mouse» — жест касания работает как клик мышью.</p>
<h3>Шаг 8. RDP-сервер на Ubuntu (xrdp)</h3>
<p>Ubuntu из коробки не умеет принимать RDP-подключения. Нужен xrdp — открытая реализация RDP-сервера.</p>
<h4>Установка xrdp</h4>
<pre><code class="language-bash">
# Обновить пакеты:
sudo apt update && sudo apt upgrade -y
# Установить xrdp:
sudo apt install xrdp -y
# Добавить xrdp в группу ssl-cert (нужно для работы с сертификатами):
sudo adduser xrdp ssl-cert
# Запустить и включить автозапуск:
sudo systemctl enable xrdp
sudo systemctl start xrdp
# Проверить статус:
sudo systemctl status xrdp
</code></pre>
<p>После успешного запуска увидишь строку «Active: active (running)».</p>
<h4>Открыть порт в UFW</h4>
<pre><code class="language-bash">
# Разрешить порт 3389 в брандмауэре Ubuntu:
sudo ufw allow 3389/tcp
sudo ufw reload
# Проверить правила:
sudo ufw status
</code></pre>
<h4>Настройка сессии для GNOME</h4>
<p>По умолчанию xrdp открывает сессию xfce или базовый X11. Если хочешь GNOME <a href="https://it-apteka.com/vpn-na-mikrotik-polnyj-gajd-2026-wireguard-l2tp-ipsec-ikev2-nastrojka-servera-i-klienta/" title="VPN на MikroTik: полный гайд 2026 - WireGuard, L2TP/IPsec, IKEv2, настройка сервера и клиента" target="_blank" rel="noopener" data-wpil-monitor-id="1262">— нужна дополнительная настройка</a>.</p>
<pre><code class="language-bash">
# Установить GNOME (если не установлен):
sudo apt install ubuntu-desktop -y
# Создать файл сессии для пользователя (замени username):
echo "gnome-session" > /home/username/.xsession
chmod +x /home/username/.xsession
# Перезапустить xrdp:
sudo systemctl restart xrdp
</code></pre>
"Важно"
На Ubuntu 22.04 и выше с Wayland xrdp работает только через Xorg-сессию. При подключении выбирай «Xorg» в выпадающем меню экрана входа xrdp — не «GNOME on Wayland».
<h4>Устранение чёрного экрана после подключения к Ubuntu</h4>
<p>Самая частая проблема с xrdp на Ubuntu — чёрный экран после ввода пароля. Лечится так:</p>
<pre><code class="language-bash">
# Открыть файл конфигурации xrdp:
sudo nano /etc/xrdp/startwm.sh
# Добавить перед строкой exec:
unset DBUS_SESSION_BUS_ADDRESS
unset XDG_RUNTIME_DIR
# Сохранить (Ctrl+O, Enter, Ctrl+X) и перезапустить:
sudo systemctl restart xrdp
</code></pre>
<h3>Шаг 9. RDP Wrapper — RDP-сервер на Windows Home</h3>
<p>Windows Home не поддерживает входящие RDP-подключения штатно. RDP Wrapper — утилита, которая обходит это ограничение, не изменяя системные файлы.</p>
"Важно"
RDP Wrapper — сторонняя утилита с GitHub. Используй только официальный репозиторий: github.com/stascorp/rdpwrap. После обновлений Windows может перестать работать — нужно обновлять конфигурационный файл rdpwrap.ini.
<h4>Установка RDP Wrapper</h4>
<pre><code class="language-bash">
# 1. Скачиваешь последний релиз RDPWrap с GitHub:
# https://github.com/stascorp/rdpwrap/releases
# Файл: RDPWrap-v1.6.2.zip (или актуальная версия)
# 2. Распаковываешь и запускаешь install.bat от имени администратора
# 3. Проверяешь статус через RDPConf.exe:
# "Fully supported" - всё работает
# "Not supported" - нужно обновить rdpwrap.ini
</code></pre>
<h4>Обновление rdpwrap.ini при «Not supported»</h4>
<pre><code class="language-bash">
# Скачать актуальный конфиг:
# https://raw.githubusercontent.com/sebaxakerhtc/rdpwrap.ini/master/rdpwrap.ini
# Сохранить в C:\Program Files\RDP Wrapper\rdpwrap.ini (заменить существующий)
# Перезапустить службу:
net stop TermService && net start TermService
</code></pre>
<h3>Шаг 10. Проброс RDP через роутер</h3>
<p>Если нужно подключаться к домашнему или офисному ПК из <a href="https://it-apteka.com/mss-clamping-na-routere-pochemu-lomaetsja-internet-i-kak-jeto-ispravit/" target="_blank" rel="noopener" data-wpil-monitor-id="1443">интернета — нужен проброс порта на роутере</a> (Port Forwarding).</p>
<h4>Что нужно знать до начала</h4>
</p>
<table>
<thead>
<tr>
<th>Что нужно</th>
<th>Зачем</th>
</tr>
</thead>
<tbody>
<tr>
<td>Белый (внешний) IP от провайдера</td>
<td>Без него подключиться снаружи не выйдет. Серый IP за NAT провайдера — нужен VPN или tunneling-сервис</td>
</tr>
<tr>
<td>Статический локальный IP на ПК</td>
<td>Иначе IP поменяется после перезагрузки и проброс перестанет работать</td>
</tr>
<tr>
<td>Нестандартный порт RDP</td>
<td>3389 часто блокируют провайдеры, плюс это honeypot для ботов</td>
</tr>
</tbody>
</table>
<p>
<h4>Назначить статический IP на ПК</h4>
<pre><code class="language-bash">
# Через PowerShell (замени значения на свои):
New-NetIPAddress -InterfaceAlias "Ethernet" -IPAddress 192.168.1.100 -PrefixLength 24 -DefaultGateway 192.168.1.1
Set-DnsClientServerAddress -InterfaceAlias "Ethernet" -ServerAddresses 8.8.8.8,8.8.4.4
</code></pre>
<h4>Настройка проброса порта на роутере</h4>
<p>Интерфейс у каждого роутера свой, но логика одинакова. Ищешь раздел «Виртуальные серверы» / «Port Forwarding» / «Проброс портов».</p>
</p>
<table>
<thead>
<tr>
<th>Поле</th>
<th>Значение</th>
</tr>
</thead>
<tbody>
<tr>
<td>Внешний порт</td>
<td>54321 (тот нестандартный, что задал)</td>
</tr>
<tr>
<td>Внутренний IP</td>
<td>192.168.1.100 (локальный IP твоего ПК)</td>
</tr>
<tr>
<td>Внутренний порт</td>
<td>54321 (совпадает с тем, что задал в реестре)</td>
</tr>
<tr>
<td>Протокол</td>
<td>TCP</td>
</tr>
</tbody>
</table>
<p>
<p>Сохраняешь. Теперь подключение на внешний_IP:54321 будет попадать на твой ПК.</p>
Узнать внешний IP просто: открываешь в браузере на компьютере за роутером сайт 2ip.ru или whatismyip.com. Если IP меняется — рассмотри DynDNS-сервис (No-IP, DynDNS) или статический IP у провайдера.
<p><!-- ====== ОСЛОЖНЕНИЯ ====== --></p>
<h2>Осложнения: ошибки RDP и их лечение</h2>
<h3>Ошибка 1: «Удалённый компьютер не отвечает» / Connection timed out</h3>
<p><strong>Почему:</strong> Порт закрыт брандмауэром, RDP не включён, или неверный IP/порт.</p>
<p><strong>Диагностика и лечение:</strong></p>
<pre><code class="language-bash">
# С машины-клиента проверь доступность порта (замени адрес и порт):
Test-NetConnection -ComputerName 192.168.1.100 -Port 3389
# Результат:
# TcpTestSucceeded: True - порт открыт, RDP должен работать
# TcpTestSucceeded: False - порт закрыт, смотришь брандмауэр
# На сервере - проверь что служба запущена:
Get-Service -Name TermService
# Запустить если остановлена:
Start-Service -Name TermService
# Проверить правила брандмауэра:
Get-NetFirewallRule -DisplayGroup "Remote Desktop" | Select-Object DisplayName, Enabled
</code></pre>
<pre><code class="language-bash">
# Проверить что RDP слушает порт:
netstat -an | findstr 3389
# Должна быть строка: TCP 0.0.0.0:3389 LISTENING
</code></pre>
<h3>Ошибка 2: «Учётные данные не работают» / The credentials that were used to connect did not work</h3>
<p><strong>Почему:</strong> Пользователь не в группе RDP, пустой пароль, или политика паролей не позволяет.</p>
<pre><code class="language-bash">
# Проверить что пользователь в группе:
Get-LocalGroupMember -Group "Remote Desktop Users"
# Добавить если нет:
Add-LocalGroupMember -Group "Remote Desktop Users" -Member "ИмяПользователя"
# Разрешить вход с пустым паролем (ТОЛЬКО для изолированной сети!):
# secpol.msc -> Локальные политики -> Параметры безопасности
# "Учётные записи: разрешить использование пустых паролей..." -> Отключить
</code></pre>
<h3>Ошибка 3: «Ошибка аутентификации. Не удалось выполнить запрошенную функцию» (CredSSP)</h3>
<p><strong>Почему:</strong> Клиент или <a href="https://it-apteka.com/nastrojka-ntp-na-mikrotik-klient-i-server-shpargalka-dlja-ros-6-i-7/" title="Настройка NTP на MikroTik: клиент и сервер - шпаргалка для ROS 6 и 7" target="_blank" rel="noopener" data-wpil-monitor-id="1255">сервер не обновлён после патча CVE-2018-0886 —</a> версии CredSSP не совпадают. Чаще всего после обновления Windows на одной из сторон.</p>
<pre><code class="language-bash">
# Быстрое временное решение - снизить требования NLA на сервере:
# (через gpedit.msc на сервере)
# Конфигурация компьютера -> Административные шаблоны ->
# Система -> Передача учётных данных ->
# "Защита от атак с использованием шифрования Oracle" -> Уязвимый
# Или через реестр:
reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters /v AllowEncryptionOracle /t REG_DWORD /d 2 /f
</code></pre>
"Важно"
Это временный обходной путь. Правильное решение — установить обновления безопасности Windows на обеих машинах. После обновления верни значение AllowEncryptionOracle обратно в 0.
<h3>Ошибка 4: «Превышен лицензионный лимит» / Remote Desktop Session Host — нет лицензии</h3>
<p><strong>Почему:</strong> Пытаешься подключить более двух пользователей одновременно, или слетела временная лицензия (120 дней Trial). Актуально для Windows Server.</p>
<pre><code class="language-bash">
# Сброс льготного периода лицензирования (на Windows Server):
# Предупреждение: делать только на тестовых стендах без лицензии
reg delete "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\RCM\GracePeriod" /f
# После перезагрузки льготный период (120 дней) сбрасывается
# Для рабочей среды - нужна лицензия RDS CAL
# Настраивается в: Server Manager -> Remote Desktop Services -> Licensing
</code></pre>
<h3>Ошибка 5: чёрный экран после подключения (Windows)</h3>
<p><strong>Почему:</strong> Конфликт видеодрайвера или зависший процесс explorer.exe в сессии.</p>
<pre><code class="language-bash">
# После подключения при чёрном экране:
# Нажми Ctrl+Alt+End -> Диспетчер задач (или Ctrl+Shift+Esc)
# File -> Run new task -> explorer.exe -> OK
# Если не помогло - перезапусти сессию через PowerShell на сервере:
# Найти ID сессии:
query session
# Завершить зависшую сессию (замени ID):
logoff 2
# Перезапустить видеосервисы:
Restart-Service -Name UxSms
</code></pre>
<h3>Ошибка 6: RDP подключается, но сразу отваливается</h3>
<p><strong>Почему:</strong> Переполнен лимит сессий (по умолчанию 2 на Windows), или служба TermService падает из-за нехватки ресурсов.</p>
<pre><code class="language-bash">
# Проверить активные сессии на сервере:
query session /server:localhost
# Завершить зависшие сессии:
logoff ИмяПользователя
# Посмотреть логи TermService:
Get-EventLog -LogName System -Source "Microsoft-Windows-TerminalServices*" -Newest 20 | Format-List TimeGenerated, Message
# Или через Event Viewer:
# eventvwr.msc -> Журналы Windows -> Система -> фильтр по источнику "TermService"
</code></pre>
<p><!-- ====== ПРОФИЛАКТИКА ====== --></p>
<h2>Профилактика: безопасность и стабильность RDP</h2>
<h3>Смени порт и ограничь доступ по IP</h3>
<p>Порт 3389 сканируется непрерывно. Нестандартный порт (шаг 3) уже отсекает 99% автоматических атак. Дополнительно — ограничь доступ к RDP только с определённых IP через брандмауэр.</p>
<pre><code class="language-bash">
# Разрешить RDP только с конкретного IP (замени порт и IP):
New-NetFirewallRule -DisplayName "RDP from office only" `
-Direction Inbound `
-Protocol TCP `
-LocalPort 54321 `
-RemoteAddress 203.0.113.10 `
-Action Allow
# Запретить RDP со всех остальных IP:
New-NetFirewallRule -DisplayName "Block RDP other" `
-Direction Inbound `
-Protocol TCP `
-LocalPort 54321 `
-Action Block
</code></pre>
<h3>Включи NLA</h3>
<p>Network Level Authentication требует аутентификацию до <a href="https://it-apteka.com/docker-compose-ustanovka-komandy-i-nastrojka-kontejnerov/" title="Docker Compose - установка, команды и настройка контейнеров" target="_blank" rel="noopener" data-wpil-monitor-id="1257">установки полной сессии —</a> это снижает нагрузку при атаках перебора и убирает целый класс уязвимостей.</p>
<pre><code class="language-bash">
# Проверить статус NLA:
(Get-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp').UserAuthentication
# 1 = NLA включён, 0 = выключен
# Включить NLA:
Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' -Name "UserAuthentication" -Value 1
</code></pre>
<h3>Настрой блокировку после неудачных попыток входа</h3>
<pre><code class="language-bash">
# Через secpol.msc:
# Политики учётных записей -> Политика блокировки учётной записи
# Порог блокировки: 5 попыток
# Продолжительность блокировки: 15 минут
# Сброс счётчика: 15 минут
# Или через PowerShell:
net accounts /lockoutthreshold:5 /lockoutduration:15 /lockoutwindow:15
</code></pre>
<h3>Мониторинг попыток подключения</h3>
<pre><code class="language-bash">
# Последние успешные RDP-подключения (Event ID 4624):
Get-EventLog -LogName Security -InstanceId 4624 -Newest 20 | Where-Object {$_.Message -like "*Logon Type:*10*"} | Format-List TimeGenerated, Message
# Неудачные попытки входа (Event ID 4625):
Get-EventLog -LogName Security -InstanceId 4625 -Newest 50 | Format-List TimeGenerated, Message
# Подключения к удалённому рабочему столу (Event ID 1149):
Get-WinEvent -LogName "Microsoft-Windows-TerminalServices-RemoteConnectionManager/Operational" -MaxEvents 20 | Format-List TimeCreated, Message
</code></pre>
<h3>VPN вместо открытого порта</h3>
<p>Если есть возможность — не открывай RDP напрямую в интернет вообще. Подними VPN (WireGuard, OpenVPN), подключайся через него, и только потом открывай RDP. Так порт 3389 (или любой другой) не торчит наружу совсем.</p>
Для 1С через RDP это особенно важно: база данных с финансовой информацией — лакомая цель. VPN + RDP с NLA + нестандартный порт + блокировка по IP — это нормальный минимум для производственной среды.
<h3>Регулярный бэкап конфигурации</h3>
<pre><code class="language-bash">
# Экспорт реестровых ключей RDP в файл (делай перед изменениями):
reg export "HKLM\System\CurrentControlSet\Control\Terminal Server" C:\backup\rdp_settings.reg
reg export "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" C:\backup\rdp_port.reg
</code></pre>
<p><!-- ====== ИТОГ ====== --></p>
<h2>Прогноз: что теперь работает</h2>
<p>Ты включил RDP на Windows 10/11, добавил пользователей, сменил порт, открыл нужные правила в брандмауэре. Подключение работает с Windows через mstsc, с Linux через FreeRDP или Remmina, с macOS через Microsoft Remote Desktop. Если нужен был сервер на Ubuntu — xrdp запущен и принимает подключения. Если была Windows Home — RDP Wrapper решил проблему. Проброс через роутер настроен, снаружи тоже заходит.</p>
<p>Если что-то пошло не так — пиши в комментарии, разберёмся. Ошибка CredSSP, чёрный экран, зависшие сессии — всё бывало, всё лечится.</p>
Диагноз
RDP настроен. Порт открыт. Файрвол выключен. Подключение не устанавливается. «Удалённый компьютер не отвечает» — и тишина. Или хуже: подключается, но сразу обрывается с ошибкой аутентификации. Или просит пароль, ты вводишь правильный — и опять ничего.
RDP кажется простым протоколом, пока не начинаешь его настраивать. Тогда выясняется, что Windows Home его не поддерживает как сервер, что порт 3389 заблокирован провайдером, что NLA включён и не даёт зайти со старого клиента, что на Linux нужен отдельный сервер xrdp — и это только начало.
В этой статье — полный рецепт. Включишь RDP-сервер на Windows 10/11, подключишься с Windows, Linux, macOS и мобильных устройств, пробросишь порт через роутер, поменяешь стандартный порт 3389 и разберёшься с топ-6 ошибками, которые встречаются в 90% случаев.
Что понадобится:
- Windows 10/11 Pro, Enterprise или Education на стороне сервера (Home — не поддерживает RDP-сервер без костылей)
- Права локального администратора
- Для подключения снаружи: доступ к роутеру или белый IP
- 15–20 минут
Что будет в статье:
- Включение RDP на Windows 10 и Windows 11
- Добавление пользователей RDP
- Смена стандартного порта
- Подключение с Windows, Linux, macOS, Android и iOS
- RDP на Ubuntu: установка xrdp-сервера
- RDP Wrapper — как включить RDP на Windows Home
- Проброс порта через роутер
- Файл .rdp: создание и настройка
- Топ-6 ошибок с лечением
- Профилактика и безопасность
Статья покрывает RDP как встроенный протокол Windows (mstsc) и xrdp для Linux. Если тебе нужен именно 1С через RDP — принцип тот же: сначала поднимаешь сервер по этой инструкции, потом устанавливаешь 1С на серверную машину.
Почему болит: главные причины по которым RDP не работает
1. Windows Home — нет RDP-сервера
На Windows Home RDP-клиент есть, сервера — нет. Подключиться к другой машине можно, принять подключение — нельзя. Без RDP Wrapper или смены редакции Windows это не обойти штатными средствами.
2. RDP не включён в настройках системы
По умолчанию RDP выключен даже на Pro-версиях. Галочка в системных настройках должна быть активирована вручную — многие об этом забывают и идут сразу настраивать роутер.
3. Брандмауэр блокирует порт 3389
Windows Firewall по умолчанию блокирует входящие подключения на 3389. Когда включаешь RDP через системные настройки — правило создаётся автоматически. Если включаешь через реестр или GPO — создаёшь правило вручную, иначе подключения не дойдут.
4. NLA включён, клиент не поддерживает
Network Level Authentication (NLA) требует аутентификации до установки сессии. Старые клиенты (mstsc на XP, некоторые Linux-клиенты) NLA не поддерживают — и получают отказ без внятного объяснения.
5. Пользователь не добавлен в группу RDP
Подключаться по RDP могут только члены группы «Remote Desktop Users» или администраторы. Создал пользователя — не добавил в группу — получил ошибку аутентификации, хотя логин и пароль правильные.
6. Провайдер или роутер закрывает порт 3389
Некоторые провайдеры блокируют 3389 на уровне сети как «потенциально опасный». Решение — смена порта на нестандартный (например, 54321) и проброс через роутер.
Рецепт: настройка RDP от А до Я
Шаг 1. Включение RDP на Windows 10 и Windows 11
Через графический интерфейс
На Windows 10: правой кнопкой по «Этот компьютер» → «Свойства» → «Настройка удалённого доступа». Ставишь галочку «Разрешить подключения к этому компьютеру».
На Windows 11: Пуск → Параметры → Система → Удалённый рабочий стол → переключатель в положение «Вкл».
Важно
Если переключатель серый и недоступен — ты на Windows Home. Листай до раздела про RDP Wrapper. Если переключатель активен, но не сохраняется — проверь, не заблокирована ли настройка групповой политикой (GPO).
Через PowerShell (быстрее)
Открываешь PowerShell от имени администратора и выполняешь:
# Включить RDP
Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Control\Terminal Server' -Name "fDenyTSConnections" -Value 0
# Разрешить RDP через брандмауэр
Enable-NetFirewallRule -DisplayGroup "Remote Desktop"
# Проверить что RDP включён (должно вернуть 0)
Get-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Control\Terminal Server' -Name "fDenyTSConnections"
После выполнения RDP включён и порт 3389 открыт в брандмауэре Windows. Перезагрузка не нужна.
Через реестр (если нет PowerShell)
# В cmd от имени администратора:
reg add "HKLM\System\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f
netsh advfirewall firewall set rule group="remote desktop" new enable=Yes
Шаг 2. Добавление пользователей RDP
Через интерфейс
В настройках удалённого рабочего стола (куда ходил на шаге 1) есть кнопка «Выбрать пользователей». Жмёшь, добавляешь нужного пользователя. Администраторы добавляются автоматически.
Через PowerShell
# Добавить пользователя в группу RDP (замени "ИмяПользователя" на нужное):
Add-LocalGroupMember -Group "Remote Desktop Users" -Member "ИмяПользователя"
# Проверить кто в группе:
Get-LocalGroupMember -Group "Remote Desktop Users"
# Через net (работает в cmd):
net localgroup "Remote Desktop Users" ИмяПользователя /add
Учётная запись пользователя должна иметь пароль. Подключение по RDP с пустым паролем по умолчанию заблокировано в Windows. Если нужно разрешить — есть GPO-настройка, но это плохая идея для машины с доступом из интернета.
Шаг 3. Смена стандартного порта RDP
Порт 3389 — первый, который сканируют боты. За сутки на него приходят тысячи попыток подбора паролей. Меняем на нестандартный.
# Через PowerShell (замени 54321 на свой порт):
$portNumber = 54321
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' -Name "PortNumber" -Value $portNumber
# Открыть новый порт в брандмауэре:
New-NetFirewallRule -DisplayName "RDP Custom Port" -Direction Inbound -Protocol TCP -LocalPort $portNumber -Action Allow
# Закрыть старый порт 3389 (опционально, но рекомендуется):
Disable-NetFirewallRule -DisplayGroup "Remote Desktop"
# Через реестр (cmd):
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v PortNumber /t REG_DWORD /d 54321 /f
netsh advfirewall firewall add rule name="RDP Custom" protocol=TCP dir=in localport=54321 action=allow
После смены порта — обязательно перезапусти службу RDP или перезагрузи машину.
# Перезапустить службу удалённого рабочего стола:
Restart-Service -Name "TermService" -Force
Важно
Запиши новый порт. Если забудешь — придётся лезть в реестр снова. При подключении новый порт указывается так: адрес:порт, например 192.168.1.100:54321
Шаг 4. Подключение по RDP с Windows
Через стандартный клиент mstsc
Нажимаешь Win+R, вводишь mstsc, жмёшь Enter. Открывается «Подключение к удалённому рабочему столу».
В поле «Компьютер» вводишь адрес: IP или имя компьютера. Если порт нестандартный — через двоеточие: 192.168.1.100:54321.
Жмёшь «Подключить», вводишь логин и пароль пользователя удалённой машины.
Через файл .rdp
Можно сохранить параметры подключения в файл и запускать одним кликом. В mstsc нажимаешь «Показать параметры» → вкладка «Общие» → «Сохранить как». Файл сохраняется с расширением .rdp.
Вручную файл .rdp выглядит так:
# Пример файла connection.rdp:
full address:s:192.168.1.100:54321
username:s:Администратор
screen mode id:i:2
desktopwidth:i:1920
desktopheight:i:1080
session bpp:i:32
compression:i:1
keyboardhook:i:2
audiomode:i:0
redirectdrives:i:0
redirectprinters:i:0
redirectclipboard:i:1
autoreconnection enabled:i:1
authentication level:i:2
Сохраняешь файл, дважды кликаешь — открывается подключение с уже заполненными параметрами.
Параметр authentication level:i:2 означает предупреждение при неверном сертификате, но подключение разрешено. Для продакшна ставь :i:1 — строгая проверка сертификата.
Шаг 5. Подключение по RDP с Linux
Remmina — графический клиент
Самый удобный RDP-клиент для Linux. Устанавливается на Ubuntu/Debian:
sudo apt update
sudo apt install remmina remmina-plugin-rdp -y
Запускаешь Remmina, создаёшь новое подключение: Protocol → RDP, вводишь адрес, порт, логин, пароль. Сохраняешь и подключаешься.
FreeRDP — консольный клиент
Если нужен терминал или скрипт — FreeRDP твой выбор.
# Установка:
sudo apt install freerdp2-x11 -y
# Подключение (замени параметры на свои):
xfreerdp /v:192.168.1.100:54321 /u:Администратор /p:ПарольЗдесь /w:1920 /h:1080 /f
# Параметры:
# /v: <a href="https://it-apteka.com/dhcp-snooping-chto-jeto-takoe-i-kak-zashhitit-set-ot-rogue-dhcp-servera-2/" title="DHCP Snooping - что это такое и как защитить сеть от Rogue DHCP сервера" target="_blank" rel="noopener" data-wpil-monitor-id="1259">— адрес:порт сервера</a>
# /u: - имя пользователя
# /p: - пароль (можно не указывать - спросит при подключении)
# /w: /h: - разрешение экрана
# /f - полноэкранный режим
# /cert-ignore - игнорировать ошибки сертификата (для внутренней сети)
# Если NLA не нужен (старый сервер):
xfreerdp /v:192.168.1.100 /u:user /p:pass /sec:rdp
# Подключение с передачей локальной папки:
xfreerdp /v:192.168.1.100 /u:user /drive:home,/home/user/shared
RDP-клиент для Astra Linux
На Astra Linux (и других отечественных дистрибутивах на базе Debian) работает тот же FreeRDP:
# Astra Linux 1.7+:
sudo apt install freerdp2-x11 -y
xfreerdp /v:адрес_сервера /u:пользователь /p:пароль /cert-ignore
Если репозитории закрыты — устанавливай из ISO-образа дистрибутива или с официального сайта FreeRDP через deb-пакет.
Шаг 6. Подключение по RDP с macOS
Microsoft Remote Desktop
Официальный клиент от Microsoft, бесплатный. Скачиваешь из Mac App Store по запросу «Microsoft Remote Desktop».
После установки: жмёшь «+» → Add PC → вводишь адрес компьютера (с портом если нестандартный: 192.168.1.100:54321) → сохраняешь → двойной клик для подключения.
На macOS клиент работает стабильно. Единственная частая проблема — предупреждение о сертификате. Жмёшь «Continue» — подключение устанавливается. Для постоянного использования
— добавь исключение в настройках подключения.
Шаг 7. Подключение с Android и iOS
Официальное приложение: Microsoft Remote Desktop — есть и в Google Play, и в App Store. Бесплатно.
Принцип тот же: добавляешь ПК, вводишь адрес и учётные данные, подключаешься. На мобильных экранах удобно использовать режим «Touch» вместо «Mouse» — жест касания работает как клик мышью.
Шаг 8. RDP-сервер на Ubuntu (xrdp)
Ubuntu из коробки не умеет принимать RDP-подключения. Нужен xrdp — открытая реализация RDP-сервера.
Установка xrdp
# Обновить пакеты:
sudo apt update && sudo apt upgrade -y
# Установить xrdp:
sudo apt install xrdp -y
# Добавить xrdp в группу ssl-cert (нужно для работы с сертификатами):
sudo adduser xrdp ssl-cert
# Запустить и включить автозапуск:
sudo systemctl enable xrdp
sudo systemctl start xrdp
# Проверить статус:
sudo systemctl status xrdp
После успешного запуска увидишь строку «Active: active (running)».
Открыть порт в UFW
# Разрешить порт 3389 в брандмауэре Ubuntu:
sudo ufw allow 3389/tcp
sudo ufw reload
# Проверить правила:
sudo ufw status
Настройка сессии для GNOME
По умолчанию xrdp открывает сессию xfce или базовый X11. Если хочешь GNOME — нужна дополнительная настройка.
# Установить GNOME (если не установлен):
sudo apt install ubuntu-desktop -y
# Создать файл сессии для пользователя (замени username):
echo "gnome-session" > /home/username/.xsession
chmod +x /home/username/.xsession
# Перезапустить xrdp:
sudo systemctl restart xrdp
Важно
На Ubuntu 22.04 и выше с Wayland xrdp работает только через Xorg-сессию. При подключении выбирай «Xorg» в выпадающем меню экрана входа xrdp — не «GNOME on Wayland».
Устранение чёрного экрана после подключения к Ubuntu
Самая частая проблема с xrdp на Ubuntu — чёрный экран после ввода пароля. Лечится так:
# Открыть файл конфигурации xrdp:
sudo nano /etc/xrdp/startwm.sh
# Добавить перед строкой exec:
unset DBUS_SESSION_BUS_ADDRESS
unset XDG_RUNTIME_DIR
# Сохранить (Ctrl+O, Enter, Ctrl+X) и перезапустить:
sudo systemctl restart xrdp
Шаг 9. RDP Wrapper — RDP-сервер на Windows Home
Windows Home не поддерживает входящие RDP-подключения штатно. RDP Wrapper — утилита, которая обходит это ограничение, не изменяя системные файлы.
Важно
RDP Wrapper — сторонняя утилита с GitHub. Используй только официальный репозиторий: github.com/stascorp/rdpwrap. После обновлений Windows может перестать работать — нужно обновлять конфигурационный файл rdpwrap.ini.
Установка RDP Wrapper
# 1. Скачиваешь последний релиз RDPWrap с GitHub:
# https://github.com/stascorp/rdpwrap/releases
# Файл: RDPWrap-v1.6.2.zip (или актуальная версия)
# 2. Распаковываешь и запускаешь install.bat от имени администратора
# 3. Проверяешь статус через RDPConf.exe:
# "Fully supported" - всё работает
# "Not supported" - нужно обновить rdpwrap.ini
Обновление rdpwrap.ini при «Not supported»
# Скачать актуальный конфиг:
# https://raw.githubusercontent.com/sebaxakerhtc/rdpwrap.ini/master/rdpwrap.ini
# Сохранить в C:\Program Files\RDP Wrapper\rdpwrap.ini (заменить существующий)
# Перезапустить службу:
net stop TermService && net start TermService
Шаг 10. Проброс RDP через роутер
Если нужно подключаться к домашнему или офисному ПК из интернета — нужен проброс порта на роутере (Port Forwarding).
Что нужно знать до начала
| Что нужно |
Зачем |
| Белый (внешний) IP от провайдера |
Без него подключиться снаружи не выйдет. Серый IP за NAT провайдера — нужен VPN или tunneling-сервис |
| Статический локальный IP на ПК |
Иначе IP поменяется после перезагрузки и проброс перестанет работать |
| Нестандартный порт RDP |
3389 часто блокируют провайдеры, плюс это honeypot для ботов |
Назначить статический IP на ПК
# Через PowerShell (замени значения на свои):
New-NetIPAddress -InterfaceAlias "Ethernet" -IPAddress 192.168.1.100 -PrefixLength 24 -DefaultGateway 192.168.1.1
Set-DnsClientServerAddress -InterfaceAlias "Ethernet" -ServerAddresses 8.8.8.8,8.8.4.4
Настройка проброса порта на роутере
Интерфейс у каждого роутера свой, но логика одинакова. Ищешь раздел «Виртуальные серверы» / «Port Forwarding» / «Проброс портов».
| Поле |
Значение |
| Внешний порт |
54321 (тот нестандартный, что задал) |
| Внутренний IP |
192.168.1.100 (локальный IP твоего ПК) |
| Внутренний порт |
54321 (совпадает с тем, что задал в реестре) |
| Протокол |
TCP |
Сохраняешь. Теперь подключение на внешний_IP:54321 будет попадать на твой ПК.
Узнать внешний IP просто: открываешь в браузере на компьютере за роутером сайт 2ip.ru или whatismyip.com. Если IP меняется — рассмотри DynDNS-сервис (No-IP, DynDNS) или статический IP у провайдера.
Осложнения: ошибки RDP и их лечение
Ошибка 1: «Удалённый компьютер не отвечает» / Connection timed out
Почему: Порт закрыт брандмауэром, RDP не включён, или неверный IP/порт.
Диагностика и лечение:
# С машины-клиента проверь доступность порта (замени адрес и порт):
Test-NetConnection -ComputerName 192.168.1.100 -Port 3389
# Результат:
# TcpTestSucceeded: True - порт открыт, RDP должен работать
# TcpTestSucceeded: False - порт закрыт, смотришь брандмауэр
# На сервере - проверь что служба запущена:
Get-Service -Name TermService
# Запустить если остановлена:
Start-Service -Name TermService
# Проверить правила брандмауэра:
Get-NetFirewallRule -DisplayGroup "Remote Desktop" | Select-Object DisplayName, Enabled
# Проверить что RDP слушает порт:
netstat -an | findstr 3389
# Должна быть строка: TCP 0.0.0.0:3389 LISTENING
Ошибка 2: «Учётные данные не работают» / The credentials that were used to connect did not work
Почему: Пользователь не в группе RDP, пустой пароль, или политика паролей не позволяет.
# Проверить что пользователь в группе:
Get-LocalGroupMember -Group "Remote Desktop Users"
# Добавить если нет:
Add-LocalGroupMember -Group "Remote Desktop Users" -Member "ИмяПользователя"
# Разрешить вход с пустым паролем (ТОЛЬКО для изолированной сети!):
# secpol.msc -> Локальные политики -> Параметры безопасности
# "Учётные записи: разрешить использование пустых паролей..." -> Отключить
Ошибка 3: «Ошибка аутентификации. Не удалось выполнить запрошенную функцию» (CredSSP)
Почему: Клиент или сервер не обновлён после патча CVE-2018-0886 — версии CredSSP не совпадают. Чаще всего после обновления Windows на одной из сторон.
# Быстрое временное решение - снизить требования NLA на сервере:
# (через gpedit.msc на сервере)
# Конфигурация компьютера -> Административные шаблоны ->
# Система -> Передача учётных данных ->
# "Защита от атак с использованием шифрования Oracle" -> Уязвимый
# Или через реестр:
reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters /v AllowEncryptionOracle /t REG_DWORD /d 2 /f
Важно
Это временный обходной путь. Правильное решение — установить обновления безопасности Windows на обеих машинах. После обновления верни значение AllowEncryptionOracle обратно в 0.
Ошибка 4: «Превышен лицензионный лимит» / Remote Desktop Session Host — нет лицензии
Почему: Пытаешься подключить более двух пользователей одновременно, или слетела временная лицензия (120 дней Trial). Актуально для Windows Server.
# Сброс льготного периода лицензирования (на Windows Server):
# Предупреждение: делать только на тестовых стендах без лицензии
reg delete "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\RCM\GracePeriod" /f
# После перезагрузки льготный период (120 дней) сбрасывается
# Для рабочей среды - нужна лицензия RDS CAL
# Настраивается в: Server Manager -> Remote Desktop Services -> Licensing
Ошибка 5: чёрный экран после подключения (Windows)
Почему: Конфликт видеодрайвера или зависший процесс explorer.exe в сессии.
# После подключения при чёрном экране:
# Нажми Ctrl+Alt+End -> Диспетчер задач (или Ctrl+Shift+Esc)
# File -> Run new task -> explorer.exe -> OK
# Если не помогло - перезапусти сессию через PowerShell на сервере:
# Найти ID сессии:
query session
# Завершить зависшую сессию (замени ID):
logoff 2
# Перезапустить видеосервисы:
Restart-Service -Name UxSms
Ошибка 6: RDP подключается, но сразу отваливается
Почему: Переполнен лимит сессий (по умолчанию 2 на Windows), или служба TermService падает из-за нехватки ресурсов.
# Проверить активные сессии на сервере:
query session /server:localhost
# Завершить зависшие сессии:
logoff ИмяПользователя
# Посмотреть логи TermService:
Get-EventLog -LogName System -Source "Microsoft-Windows-TerminalServices*" -Newest 20 | Format-List TimeGenerated, Message
# Или через Event Viewer:
# eventvwr.msc -> Журналы Windows -> Система -> фильтр по источнику "TermService"
Профилактика: безопасность и стабильность RDP
Смени порт и ограничь доступ по IP
Порт 3389 сканируется непрерывно. Нестандартный порт (шаг 3) уже отсекает 99% автоматических атак. Дополнительно — ограничь доступ к RDP только с определённых IP через брандмауэр.
# Разрешить RDP только с конкретного IP (замени порт и IP):
New-NetFirewallRule -DisplayName "RDP from office only" `
-Direction Inbound `
-Protocol TCP `
-LocalPort 54321 `
-RemoteAddress 203.0.113.10 `
-Action Allow
# Запретить RDP со всех остальных IP:
New-NetFirewallRule -DisplayName "Block RDP other" `
-Direction Inbound `
-Protocol TCP `
-LocalPort 54321 `
-Action Block
Включи NLA
Network Level Authentication требует аутентификацию до установки полной сессии — это снижает нагрузку при атаках перебора и убирает целый класс уязвимостей.
# Проверить статус NLA:
(Get-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp').UserAuthentication
# 1 = NLA включён, 0 = выключен
# Включить NLA:
Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' -Name "UserAuthentication" -Value 1
Настрой блокировку после неудачных попыток входа
# Через secpol.msc:
# Политики учётных записей -> Политика блокировки учётной записи
# Порог блокировки: 5 попыток
# Продолжительность блокировки: 15 минут
# Сброс счётчика: 15 минут
# Или через PowerShell:
net accounts /lockoutthreshold:5 /lockoutduration:15 /lockoutwindow:15
Мониторинг попыток подключения
# Последние успешные RDP-подключения (Event ID 4624):
Get-EventLog -LogName Security -InstanceId 4624 -Newest 20 | Where-Object {$_.Message -like "*Logon Type:*10*"} | Format-List TimeGenerated, Message
# Неудачные попытки входа (Event ID 4625):
Get-EventLog -LogName Security -InstanceId 4625 -Newest 50 | Format-List TimeGenerated, Message
# Подключения к удалённому рабочему столу (Event ID 1149):
Get-WinEvent -LogName "Microsoft-Windows-TerminalServices-RemoteConnectionManager/Operational" -MaxEvents 20 | Format-List TimeCreated, Message
VPN вместо открытого порта
Если есть возможность — не открывай RDP напрямую в интернет вообще. Подними VPN (WireGuard, OpenVPN), подключайся через него, и только потом открывай RDP. Так порт 3389 (или любой другой) не торчит наружу совсем.
Для 1С через RDP это особенно важно: база данных с финансовой информацией — лакомая цель. VPN + RDP с NLA + нестандартный порт + блокировка по IP — это нормальный минимум для производственной среды.
Регулярный бэкап конфигурации
# Экспорт реестровых ключей RDP в файл (делай перед изменениями):
reg export "HKLM\System\CurrentControlSet\Control\Terminal Server" C:\backup\rdp_settings.reg
reg export "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" C:\backup\rdp_port.reg
Прогноз: что теперь работает
Ты включил RDP на Windows 10/11, добавил пользователей, сменил порт, открыл нужные правила в брандмауэре. Подключение работает с Windows через mstsc, с Linux через FreeRDP или Remmina, с macOS через Microsoft Remote Desktop. Если нужен был сервер на Ubuntu — xrdp запущен и принимает подключения. Если была Windows Home — RDP Wrapper решил проблему. Проброс через роутер настроен, снаружи тоже заходит.
Если что-то пошло не так — пиши в комментарии, разберёмся. Ошибка CredSSP, чёрный экран, зависшие сессии — всё бывало, всё лечится.