Post

Windows防火墙配置与自动化脚本实战

2026-05-07

Windows 防火墙配置与自动化安装脚本指南

概述

本文介绍如何通过 netsh 命令配置 Windows 防火墙的入站/出站 IP 端口封禁规则及 MTU 参数,同时提供批处理脚本片段用于检测并删除指定文件,适用于 Windows 自动化安装场景。

核心概念

防火墙规则配置

  • 方向(dir)in(入站)或 out(出站),控制流量方向。
  • 协议(protocol):默认为 TCP,可扩展至其他协议。
  • 动作(action)block 用于封禁特定流量。
  • IP 地址(remoteip):指定需封禁的远程 IP 地址。
  • 端口(localport/remoteport)localport 用于入站端口封禁,remoteport 用于出站端口封禁。

MTU 设置

  • MTU(Maximum Transmission Unit):数据包最大传输单元,单位为字节。netsh 可通过 set subinterface 命令调整 MTU 值,store=persistent 参数确保配置持久化。

批处理脚本

  • 文件检测与删除:通过 IF EXIST 判断文件是否存在,结合 DEL 命令实现自动化清理,常用于安装前的环境准备。

使用方法

防火墙规则配置

  1. 封禁入站 IP

    netsh advfirewall firewall add rule name="Block_IP" dir=in action=block protocol=TCP remoteip=192.168.1.100
    
    • 替换 {name} 为规则名称,{remote_ip} 为需封禁的 IP。
  2. 封禁出站 IP

    netsh advfirewall firewall add rule name="Block_Out_IP" dir=out action=block protocol=TCP remoteip=192.168.1.200
    
  3. 封禁入站端口

    netsh advfirewall firewall add rule name="Block_Port_80" dir=in action=block protocol=TCP localport=80
    
    • localport 指定本地监听端口(如 HTTP 服务端口 80)。
  4. 封禁出站端口

    netsh advfirewall firewall add rule name="Block_Out_Port_3389" dir=out action=block protocol=TCP remoteport=3389
    
    • remoteport 指定远程目标端口(如 RDP 端口 3389)。
  5. 查看所有规则

    netsh advfirewall firewall show rule name=all
    
  6. 调整 MTU 参数

    netsh interface ipv4 set subinterface "以太网" mtu=1445 store=persistent
    
    • 替换 "以太网" 为实际网络适配器名称,mtu=1445 为自定义值。

批处理脚本示例

@echo off
IF EXIST "C:\path\to\your\file.txt" (
    DEL "C:\path\to\your\file.txt"
    echo 文件已删除。
) ELSE (
    echo 文件不存在。
)
  • 适用场景:自动化安装前清理残留文件,确保环境干净。

注意事项

  1. 权限要求netsh 命令需以管理员身份运行,否则可能提示权限不足。
  2. 网络适配器名称set subinterface 命令中的网络名称需与系统实际名称一致,可通过 netsh interface ipv4 show subinterface 查询。
  3. 脚本路径:批处理脚本中的文件路径需根据实际安装环境调整,避免误删系统关键文件。
  4. 规则冲突:若存在同名规则,add rule 命令可能覆盖原有配置,建议通过 show rule 先检查规则列表。

总结

本文提供了通过 netsh 命令配置 Windows 防火墙规则及 MTU 参数的完整方法,并结合批处理脚本实现自动化文件清理。这些操作适用于 Windows 系统的网络防护和自动化安装场景,需根据实际需求调整参数并确保权限合规。