В предыдущем посте "Интернет-подключение к удаленному рабочему столу Windows" мною был рассмотрен случай когда хост инициатор интернет-подключения и целевой хост располагались в рамках одной локальной сети. Этот случай не самый интересный, и был приведен скорее в учебных целях. В практическом плане гораздо интереснее рассмотреть тот вариант когда хосты принадлежат разным сетям, в частности рассмотрим случай, когда целевой хост (компьютер чей рабочий стол нужно получить в управление) принадлежит внутренней сети предприятия, а хост-инициатор интернет-подключения располагается во внешней сети (сети интернет). Между этими двумя сетями существует граница контролируемая межсетевым экраном (маршрутизатором), и поэтому приведенный выше сценарий работать не будет.
Пусть целевой хост имеет сетевой интерфейс смотрящий во внутреннюю сеть предприятия. Хост выполняющий роль экрана имеет два сетевых интерфейса, один из которых смотрит в сеть целевого хоста, другой в сеть интернет-провайдера, которая по существу является сетью интернет для узлов внутренней сети.
Целевой хост виден только в рамках внутренней сети предприятия и имеет на своем сетевом интерфейсе приватный ip-адрес ip_host.
Межсетевой экран виден в сети интернет с одной стороны и с другой во внутренней сети предприятия. Он имеет приватный ip-адрес на внутреннем сетевом интерфейсе ip_priv и статический публичный ip-адрес на внешнем интерфейсе ip_publ.
Так вот, чтобы обеспечить успешный удаленный доступ к рабочему столу целевого хоста из сети интернета необходимо на маршрутизаторе сделать две вещи:
- Открыть на внешнем интерфейсе маршрутизатора порт 3389, который использует RDP в своей работе, и разрешить прохождение пакетов по этому порту на внутренний сетевой интерфейс маршрутизатора;
- Пробросить порт 3389 с внешнего сетевого интерфейса маршрутизатора на интерфейс целевого хоста ip_publ:3389->ip_host:3389
После этого на странице интернет-подключения в поле Сервер можно указать публичный ip-адрес маршрутизатор или сопоставляемое ему доменное имя и получить в управление удаленный рабочий стол.
P.S. Открытый порт 3389 снижает безопасность маршрутизатора. Можно указать RDP использовать нестандартный порт согласно решению Microsoft "Изменение ожидающего порта для удаленного рабочего стола".
P.Ss. Несмотря на то, что на целевом хосте мы изменили номер ожидающего RDP порта, этого будет недостаточно. Дело в том, что интернет-браузер при обращении к вэб-приложению tsweb загружает себе страницу Default.htm в которой по умолчанию используется стандартный порт 3389. Чтобы его изменить придется вручную внести изменения в html файл, а именно добавить после MsRdpClient.AdvancedSettings2 cтрочку MsRdpClient.AdvancedSettings2.RDPPort=xxxx и сохранить изменения.
P.Ss. Несмотря на то, что на целевом хосте мы изменили номер ожидающего RDP порта, этого будет недостаточно. Дело в том, что интернет-браузер при обращении к вэб-приложению tsweb загружает себе страницу Default.htm в которой по умолчанию используется стандартный порт 3389. Чтобы его изменить придется вручную внести изменения в html файл, а именно добавить после MsRdpClient.AdvancedSettings2 cтрочку MsRdpClient.AdvancedSettings2.RDPPort=xxxx и сохранить изменения.