Я установил сервер шлюза удаленных рабочих столов с помощью Windows Server 2012 R2. Я использую шлюз удаленного рабочего стола в качестве промежуточного звена между сеансом удаленного рабочего стола через 443, поскольку 3389 заблокирован во многих клиентских местоположениях.
Однако у меня возникла проблема с клиентом, сеть которого, похоже, использует веб-прокси.
Можно ли настроить удаленный рабочий стол для подключения через веб-прокси? Если да, то как? Если нет, есть ли у кого-нибудь предложения о том, как обеспечить сеанс удаленного рабочего стола через 443 через прокси для ситуаций, когда вы не контролируете клиентский ПК или сеть? Разрешает ли RemoteApp доступ через веб-прокси при использовании шлюза удаленных рабочих столов?
Сообщение об ошибке находится ниже:
Ваш компьютер не может подключиться к удаленному компьютеру, потому что веб-прокси-сервер требует аутентификации. Чтобы разрешить неаутентифицированный трафик на сервер шлюза удаленных рабочих столов через веб-прокси-сервер, обратитесь к администратору сети.
Спасибо за любую помощь!
По состоянию на 2008 г. сотрудник Microsoft указал, что «официального способа» сделать это не было. Учитывая шесть прошедших лет, вы хотели бы думать, что есть прогресс, но я не вижу, чтобы он был.
Если бы я был в вашей ситуации, я бы попытался найти небольшой прокси-сервер Win32 HTTP / HTTPS, который можно было бы «указать» на вышестоящий прокси и настроить для обеспечения аутентификации. У меня нет немедленной рекомендации по этому поводу. (Я бы, наверное, просто скинул что-нибудь вместе с Perl или Python, лично.)
Как подсказал ответ Омахи, другим вариантом является туннель SSH. Если у вас был установлен SSH в вашем окне Windows [возможно, не тривиально], то вы можете подключиться к этому ящику, создав туннель SSH для порта, а затем подключить свой клиент rdp к этому порту (шпатлевка может создавать туннели, или ssh может что-то вроде https://stackoverflow.com/questions/19161960/connect-with-ssh-through-a-proxy, например:
ssh username@intermediary_box -o "ProxyCommand=nc -X connect -x proxy_host_name:80 %h %p" -L:3389:remote_rdp_box:3389
затем укажите свой клиент rdp на localhost
как обычно, у меня этот способ работал через HTTP-прокси).
БесплатноRDP-WebConnect может быть вариантом [кажется, что это бэкэнд веб-сервера для взаимодействия с RDP за ним, с клиентским интерфейсом HTML5], тогда вы можете открыть порт через свой ящик [в зависимости от того, на каком он работает] и, надеюсь, получить доступ к нему с помощью HTTP. Предполагая, что веб-сокеты не заблокированы. Гуакамоле выглядит похоже (вы настраиваете службу и веб-сервер в поле сервера RDP, он предоставляет интерфейс HTML5).
За исключением этого, если у вас есть внешний третий ящик (не за какими-либо брандмауэрами), на котором есть SSH-сервер, вы можете создать перенаправление портов через этот промежуточный ящик через SSH (тот же механизм https://stackoverflow.com/questions/19161960/connect-with-ssh-through-a-proxy).
Для новых клиентов RDP вы можете настроить дополнительный «шлюз» RDP, а затем подключиться к нему с помощью HTTP. http://sengstar2005.hubpages.com/hub/How-to-Remote-Desktop-to-a-Terminal-Server-via-a-Web-Proxy
Другой вариант - использовать SSH-туннель. PuTTY, чтобы назвать имена, имеет легко настраиваемую опцию прокси, поэтому он может работать через прокси-сервер, а затем предоставлять локальный туннель, через который вы можете подключиться к месту назначения RDP.
Это предполагает, что у клиента есть что-то для входа в систему через SSH, и, более конкретно, что-то, что может взаимодействовать с сервером RDP.
Guacamole и FreeRDP-WebConnect - это шлюзы на базе Linux. Для серверов Windows (я видел, что вы используете Windows Server 2012 R2) вы можете попробовать Миртилла, сопоставимое решение (в равной степени использующее FreeRDP в качестве клиента rdp), также с открытым исходным кодом.