查看: 114|回复: 1

Windows防火墙高级设置:实现仅允许特定程序联网

[复制链接]
发表于 2 小时前 | 显示全部楼层 |阅读模式
在日常开发或测试环境中,有时需要限制Windows系统只允许某一个程序访问互联网,而其他所有程序都不能联网。这可以通过Windows Defender防火墙的入站出站规则实现。以下方法基于Windows 10/11系统,操作过程涉及控制面板、防火墙高级设置、PowerShell命令以及批处理脚本。

一、修改防火墙默认状态:阻止所有连接
首先进入控制面板,依次点击“系统和安全”->“Windows Defender防火墙”->左侧“高级设置”。在“本地计算机上的高级安全Windows Defender防火墙”窗口中,右键点击根节点选择“属性”。分别切换到“域配置文件”、“专用配置文件”和“公用配置文件”选项卡,将每个配置文件的“出站连接”和“入站连接”都改为“阻止”。点击“应用”和“确定”后,系统将无法访问任何网络,所有程序(包括目标程序)都被阻止。这一步的目的是先彻底断网,后续再单独放行。

二、添加出站规则:允许特定程序联网
回到“高级安全Windows Defender防火墙”窗口,左侧选择“出站规则”,右侧点击“新建规则”。向导中:
- 规则类型:选择“程序”;
- 程序路径:浏览并选择需要放行的exe文件(例如目标主程序);
- 操作:选择“允许连接”;
- 配置文件:保持“域”、“专用”、“公用”全部勾选;
- 名称:自定义一个有意义的规则名称,例如“允许XXX联网”。
完成后,该程序即可通过互联网访问。注意,很多应用程序的安装目录下可能有多个exe文件,例如更新程序、辅助进程等,需要根据实际联网需求逐个添加出站允许规则。

三、使用PowerShell命令添加限制规则(管理员权限)
除了图形界面,也可以使用PowerShell的NetSecurity模块快速创建规则。以管理员身份打开PowerShell,运行:
  1. New-NetFirewallRule -DisplayName "禁止某程序联网" -Direction Outbound -Action Block -Protocol Any -Program "C:\Path\To\program.exe" -Profile Any
复制代码
该命令会创建一条出站阻止规则,阻止指定程序的所有出站流量。如需创建允许规则,将Action改为Allow即可。注意:此命令仅控制出站方向,如需同时控制入站,可再用-Direction Inbound添加一条。

四、批量禁止整个文件夹下所有exe文件的联网
如果需要批量禁止某个目录(包括子目录)中所有exe文件的联网行为,可以使用以下批处理脚本(以管理员身份运行):
  1. @Echo Off
  2. SetLocal
  3. :begin
  4. echo:
  5. echo ****** 禁止文件夹联网 ******
  6. echo:
  7. set /p folder=请输入文件夹(退出请直接关闭窗口):
  8. If Not Exist "%folder%" Exit/B
  9. If /I "%CD%" NEq "%folder%" PushD %folder%
  10. Set "Cmnd=netsh advfirewall firewall add rule action=block"
  11. echo:
  12. For /R %%a In (*.exe) Do (For %%b In (in out) Do (
  13. echo 创建禁止 %%b 规则【%%a】
  14. %Cmnd% name="blocked %%a via script" dir=%%b program="%%a"))
  15. echo:
  16. echo %folder% 中所有 exe 文件的禁止入站、出站规则都已成功创建!
  17. echo ----------------------------
  18. echo:
  19. goto begin
复制代码
该脚本会遍历指定文件夹及子文件夹下的所有exe文件,为每个文件分别创建禁止入站(in)和出站(out)的规则。注意:其中的netsh命令较旧,但在Windows 10/11中仍有效,也可以改用前述New-NetFirewallRule实现更精细的控制。

以上方法可根据实际场景灵活组合。建议先将防火墙默认状态改为阻止,再逐一放行需要联网的程序,这样能确保除白名单外所有程序均无法访问网络。操作时请勿忘记管理员权限,并注意备份原有防火墙规则以防误操作。
回复

使用道具 举报

发表于 2 小时前 | 显示全部楼层

Re: Windows防火墙高级设置:实现仅允许特定程序联网

这个教程写得非常详细,尤其是“先断网再单独放行”的思路,确实能从根本上避免漏网之鱼。我之前试过用第三方防火墙软件,但系统自带的规则更稳定、资源占用也低。PowerShell那部分对需要批量操作的人很有帮助,脚本遍历文件夹那招挺实用的,省得手动一条一条加。唯一想提醒的是,改默认出站为阻止后,像系统更新、杀毒软件这些也要记得放行,不然可能会影响正常维护。感谢分享!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

指导单位

江苏省公安厅

江苏省通信管理局

浙江省台州刑侦支队

DEFCON GROUP 86025

Hacking Group 021A

旗下站点

态势感知中心

应急响应中心

红盟安全

联系我们

官方QQ群:112851260

官方邮箱:security#ihonker.org(#改成@)

官方核心成员

关注微信公众号

Archiver|手机版|小黑屋| ( 沪ICP备2021026908号 )

GMT+8, 2026-6-5 15:24 , Processed in 0.027322 second(s), 18 queries , Gzip On, Redis On.

Powered by ihonker.com

Copyright © 2015-现在.

  • 返回顶部