本文受众:具备一定计算机基础,知道命令行是个啥子。

你可以将电脑接入 Internet,但不建议这样做。 如果必须,请确保为电脑设置了强密码。 如果可以,最好使用 VPN。

这是一篇附属文章

概述

本文写了一大堆用于使用 Windows 远程桌面的被控端配置的指北教程

安全警告

安全警报


使用 RDP 远程桌面意味着您将您的计算机暴露在公网中,务必确保您的系统已经安装了最新的补丁并且设置了强密码,并且打开了系统更新,并且您需要自行承担由此带来的风险

你可以将电脑接入 Internet,但不建议这样做。 如果必须,请确保为电脑设置了强密码。 如果可以,最好使用 VPN。

支持和限制

  1. 官方在 Windows 家庭版、Windows 单语言版 不提供此功能

    Windows 家庭版也是可以用的,请移步https://github.com/stascorp/rdpwrap

  2. RDS ACL 限制,导致无法多用户连接;

操作

允许远程桌面连接

适用于 ✅ Windows 10 |✅ Windows 11

点击这里 打开设置,然后打开 启用远程桌面

适用于 ✅ Windows 7 |✅ Windows 8 |✅ Windows 8.1 |✅ Windows 10 |✅ Windows 11

运行 sysdm.cpl 来打开系统属性,然后转到 远程
如果你不知道如何运行这个命令,那么请退出此页面。

找到 远程桌面 ,将单选框选中 允许远程连接到此计算机
有关 仅允许使用网络级别身份验证进行连接 ,参阅下面的文本,我的建议是勾上。

为何仅允许使用网络级别身份验证进行连接?
网络级别身份验证 (NLA) 为远程桌面连接增加了额外的安全层。 启用 NLA 后,用户必须在建立远程会话之前自行进行身份验证,从而降低未经授权的访问风险,并帮助保护电脑免受恶意用户和软件的攻击。 建议对大多数环境启用 NLA,因为它确保只有受信任的用户和设备才能连接。 但是,如果需要从不支持 NLA 的较旧设备或客户端进行连接,则可能需要暂时禁用此选项。 为了获得最佳安全性,请尽可能保持 NLA 启用状态。

@see https://learn.microsoft.com/zh-cn/windows-server/remote/remote-desktop-services/remotepc/remote-desktop-allow-access

请移步 https://github.com/stascorp/rdpwrap
或者
更换一个更好的操作系统。

连接用户设置

如果你的欲连接用户是一个居管理员组账户,那么这一步可以直接跳过。
如果你想要遵循最小权限原则我远桌搞什么?,那么你需要手动配置这些选项。

适用于 ✅ Windows 10 |✅ Windows 11

点击这里 打开设置,然后打开 选择可远程访问这台电脑的用户远程桌面用户,选择 添加(&D)…,使用添加用户窗口添加额外的用户。

适用于 ✅ Windows 7 |✅ Windows 8 |✅ Windows 8.1 |✅ Windows 10 |✅ Windows 11

运行 sysdm.cpl 来打开系统属性,然后转到 远程
如果你不知道如何运行这个命令,那么请退出此页面。

找到 远程桌面 ,打开按钮 选择用户
选择 添加(&D)…,使用添加用户窗口添加额外的用户。

请移步 https://github.com/stascorp/rdpwrap
或者
更换一个更好的操作系统。

修改连接端口

概述

RDP 在主机上监听下面的端口来建立连接。

传输层协议默认端口访问类型备注
TCP3389基本连接需要,传输连接信息必须
UDP3389改进连接质量可选

TCP 和 UDP 端口是绑定的。

如果你直接使用默认端口并将其以 3389 暴露在公网上,那么某些别有心机的人可以使用某些别有用心的工具,扫描到你的 RDP 端口,然后通过某些别有心机的方法,尝试打开你的电脑。所以,可以更改端口来避免一定的印象并提高安全性。

修改监听端口

@see https://learn.microsoft.com/zh-cn/windows-server/remote/remote-desktop-services/remotepc/change-listening-port?tabs=powershell

查阅当前监听端口

1
Get-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' -name 'PortNumber'

PortNumber : 3389
PSPath : Microsoft.PowerShell. Core\Registry::HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp
PSParentPath : Microsoft.PowerShell. Core\Registry::HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations
PSChildName : RDP-Tcp
PSDrive : HKLM
PSProvider : Microsoft.PowerShell.Core\Registry

返回的PortNumber的值便是当前监听的端口

要更改端口,在PowerShell执行下命令

请将 <portNumber> 替换为对应端口

portNumber-对应端口
1
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' -name 'PortNumber' -Value '<portNumber>'

开放防火墙

若你的其他网络连接设备(比如路由器)使用防火墙,或者你的电脑使用其他防火墙,记得放开对应端口。

添加新的防火墙入站规则以保证传入请求可以被接收。

请将 <portNumber> 替换为对应端口

portNumber-对应端口
1
2
3
4
$portValue = '<Port Number>'

New-NetFirewallRule -DisplayName 'RDPPORTLatest-TCP-In' -Profile Public -Direction Inbound -Action Allow -Protocol TCP -LocalPort $portValue
New-NetFirewallRule -DisplayName 'RDPPORTLatest-UDP-In' -Profile Public -Direction Inbound -Action Allow -Protocol UDP -LocalPort $portValue

刷新率锁

在内网穿透的 12Mbps 可以在原的环境下跑到显示器的 60FPS

由于远程主机会一定程度上使用客户端的显示器配置,由于没有>60FPS的显示器,故未测试高值的效果。

1
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\' -name 'DWMFRAMEINTERVAL' -Value '15'