开启Windows网络唤醒(WOL)和远程桌面(RDP)
WindowsPro自带的远程桌面技术成熟,是远程办公优秀的解决方案。
开启Windows网络唤醒(WOL)和远程桌面(RDP)
一、概念
网络唤醒(Wake On Lan),通过UDP协议(发送端口为9或7),向局域网内广播地址(255结尾)发送幻数据包(Magic Packet),幻数据包最简单的构成是6字节的255(FF FF FF FF FF FF FF),紧接着为目标计算机的48位MAC地址(重复16次),数据包共计102字节。有时数据包内还会紧接着4-6字节的密码信息。
远程桌面(Remote Desktop Protocol),使用TCP协议(端口3389),必须用证书封装加密。
二、启动
(一)WOL启用
前提:主板支持(新主板一般都支持);网卡支持(部分网卡仅支持休眠下S3唤醒,不支持关机下S5唤醒)。
1. BIOS设置
- Sleep Type(Legacy模式)
- Deep S4/S5(关闭;关闭S4/S5最大节能)
- Wake On Lan from S4/S5(开启,启动模式选正常启动)
- Wake System from S5(开启)
2. Windows设置
- 控制面板–电源选项–选择电源开关用途–快速启动(关闭)
- 设备管理器–网卡–属性–高级:网络唤醒(开启);幻数据包(开启)
- 设备管理器–网卡–属性–电源管理:允许节能(开启);允许唤醒计算机(开启);只允许幻数据包(开启)。注意:如果网卡没有“电源管理”,检查BIOS的SleepType是否为Legacy模式。
注意: 网卡的驱动是巨坑。一定保证驱动最新,且能开启WOL;默认驱动不支持WOL是最普遍的问题!
3. Openwrt设置
# 安装 WakeOnLan 控件:
$ opkg install etherwake luci-app-services-wolplus luci-i18n-services-wolplus-zh-cn
# 唤醒:
$ /usr/bin/etherwake -i br-lan 00:00:AA:CC:BB:00 # 需要电脑mac地址和其所在局域网的接口br-lan
4. 路由器设置(通过Internet唤醒时)
- 端口转发:协议UDP;外部端口10009;内部端口9;转发至指定IP或转发至局域网广播地址(255结尾)。
- 防火墙:放行UDP外部端口10009。
- 设置“IP/MAC绑定”(ARP协议),IP->Mac的直接固定映射。
(二)RDP启用
前提:Windows Pro 系统。Home系统没有RDP功能,但可通过第三方补丁解决。
- 设置–系统–远程桌面:启动
- 控制面板–系统属性–远程:允许远程连接(开启);仅允许网络级别身份验证(开启)
- 路由器设置(通过Internet使用时)
- 防火墙和端口转发:协议TCP;外部端口不要3389,选10000以上大端口;内部端口3389(RDP默认端口)。
三、RDP的Windows系统安装TLS证书(安全必须)
(一)获得证书
由于Windows需要pkcs12(即pfx)格式的证书,因此可以使用 acme.sh
自带的转换功能进行转换:
$ ./acme.sh --toPkcs -d <domain> [--password pfx-password]
# 不传入密码则会在后续通过对话的形式询问设置。pkcs12证书必须设密码。
# 或者,如没有 acme.sh 也可以使用 openssl 来进行转换
$ openssl pkcs12 -export -in <cer file> -inkey <key file> -out <out file>
# 会通过对话的形式询问设置证书密码
(二)安装证书
- 运行 –
mmc
- 菜单栏“文件” - “添加/删除管理单元” :将“证书”管理单元从“可用的管理单元”添加到“所选管理单元”;配置 “该管理单元始终为下列账户管理证书”=“计算机账户”、“这个管理单元将始终管理”=“本地计算机”;完成添加。
- 左边栏依次展开“证书” — “个人”,随后右键“个人”或右侧空白位置,选择“所有任务” — “导入”:浏览(注意选择文件类型为pfx)选择要添加的pfx证书文件;需要填写生成证书时设置的密码;证书的存储位置手动指定为“个人”;完成导入。
- 右键刚刚导入的证书,“所有任务” — “管理私钥”,检查用户“NETWORK SERVICE”是否有读取权限(如没有需手动添加)。
- 查看证书的信息,在“详细信息”选项卡中选择“指纹”,记录下指纹。
- 关闭mmc,不需要保存。
- 启动注册表编辑器,
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp
,如果路径不存在,则新建。打开后新建一个名为SSLCertificateSHA1Hash
的二进制值,手动敲入指纹(无法粘贴)。
(三)强制使用TLS1.3
- TLS1.0 与 TLS1.1 已经是不安全的协议了!
- 启动注册表编辑器,
HKEY_LOCAL_MACHINE\SYSTEM\CurrentcontrolSet\Control\SecurityProviders\SCHANNEL\Protocols
,如果路径不存在,则新建;在Protocols
项下继续新建TLS 1.0
、TLS 1.1
、TLS 1.3
项;在各项下,继续新建Server
项和Client
项。在Server
项和Client
项里, 新建名为Enabled
的“DWORD(32位)值”。1.0和1.1都设为0
;1.3设为1
。
最后修改于 2024-02-24