防火墙管理器是一个基于 Python 的 Windows 应用程序,旨在管理指定文件夹中所有可执行文件的网络访问权限。它利用 Windows 防火墙规则快速阻止或允许这些 EXE 文件的网络连接。
- 文件夹扫描:扫描指定文件夹及其子文件夹中的所有 EXE 文件。
- 防火墙规则管理:批量添加或删除 Windows 防火墙阻止规则。
- 状态监控:实时显示每个 EXE 文件的防火墙阻止状态。
- 操作日志:详细记录所有操作过程和结果。
- 白名单功能:允许特定程序访问指定的本地端口和远程地址。
- 文件夹选择:浏览按钮用于选择目标文件夹。
- 文件列表显示:树状结构显示发现的 EXE 文件及其详细信息。
- 批量操作:一键添加或删除所有 EXE 文件的防火墙规则。
- 白名单设置:配置允许的本地端口和远程地址。
- 状态栏:显示当前操作状态和进度。
- 操作系统:Windows 7/8/10/11
- 权限:管理员权限(修改防火墙规则所需)
- Python 版本:Python 3.6+(开发环境)
tkinter:GUI 框架(Python 内置)subprocess:系统命令执行(Python 内置)threading:多线程支持(Python 内置)pathlib:路径处理(Python 内置)
- 下载或编译
FirewallManager.exe。 - 右键单击程序,选择“以管理员身份运行”。
- 按照屏幕上的说明操作。
- 确保已安装 Python 3.6+。
- 克隆或下载项目源代码。
- 安装依赖项:
pip install -r requirements.txt - 以管理员身份运行:
python firewall_manager.py
- 运行
build.bat批处理文件。 - 或手动执行:
python build_exe.py - 编译完成后,在项目根目录中找到
FirewallManager.exe。
- 启动程序:以管理员身份运行程序。
- 选择文件夹:单击“浏览”按钮选择要管理的文件夹。
- 扫描文件:单击“扫描 EXE 文件”按钮。
- 查看结果:在文件列表中检查发现的 EXE 文件及其当前的防火墙状态。
- 配置白名单(可选):
- 单击“白名单设置”打开配置窗口。
- 启用白名单功能。
- 设置允许的本地端口(例如:80,443,8080)。
- 设置允许的远程地址(例如:192.168.1.0/24,10.0.0.1)。
- 保存配置。
- 管理规则:
- 单击“添加防火墙规则”以阻止所有 EXE 文件访问网络。
- 如果启用了白名单,将创建精确的允许规则而不是完全阻止。
- 单击“移除防火墙规则”以允许所有 EXE 文件访问网络。
- 查看日志:在操作日志区域查看详细的操作记录。
- 文件夹路径:显示当前选择的扫描文件夹。
- 文件列表:显示发现的 EXE 文件,包括文件名、完整路径、文件大小和防火墙状态。
- 操作按钮:
- 扫描 EXE 文件:重新扫描当前文件夹。
- 添加防火墙规则:为所有 EXE 文件添加阻止规则。
- 移除防火墙规则:移除所有 EXE 文件的阻止规则。
- 清空列表:清空当前文件列表。
- 操作日志:显示所有操作的时间戳和结果。
- 状态栏:显示当前程序状态。
- GUI 框架:使用 tkinter 构建用户界面。
- 防火墙管理:使用
netsh命令操作 Windows 防火墙。 - 多线程:使用
threading防止 UI 冻结。 - 文件系统:使用
os.walk进行递归文件夹扫描。
- 使用
netsh advfirewall firewall命令管理 Windows 防火墙。 - 创建出站规则以阻止程序网络访问。
- 规则命名格式:
Block_ProgramName。 - 在白名单模式下,创建精确的允许规则:
Allow_ProgramName_Port_Port和Allow_ProgramName_Addr_Address。
- 支持本地端口白名单(TCP/UDP 协议)。
- 支持远程地址白名单(IP 地址、CIDR 范围)。
- 配置文件:
whitelist_config.json。 - 白名单模式:首先阻止所有连接,然后添加特定的允许规则。
- 规则名称格式:
Block_{exe_filename}。 - 规则类型:出站规则(阻止程序网络访问)。
- 规则动作:阻止连接。
- 程序必须以管理员权限运行才能修改防火墙规则。
- 如果没有管理员权限运行,程序将显示警告消息。
- 添加防火墙规则将阻止 EXE 文件的所有网络连接。
- 某些程序如果无法访问网络可能无法正常运行。
- 建议在添加规则前备份重要的防火墙配置。
- 程序仅支持 Windows 系统。
- 需要 Windows 防火墙服务正常运行。
- 某些第三方防火墙可能会影响程序功能。
NotLinkNet/
├── firewall_manager.py # 主程序文件
├── build_exe.py # 打包脚本
├── build.bat # 一键打包批处理文件
├── requirements.txt # 依赖列表
├── whitelist_config.json # 白名单配置文件(运行时生成)
├── README.md # 项目文档
├── 使用文档.md # 用户文档
└── FirewallManager.exe # 编译后的可执行文件(打包后生成)
- 开发语言:Python 3.x
- GUI 框架:tkinter
- 打包工具:PyInstaller
- 编码:GBK(兼容 Visual Studio)
- 注释语言:英文
- 首次发布。
- 实现了基本的 EXE 文件扫描功能。
- 实现了防火墙规则的批量管理。
- 提供了完整的 GUI 界面。
- 支持打包成独立可执行文件。