Como melhorar o trabalho com o Microsoft Remote Desktop

Quero compartilhar algumas dicas sobre a configuração da conexão remota com as estações de trabalho via RDP. Vou lhe dizer como atualizar o antigo RPC-HTTP para UDP, elogiar e repreender o Windows 10 e o AVC; vou descobrir uma solução para vários problemas típicos.

Acreditamos que o Gateway de Área de Trabalho Remota (RDGW) é usado para conexão e as estações de trabalho atuam como servidores. O uso do RDGW é muito conveniente, pois o gateway se torna um ponto de entrada comum para todos os clientes. Isso torna possível controlar melhor o acesso, manter registros de conexões e sua duração. Mesmo se a VPN permitir que você se conecte diretamente às máquinas em funcionamento, essa não é a melhor opção.

O RDGW é rápido, fácil de configurar e o Let's Encrypt and win-acme resolve facilmente o problema com um certificado confiável.

Existem três protocolos de transporte nos quais o cliente pode se conectar ao servidor:

RPC-HTTP ( incorreto )
HTTP ( melhor )
HTTP + UDP ( excelente )

Por servidor, entendemos uma máquina em funcionamento, por um cliente - em casa.
A primeira coisa a começar é transformar "ruim" em "excelente".

Atualizar RPC-HTTP para HTTP


A conexão com uma sessão usando RPC-HTTP é fácil de determinar pela aparência da faixa de conexão.



Não há ícone de qualidade de conexão (sobre isso abaixo), o que significa que estamos usando o RPC antigo incorporado no TLS - isso é muito lento. O ponto, é claro, não está apenas no invólucro - o próprio protocolo muda a cada versão do SO, codecs, algoritmos de empacotamento de imagens. Quanto mais atualizado o protocolo, melhor.

O que fazer?

Windows XP ou Vista


No XP, você pode aumentar o protocolo de 5.1 para 7. O hotfix do windowsxp-kb969084-x86.exe

No Vista, de 6 para 7. O hotfix tem o mesmo número, os arquivos windows6.0-kb969084-x64.msu ou Windows6.0-KB969084-x86 .msu

Mas o RDP 7 não funciona com HTTP e UDP. Atualize apenas o cliente e o servidor para o Windows 7 e posterior.

Windows 7

Primeiro, você precisa atualizar o protocolo para o RDP 8.1 e depois ativá-lo. O suporte é adicionado por atualizações agrupadas em um único pacote de download:

www.microsoft.com/en-US/download/details.aspx?id=40986
Windows6.1-KB2574819-v2-x64.msu
windows6.1-kb2592687-x64.msu
Windows6.1-KB2830477-x64.msu
Windows6.1-KB2857650-x64.msu
Windows6.1-KB2913751-x64.msu (substituído por kb2923545)

windows6.1-kb2923545-x64.msu

Portanto, você obtém o novo cliente mstsc.exe e o suporte ao RDP 8.1 para o lado do servidor do sistema operacional.
Foi:





Tornou-se:



Depois disso, o protocolo deve ser ativado com a chave do registro (para isso, você pode usar o modelo adm incluído no Windows 7).

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services]
"fServerEnableRDP8"=dword:00000001
 
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Policies\Microsoft\Windows NT\Terminal Services]
"fServerEnableRDP8"=dword:00000001

Habilite o suporte ao transporte UDP na Diretiva de Grupo.



Reinicializamos o servidor com o Windows 7. O mesmo caso, quando você precisar reiniciar duas vezes - o valor no registro deve ser definido antes que o RDP seja ativado e a Diretiva de Grupo aplicada posteriormente.

Se tudo der certo, quando você se conectar ao servidor, um ícone de qualidade de conexão (como em um telefone para uma rede móvel) aparecerá na barra de sessões:



Windows 8 e mais recente O

protocolo funciona imediatamente.

Atualizar HTTP para HTTP + UDP


Se a sua rede não estiver propensa a perda de pacotes, o UDP melhorará drasticamente (para CAD - drasticamente) a capacidade de resposta do servidor usando o FEC para reduzir a retransmissão, além de alternar a confirmação da entrega de pacotes da pilha do sistema TCP / IP para o nível do protocolo RDP-UDP.

Uma sessão de controle principal via HTTP é conectada a partir de cada cliente (um teclado / mouse também é transmitido neste canal), além de uma ou mais sessões UDP para transmitir uma imagem ou outros canais virtuais.

