Cara membuat bekerja dengan Microsoft Remote Desktop lebih baik

Saya ingin berbagi beberapa tips tentang pengaturan koneksi jarak jauh ke workstation melalui RDP. Saya akan memberi tahu Anda cara meningkatkan RPC-HTTP kuno ke UDP, memuji dan memarahi Windows 10 dan AVC, saya akan mencari solusi untuk beberapa masalah umum.

Kami percaya bahwa Remote Desktop Gateway (RDGW) digunakan untuk koneksi, dan workstation bertindak sebagai server. Menggunakan RDGW sangat mudah karena gateway menjadi titik masuk yang umum untuk semua klien. Ini memungkinkan kontrol akses yang lebih baik, menyimpan catatan koneksi dan durasinya. Bahkan jika VPN memungkinkan Anda terhubung ke mesin yang bekerja secara langsung, ini bukan pilihan terbaik.

RDGW cepat, mudah untuk dikonfigurasi, dan Let's Encrypt dan win-acme dengan mudah menyelesaikan masalah dengan sertifikat tepercaya.

Ada tiga protokol transport di mana klien dapat terhubung ke server:

RPC-HTTP ( buruk )
HTTP ( lebih baik )
HTTP + UDP ( sangat baik ).

Dengan server, kami berarti mesin yang berfungsi, oleh rumah - klien.
Hal pertama yang harus Anda lakukan adalah mengubah "buruk" menjadi "sangat baik".

Tingkatkan RPC-HTTP ke HTTP


Koneksi ke sesi menggunakan RPC-HTTP mudah ditentukan oleh penampilan strip koneksi.



Tidak ada ikon kualitas koneksi (tentangnya di bawah ini), yang berarti kami menggunakan RPC lama yang dibungkus dengan TLS - ini sangat lambat. Intinya, tentu saja, tidak hanya di bungkus - protokol itu sendiri berubah dengan setiap rilis OS, codec, perubahan algoritma pengemasan gambar. Semakin segar protokol, semakin baik.

Apa yang harus dilakukan?

Windows XP atau Vista


Di XP, Anda dapat meningkatkan protokol dari 5.1 ke 7. Perbaikan terbaru windowsxp-kb969084-x86.exe.

Di Vista, dari 6 hingga 7. Perbaikan terbaru memiliki nomor yang sama, windows6.0-kb969084-x64.msu atau Windows6.0-KB969084-x86 file .msu

Tapi RDP 7 tidak berfungsi di HTTP dan UDP. Hanya memutakhirkan klien dan server ke Windows 7 dan yang lebih baru akan membantu.

Windows 7

Pertama, Anda perlu memutakhirkan protokol ke RDP 8.1, dan kemudian mengaktifkannya. Dukungan ditambahkan oleh pembaruan yang dikelompokkan ke dalam satu paket unduhan tunggal:

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 (digantikan oleh kb2923545)

windows6.1-kb2923545-x64.msu

Jadi Anda mendapatkan klien mstsc.exe segar dan dukungan RDP 8.1 untuk sisi server OS.
Itu:





Itu menjadi:



