要让windows防火墙真正拦截所有外部公网rdp尝试,核心是组合使用:一、将网络位置设为“公用”;二、禁用预置远程桌面入站规则;三、新建作用域覆盖公网ip段(0.0.0.0–192.167.255.255、192.169.0.0–255.255.255.255)并阻止tcp/udp 3389的显式拒绝规则;四、在“允许应用”列表中取消勾选“远程桌面”的公用权限。
要让 windows 防火墙真正拦截所有来自外部公网的 rdp 尝试,核心不是“只放行内网”,而是主动拒绝非信任来源——尤其是公网 ip 段。默认防火墙不会区分内外网流量类型,它只认网络位置(专用/域/公用)和规则作用域。因此需组合使用作用域限制 + 显式拒绝规则 + 网络配置加固,才能实现全局拦截效果。
一、确认并锁定网络位置为“公用”
这是最关键的前置动作。Windows 防火墙对“公用网络”默认最严格:不自动启用任何入站规则,且禁止文件共享、远程桌面等高风险服务响应。
- 右键任务栏网络图标 → “打开网络和 Internet 设置” → 点击当前连接 → “属性”
- 确保“网络配置文件”显示为公用(不是专用或域)
- 若显示为专用,请点击“改为此网络为公用网络”
二、禁用所有预置的远程桌面入站规则
即使网络是公用的,系统自带的“远程桌面 - 用户模式 (TCP-In)”等规则仍可能被意外启用,必须全部关闭。
- 按 Win + R,输入
wf.msc回车,打开高级安全防火墙 - 左侧点“入站规则”,右侧找到以下两项(可能有多个变体):
• 远程桌面 - 用户模式 (TCP-In)
• 远程桌面 - 核心模式 (TCP-In) - 逐个右键 → “禁用规则”(不要删除,便于后续恢复)
三、添加一条显式的“拒绝所有公网RDP”的自定义规则
仅靠禁用规则还不够——攻击者可能扫描其他端口或利用 UDP RDP 流量。需新建一条覆盖性拒绝规则,精准匹配公网来源。
- 在
wf.msc中,右键“入站规则” → “新建规则…” - 选择“自定义” → 下一步
- “程序”页:选“所有程序” → 下一步
- “协议和端口”页:
• 协议类型:TCP
• 本地端口:特定端口 → 输入 3389
• (可选加一层)再建一条同样规则,协议类型选 UDP,端口也填 3389 - “作用域”页(重点!):
• 在“哪些远程 IP 地址”中,选择“下列 IP 地址”
• 点击“添加…” → 输入 IPv4 地址范围:
0.0.0.0-192.167.255.255
192.169.0.0-255.255.255.255
→ 这基本覆盖全部公网 IPv4(排除了常见的私有地址段 10.0.0.0/8、172.16.0.0/12、192.168.0.0/16) - “操作”页:选“阻止连接” → 下一步
- “配置文件”页:勾选公用(也可同时勾选专用,如你确信该机永不接可信局域网) → 下一步
- 命名如:“拒公网RDP-3389-TCP”,完成
四、关闭“允许应用通过防火墙”中的远程桌面条目
控制面板里的简易防火墙界面有一条独立开关,常被忽略,但它优先级高且容易误开。
- 控制面板 → “系统和安全” → “Windows Defender 防火墙” → 左侧“允许应用或功能通过 Windows Defender 防火墙”
- 点击“更改设置”(需管理员)
- 在列表中找到“远程桌面”,确保其在公用**列完全未勾选**
- 若已勾选,立即取消 → 点击“确定”