Vamos tocar apenas a ponta do iceberg. Existem 3 versões diferentes do protocolo RDP-UDP. Além disso, o próprio UDP pode operar em dois modos: UDP-R (confiável) e UDP-L (com perdas). Nada acontece com a Microsoft. Mas como nada depende de nós aqui, lembre-se: quanto mais novo o sistema operacional, o tópico usa um protocolo mais moderno.

Lá fora, o RDP-UDP está envolvido no DFCL34 (DTagram Transport Layer Security) RFC4347, como você pode ver ao abrir o Wireshark.

Mais detalhes nos documentos:
[MS-RDPEMT]: Protocolo de área de trabalho remota: Extensão
de transporte múltiplo [MS-RDPEUDP]: Protocolo de área de trabalho remota: Extensão de transporte UDP
[MS-RDPEUDP2]: Protocolo de área de trabalho remota: Versão 2 de extensão de transporte UDP
Onde incorreto, correto de nada.

O que você precisa para ativar o UDP?

O RDP-UDP é suportado a partir do RDP 8.

A porta udp / 3389 deve estar aberta no cliente. Se você o fechou com um firewall local, ACL no switch ou um firewall externo - a porta deve ser aberta.

Para o servidor Gateway de Área de Trabalho Remota na porta TCP / 443, abra o udp / 3391.

A porta pode ser alterada, eis como está configurada:



No Windows 7, o NLA (autenticação no nível da rede) deve estar ativado.



Pode ser ativado na Diretiva de Grupo



ou através do registro

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp]
"SecurityLayer"=dword:00000001

Qual é a conexão não está clara. Mas sem o NLA no 7-ke não funciona, em versões mais recentes do NLA para o trabalho, o UDP não é necessário.

Depois de estabelecer uma sessão por HTTP, o cliente e o servidor tentam negociar uma conexão UDP. Se houver perda ou atraso de pacotes, a sessão UDP não será iniciada. O algoritmo exato de falha de negociação UDP não é totalmente compreendido.

Se tudo estiver configurado, após a conexão, clique no botão Qualidade do link. A janela indicará que o UDP está negociado.



No gateway, fica assim:



Windows 10

Se você possui o Windows 10 no servidor e no cliente, essa é a opção mais rápida e sem problemas. A Microsoft está finalizando ativamente o RDP e, nas versões mais recentes 10, você pode contar com uma boa velocidade. Os colegas não conseguiram detectar a diferença entre o Citrix e o Windows 10 RDP na velocidade do AutoCAD.

Há um bom artigo sobre a evolução dos codecs RDP baseados em AVC no Windows 10
Remote Desktop Protocol (RDP) 10 Melhorias no AVC / H.264 no Windows 10 e na Visualização Técnica do Windows Server 2016 A

correspondência entre AVC e codificação de hardware pode ser vista no log de eventos (consulte o artigo acima para obter mais detalhes) ):





Observo apenas que ainda há um problema de distorção, mesmo com h.264 4: 4: 4. Ele imediatamente chama sua atenção se você trabalha no PowerShell ISE - o texto do erro é exibido com distorção desagradável. Além disso, está tudo bem na captura de tela e na foto. Magia.

Também um sinal indireto do trabalho da AVC aparece, de tempos em tempos, quadrados verdes nos cantos.

A codificação do AVC e do hardware em novas versões deve funcionar imediatamente, mas a política de grupo nunca é supérflua:



Como o AVC é codificado por hardware com uma placa de vídeo, é recomendável atualizar os drivers de vídeo.

Sobre problemas


XP e Vista

Se o problema ocorrer no Windows XP ou Vista, tente atualizar o protocolo para a versão 7 primeiro (escrito no início do artigo). Certifique-se de ativar o suporte CredSSP. A Microsoft já excluiu artigos no site, mas a Internet se lembra .

Se não ajudar, "o médico fala com o necrotério, depois com o necrotério". O que o sistema operacional experimentou nos últimos 15 anos é melhor nem pensar nisso.

NLA

Às vezes, ajuda a desativar o NLA no servidor. Não deu certo a causa, os carros da casa são todos diferentes.

NTLM

Alguns clientes tentam fazer login usando NTLMv1. Os motivos são diferentes, mas você pode corrigi-lo no cliente assim:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa]
"LmCompatibilityLevel"=dword:00000003

É necessário reiniciar.

Se você é jovem e tem medo de nada, existe uma solução mais radical - desabilitar a vinculação de canal no Gateway de Área de Trabalho Remota

HKLM\Software\Microsoft\Windows NT\CurrentVersion\TerminalServerGateway\Config\Core
Type: REG_DWORD
Name: EnforceChannelBinding
Value: 0 (Decimal)