Setelah itu, protokol harus dihidupkan dengan kunci registri (untuk ini Anda dapat menggunakan templat adm yang dibundel dengan 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

Aktifkan dukungan transportasi UDP dalam Kebijakan Grup.



Kami me-reboot server dengan Windows 7. Kasus yang sama ketika Anda mungkin perlu me-reboot dua kali - nilai dalam registri harus ditetapkan sebelum RDP dihidupkan, dan Kebijakan Grup diterapkan nanti.

Jika semuanya berhasil , maka ketika Anda terhubung ke server, ikon kualitas koneksi (seperti di telepon untuk jaringan seluler) akan muncul di bilah sesi:



Windows 8 dan yang lebih baru

Protokol berfungsi di luar kotak.

Tingkatkan HTTP ke HTTP + UDP


Jika jaringan Anda tidak rentan terhadap kehilangan paket, UDP secara signifikan (untuk CAD - secara drastis) meningkatkan respons server dengan menggunakan FEC untuk mengurangi pengiriman ulang, serta mengalihkan konfirmasi pengiriman paket dari tumpukan sistem TCP / IP ke tingkat protokol RDP-UDP.

Satu sesi kontrol utama melalui HTTP terhubung dari masing-masing klien (keyboard / mouse juga ditransmisikan dalam saluran ini), ditambah satu atau lebih sesi UDP untuk mengirimkan gambar atau saluran virtual lainnya.

Kami hanya akan menyentuh ujung gunung es. Ada 3 versi protokol RDP-UDP yang berbeda. Selain itu, UDP sendiri dapat beroperasi dalam dua mode: UDP-R (dapat diandalkan) dan UDP-L (lossy). Tidak ada yang terjadi dengan Microsoft. Tetapi karena tidak ada yang bergantung pada kita di sini, perlu diingat - semakin baru sistem operasinya, topik tersebut menggunakan protokol yang lebih modern.

Di luar, RDP-UDP dibungkus dengan Datagram Transport Layer Security (DTLS) RFC4347, seperti yang Anda lihat dengan membuka Wireshark.

Lebih detail dalam dokumen:
[MS-RDPEMT]: Remote Desktop Protocol: Multitransport Extension
[MS-RDPEUDP]: Remote Desktop Protocol: UDP Transport Extension
[MS-RDPEUDP2]: Remote Desktop Protocol: UDP Transport Extension Version 2
Dimana salah, benar sama sama.

Apa yang Anda perlukan untuk mengaktifkan UDP?

RDP-UDP didukung mulai dari RDP 8.

Port udp / 3389 harus terbuka pada klien. Jika Anda menutupnya dengan firewall lokal, ACL pada sakelar atau firewall eksternal - port harus dibuka.

Untuk server Remote Desktop Gateway ke port tcp / 443, buka udp / 3391.

Port dapat diubah, berikut adalah cara mengkonfigurasi:



Untuk Windows 7, NLA (Network Level Authentication) harus diaktifkan.



Dapat diaktifkan dalam Kebijakan Grup



atau melalui registri

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

Apa hubungannya tidak jelas. Tetapi tanpa NLA pada 7-ke tidak berfungsi, pada rilis NLA untuk kerja yang lebih baru, UDP tidak diperlukan.

Setelah membuat sesi melalui HTTP, klien dan server mencoba untuk menegosiasikan koneksi UDP. Jika ada kehilangan atau penundaan paket, maka sesi UDP tidak akan dimulai. Algoritme kegagalan negosiasi UDP yang tepat belum sepenuhnya dipahami.

Jika semuanya sudah terkonfigurasi, lalu setelah terhubung, klik tombol kualitas tautan. Jendela akan menunjukkan bahwa UDP dinegosiasikan.



Di gateway, terlihat seperti ini:



Windows 10

Jika Anda memiliki Windows 10 di server dan di klien, maka ini adalah pilihan tercepat dan paling bebas masalah. Microsoft secara aktif menyelesaikan RDP, dan dalam rilis terbaru 10 Anda dapat mengandalkan kecepatan yang baik. Kolega tidak dapat mendeteksi perbedaan antara Citrix dan Windows 10 RDP dalam kecepatan AutoCAD.

Ada artikel bagus tentang evolusi codec RDP berbasis AVC di Windows 10
Remote Desktop Protocol (RDP) 10 peningkatan AVC / H.264 di Windows 10 dan Windows Server 2016 Technical

Matching Matching AVC dengan pengkodean perangkat keras dapat dilihat di log peristiwa (lihat artikel di atas untuk rincian lebih lanjut) ):





Saya perhatikan hanya bahwa masih ada masalah distorsi bahkan dengan h.264 4: 4: 4. Segera menarik perhatian Anda jika Anda bekerja di PowerShell ISE - teks kesalahan ditampilkan dengan distorsi yang tidak menyenangkan. Apalagi semuanya baik-baik saja di tangkapan layar dan di foto. Sihir.

Juga tanda tidak langsung dari karya AVC dari waktu ke waktu muncul kotak hijau di sudut-sudut.

Pengkodean AVC dan perangkat keras dalam build baru harus berjalan baik, tetapi kebijakan grup tidak pernah berlebihan:



Mengingat bahwa AVC dikodekan dengan perangkat keras dengan kartu video, memperbarui driver video adalah ide yang bagus.

Tentang masalah


XP dan Vista

Jika masalah terjadi pada Windows XP atau Vista, coba perbarui protokol ke versi 7 terlebih dahulu (tulis di awal artikel). Pastikan untuk mengaktifkan dukungan CredSSP. Microsoft sudah menghapus artikel di situs, tetapi Internet masih ingat .

Jika tidak membantu, "dokter berbicara ke kamar mayat, kemudian ke kamar mayat." Apa yang dialami sistem operasi selama 15 tahun terakhir adalah lebih baik untuk tidak memikirkannya.

NLA

Terkadang membantu menonaktifkan NLA di server. Itu tidak berhasil penyebabnya, semua mobil rumah berbeda.

NTLM

Beberapa klien mencoba masuk menggunakan NTLMv1. Alasannya berbeda, tetapi Anda dapat memperbaikinya pada klien seperti ini:

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

Reboot diperlukan.

Jika Anda masih muda dan tidak takut pada apa pun, maka ada solusi yang lebih radikal - menonaktifkan Saluran Binding di Remote Desktop Gateway

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

