Как сохранить разные учетные данные для двух RDP-серверов на одном IP-адресе?

Системный администратор IT и автоматизация бизнеса
← На главную

Часто возникает ситуация, когда за одним внешним IP-адресом находится несколько серверов или виртуальных машин, доступ к которым организован через проброс портов (NAT). Например, подключение к первому серверу идет на адрес 123.123.123.123:33891, а ко второму — на 123.123.123.123:33892. При этом на каждом сервере используются разные учетные записи (логины и пароли).

Стандартный клиент удаленного рабочего стола Windows (mstsc.exe) сталкивается с проблемой: он сохраняет учетные данные, привязывая их только к IP-адресу или имени хоста, полностью игнорируя номер порта. В результате, когда вы сохраняете логин и пароль для одного сервера, эти данные перезаписывают сохраненные учетные данные для другого, и их приходится вводить вручную каждый раз. Давайте разберемся, как обойти это ограничение и настроить удобное сохранение данных для входа на каждый сервер.

Решение 1: Редактирование файла hosts для создания псевдонима

Это наиболее изящный и простой способ "обмануть" систему, заставив ее думать, что мы подключаемся к разным компьютерам. Идея заключается в том, чтобы для одного и того же IP-адреса создать в системе псевдоним (алиас) — другое имя, по которому можно будет к нему обращаться.

Разберем по шагам, как это сделать:

  1. Откройте Блокнот от имени администратора. Для этого найдите "Блокнот" в меню "Пуск", кликните по нему правой кнопкой мыши и выберите "Запуск от имени администратора". Это необходимо, так как мы будем редактировать системный файл.
  2. Откройте файл `hosts`. В Блокноте выберите меню "Файл" -> "Открыть". В поле имени файла вставьте следующий путь и нажмите Enter:
    C:\Windows\System32\drivers\etc\hosts
  3. Добавьте новую запись. В конец файла добавьте новую строку в формате [IP-адрес] [Имя-псевдоним]. Например, если ваш внешний IP-адрес 192.168.0.2, а вы хотите создать для него псевдоним myrdpserver2, строка будет выглядеть так:
    
    192.168.0.2      myrdpserver2
    

    Важно: между IP-адресом и именем должен быть хотя бы один пробел или табуляция. Имя можно придумать любое, главное, чтобы оно было уникальным и понятным для вас.

  4. Сохраните изменения. Нажмите "Файл" -> "Сохранить".

Теперь для Windows IP-адрес 192.168.0.2 и имя myrdpserver2 — это два разных целевых хоста, хотя они и ведут в одно место. Вы можете настроить подключения следующим образом:

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

Решение 2: Использование утилиты командной строки `cmdkey`

Это более продвинутый способ, который позволяет управлять учетными данными напрямую в Диспетчере учетных данных Windows. Он не требует редактирования системных файлов и позволяет явно указать, для какой комбинации адреса и порта нужно сохранить логин и пароль.

Для этого мы воспользуемся встроенной утилитой cmdkey. Запускать команды нужно в командной строке (cmd) или PowerShell.

Чтобы сохранить учетные данные для первого сервера (192.168.0.2:44556):


cmdkey /generic:TERMSRV/192.168.0.2:44556 /user:ИМЯ_ПОЛЬЗОВАТЕЛЯ_1 /pass:ПАРОЛЬ_1

Чтобы сохранить учетные данные для второго сервера (192.168.0.2:44557):


cmdkey /generic:TERMSRV/192.168.0.2:44557 /user:ИМЯ_ПОЛЬЗОВАТЕЛЯ_2 /pass:ПАРОЛЬ_2

Проанализируем эту команду:

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

Решение 3: Создание и тонкая настройка RDP-файлов

Стандартный RDP-клиент позволяет сохранять все параметры подключения, включая адрес, имя пользователя, настройки экрана и многое другое, в специальный файл с расширением .rdp. Это удобно для создания ярлыков для каждого сервера.

Посмотрим на процесс:

  1. Запустите RDP-клиент (mstsc.exe).
  2. Нажмите кнопку "Показать параметры".
  3. На вкладке "Общие" введите адрес первого сервера с портом (например, 192.168.0.2:44556) и имя пользователя для него.
  4. Настройте другие параметры по желанию (экран, локальные ресурсы и т.д.).
  5. Вернитесь на вкладку "Общие" и нажмите кнопку "Сохранить как...". Сохраните файл под понятным именем, например, Server_1.rdp.
  6. Повторите шаги 3-5 для второго сервера (адрес 192.168.0.2:44557 и его имя пользователя), сохранив файл как Server_2.rdp.

Важный нюанс: само по себе создание .rdp файлов не решит проблему с перезаписью паролей. Но этот метод отлично работает в комбинации с первым (редактирование hosts). Создайте один .rdp файл для подключения по IP-адресу, а второй — для подключения по псевдониму, который вы создали (например, myrdpserver2:44557). Тогда для каждого файла можно будет смело сохранять учетные данные.

Файл .rdp — это обычный текстовый файл. Его можно открыть в Блокноте и отредактировать вручную. Там хранится множество параметров. Например, строка username:s:ИмяПользователя задает имя пользователя. Пароль хранится не в открытом виде, а в виде зашифрованной строки в параметре password 51:b:..., но только после того, как вы успешно подключились и сохранили его через Диспетчер учетных данных.

Решение 4: Использование сторонних менеджеров удаленных подключений

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

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

Популярные и проверенные варианты:

Использование таких программ является наиболее профессиональным подходом при большом количестве серверов и полностью избавляет от описанной проблемы.

← На главную