Você não precisa fazer isso. Mas nós fizemos. :-) Para um cliente que insistiu (não está errado, insistiu) que NTLMv1 nas estações de trabalho que ele precisava. Não sei, talvez ainda existam servidores no NT4 sem SP ainda em operação.

Desativando o RDP 8+ no Windows 10

Se tudo mais falhar e as ideias acabarem, você poderá usar a chave não documentada para fazer o downgrade do protocolo RDP para a versão 7.

[HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client]
"RDGClientTransport"=dword:00000001

Eu não fiz isso sozinho e não o aconselho. Mas para alguém, eles escrevem que isso ajuda.

O

componente DrWeb Dr.Web SpIDerGate pode proibir a conexão. Nesse caso, um erro é retornado:

Haverá um registro nas estatísticas do Dr.Web : Um

funcionário do Dr.Web me contatou nos comentários deste artigo e nosso problema foi resolvido na próxima atualização dos bancos de dados de antivírus.
Se você tiver o mesmo erro, é melhor entrar em contato com o suporte.
Como solução temporária, você pode adicionar o URL do seu RDGW às exceções:

E somente se isso não ajudar a desativar completamente o componente SpIDer Gate .

Proxy do sistema Encontrei

um computador desativado de alguma empresa em que um TMG local foi registrado como proxy do sistema e a conexão com o RDGW não funcionou. Isso pode ser corrigido assim:

netsh winhttp show proxy && netsh winhttp reset proxy

Alternando layouts de teclado

Às vezes, layouts extras são fornecidos. Você pode desativar o encaminhamento de layout do cliente
[HKLM\System\CurrentControlSet\Control\Keyboard Layout]
"IgnoreRemoteKeyboardLayout"=dword:00000001

Problemas de DPI O

dimensionamento vem da máquina cliente e, se custar 125% em um laptop doméstico, será o mesmo em uma máquina em funcionamento. Nos servidores, isso pode ser desativado, mas nas estações de trabalho não consegui encontrar como. Mas a loja de aplicativos do Windows 10 tem um cliente "moderno" .

Você pode configurar o DPI nele:



Como monitorar um gateway com RDGW


Existe um contador de desempenho "TS Gateway \ Current Connections", que é um pouco problemático se não houver conexões ou se o servidor não tiver sido reinicializado por um longo tempo. Mostra exatamente o número de conexões, mas, como lembramos, para HTTP + UDP há pelo menos duas e talvez mais. Portanto, esse não é um indicador completamente objetivo do número de conexões de funcionários.

Há uma classe WMI Win32_TSGatewayConnection. Seu conteúdo corresponde ao que você vê na seção Monitoramento do Gateway de Área de Trabalho Remota.

Com ele, o número de conexões pode ser calculado com mais precisão:

Get-WmiObject -class "Win32_TSGatewayConnection" -namespace "root\cimv2\TerminalServices" 
|?{$_.transportprotocol -ne 2}|select username,connectedresource|sort username|Get-Unique -AsString| measure|select -ExpandProperty count

Apenas por diversão, há um utilitário Remote Display Analyzer . A versão gratuita não me mostrou nada de útil, mas de repente será útil para alguém.

Mas e o ajuste fino, ajustando algumas dezenas de parâmetros de sessão?

O princípio de Pareto é apropriado aqui: 20% dos esforços produzem 80% do resultado. Se você estiver pronto para investir seu tempo nos 20% restantes do resultado - excelente. Lembre-se de que, quando você lê um artigo sobre como configurar um protocolo no Windows 7, não sabe sobre o protocolo sobre o qual o autor escreveu - 7, 8 ou 8.1. Quando você lê sobre o Windows 10 sem especificar uma versão, os problemas são os mesmos. Por exemplo, eles escrevem que, nas novas versões do Windows 10, o codec AVC / h.264 mudou para RDPGFX_CODECID_AVC444 V2 e, no Windows Server 2016, RDPGFX_CODECID_AVC444 permanece.

De todas essas dicas, usamos apenas duas configurações:

  1. Cores de 16 bits, você pode ler sobre isso no artigo Desempenho do MS RDP / Uso de Largura de Banda
  2. Desabilitando a suavização de fonte suavização de fonte: i: 0 no artigo acima ou Hosts de Sessão da Área de Trabalho Remota de Ajuste de Desempenho

Duvido que eles dêem algum resultado tangível.

Então, chegamos ao final do artigo. Eu queria ser mais baixo, mas acabou como sempre. Fico feliz que essas dicas ajudem alguém a economizar tempo ou melhorar a configuração de sua infraestrutura.

All Articles