Anda tidak harus melakukan ini. Tapi kami melakukannya. :-) Untuk klien yang bersikeras (tidak salah, berkeras) bahwa NTLMv1 pada workstation yang dia butuhkan. Saya tidak tahu, mungkin ada server di NT4 tanpa SP yang masih beroperasi.

Menonaktifkan RDP 8+ di Windows 10

Jika semuanya gagal dan gagasan habis, Anda dapat menggunakan kunci tidak berdokumen untuk menurunkan versi protokol RDP ke versi 7.

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

Saya tidak melakukannya sendiri, dan saya tidak menyarankan Anda. Tetapi kepada seseorang, mereka menulis bahwa itu membantu.

Komponen DrWeb

Dr.Web SpIDerGate dapat melarang koneksi. Dalam hal ini, kesalahan dikembalikan:

Akan ada catatan dalam statistik Dr.Web : Seorang

karyawan Dr.Web menghubungi saya di komentar pada artikel ini dan masalah kami diselesaikan dalam pembaruan berikutnya dari basis data anti-virus.
Jika Anda memiliki kesalahan yang sama, yang terbaik adalah menghubungi dukungan.
Sebagai solusi sementara, Anda dapat menambahkan URL RDGW Anda ke pengecualian:

Dan hanya jika itu tidak membantu untuk menonaktifkan komponen Gerbang SpIDer sepenuhnya .

Proxy sistem Saya

bertemu dengan komputer yang dinonaktifkan dari beberapa perusahaan di mana TMG lokal terdaftar sebagai proxy sistem dan koneksi ke RDGW tidak berfungsi. Ini dapat diperbaiki seperti ini:

netsh winhttp show proxy && netsh winhttp reset proxy

Berpindah layout keyboard

Terkadang layout tambahan datang. Anda dapat menonaktifkan penerusan tata letak dari klien
[HKLM\System\CurrentControlSet\Control\Keyboard Layout]
"IgnoreRemoteKeyboardLayout"=dword:00000001

Masalah DPI

Penskalaan berasal dari mesin klien, dan jika harganya 125% pada laptop rumahan, itu akan sama pada mesin yang berfungsi. Di server, ini bisa dimatikan, tetapi pada workstation saya tidak bisa menemukan caranya. Tetapi toko aplikasi Windows 10 memiliki klien "modern" .

Anda dapat mengkonfigurasi DPI di dalamnya:



Cara memonitor gateway dengan RDGW


Ada penghitung kinerja "TS Gateway \ Current Connections", yang agak buggy jika tidak ada koneksi atau server tidak reboot untuk waktu yang lama. Ini menunjukkan persis jumlah koneksi, tetapi seperti yang kita ingat, untuk HTTP + UDP setidaknya ada dua, dan mungkin lebih. Oleh karena itu, ini bukan indikator yang sepenuhnya objektif dari jumlah koneksi karyawan.

Ada kelas WMI Win32_TSGatewayConnection. Isinya sesuai dengan apa yang Anda lihat di bagian Pemantauan Remote Desktop Gateway.

Dengannya, jumlah koneksi dapat dihitung lebih tepat:

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

Hanya untuk bersenang-senang ada utilitas Remote Display Analyzer . Versi gratisnya tidak menunjukkan kepada saya sesuatu yang berguna, tetapi tiba-tiba itu akan berguna bagi seseorang.

Tetapi bagaimana dengan fine tuning, tuning beberapa lusin parameter sesi?

Prinsip Pareto sesuai di sini: 20% dari upaya menghasilkan 80% dari hasilnya. Jika Anda siap untuk menginvestasikan waktu Anda di 20% sisanya dari hasil - sangat baik. Ingatlah bahwa ketika Anda membaca artikel tentang menyiapkan protokol di Windows 7, Anda tidak tahu protokol apa yang ditulis oleh penulis tentang - 7, 8 atau 8.1. Ketika Anda membaca tentang Windows 10 tanpa menentukan rilis, masalahnya sama. Sebagai contoh, mereka menulis bahwa dalam build baru Windows 10, AVC / h.264 codec telah berubah menjadi RDPGFX_CODECID_AVC444 V2 , dan di Windows Server 2016, RDPGFX_CODECID_AVC444 tetap.

Dari semua tips ini, kami hanya menggunakan dua pengaturan:

  1. 16 bit warna, Anda dapat membacanya di artikel MS RDP Performance / Bandwidth Usage
  2. Menonaktifkan font smoothing font smoothing: i: 0 pada artikel di atas atau Host Sesi Remote Desktop Tuning Kinerja

Saya ragu mereka memberikan hasil nyata.

Jadi kita telah sampai pada akhir artikel. Saya ingin menjadi lebih pendek, tetapi ternyata seperti biasa. Saya senang jika tips ini membantu seseorang menghemat waktu atau meningkatkan konfigurasi infrastruktur mereka.

All Articles