Post
Windows防火墙配置与自动化脚本实战
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命令实现自动化清理,常用于安装前的环境准备。
使用方法
防火墙规则配置
-
封禁入站 IP
netsh advfirewall firewall add rule name="Block_IP" dir=in action=block protocol=TCP remoteip=192.168.1.100- 替换
{name}为规则名称,{remote_ip}为需封禁的 IP。
- 替换
-
封禁出站 IP
netsh advfirewall firewall add rule name="Block_Out_IP" dir=out action=block protocol=TCP remoteip=192.168.1.200 -
封禁入站端口
netsh advfirewall firewall add rule name="Block_Port_80" dir=in action=block protocol=TCP localport=80localport指定本地监听端口(如 HTTP 服务端口 80)。
-
封禁出站端口
netsh advfirewall firewall add rule name="Block_Out_Port_3389" dir=out action=block protocol=TCP remoteport=3389remoteport指定远程目标端口(如 RDP 端口 3389)。
-
查看所有规则
netsh advfirewall firewall show rule name=all -
调整 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 文件不存在。
)
- 适用场景:自动化安装前清理残留文件,确保环境干净。
注意事项
- 权限要求:
netsh命令需以管理员身份运行,否则可能提示权限不足。 - 网络适配器名称:
set subinterface命令中的网络名称需与系统实际名称一致,可通过netsh interface ipv4 show subinterface查询。 - 脚本路径:批处理脚本中的文件路径需根据实际安装环境调整,避免误删系统关键文件。
- 规则冲突:若存在同名规则,
add rule命令可能覆盖原有配置,建议通过show rule先检查规则列表。
总结
本文提供了通过 netsh 命令配置 Windows 防火墙规则及 MTU 参数的完整方法,并结合批处理脚本实现自动化文件清理。这些操作适用于 Windows 系统的网络防护和自动化安装场景,需根据实际需求调整参数并确保权限合规。