При отсутствии на ПК, где развернут rdp сервер, белого IP адреса, специалисту IT области необходимо думать над решением данного вопроса. Одно из быстрых и бесплатных на сегодняшний день решений хочу изложить в данной статье.
Для развертывания доступа к локальному веб-серверу и другим сервисам мне довелось использовать на практике сервис ngrok.
Ngrok — это сервис, который позволяет открыть доступ к локальным ресурсам ПК, на котором он запущен, из внешней сети, путем создания публичного адреса, все запросы на который будут переброшены на локальный адрес и заданный порт.
Итак, приступим:
1. Регистрируемся на сайте ngrok.com и получаем токен.
2. Качаем приложение там же, и выполняем следующие команды:
ngrok config add-authtoken <ваш токен> (сохраняет токен в конфигурационный файл, что позволит больше не вводить его для авторизации)
ngrok tcp 3389 (пробрасываем tcp порт во внешний мир)
Готово! Наш порт открыт во внешний мир. Можно проверить подключение по адресу, выданному сервисом.
Но тут возникает вопрос, как клиенту каждый раз узнавать, на какой адрес и порт подключаться, ведь после каждого перезапуска nrok мы имеем новую публичную ссылку.
В сервисе для это предусмотрен собственный API, запросом к которому мы можем получить публичную ссылку текущего запущенного туннеля ngrok на сервере.
Для этого получаем API Keys там же на сайте.
Текущие туннели можно получить, выполнив запрос к https://api.ngrok.com/tunnels
Для упрощения подключения пользователей была написана утилита, которая сама по нашему Api Key определит адрес и откроет подключение RDP.
При первом запуске вводим наш api key (он сохраняется в ini файле рядом с утилитой) и пользуемся!
Не забываем также думать о безопасности, открывая сервисы во внешний мир!