win防火墙
防火墙
阻住某些IP访问
手动配置(适用于少量IP)
需要阻止其中一两个IP,可以参考以下步骤手动添加:
- Win+R 输入
wf.msc打开「高级安全 Windows 防火墙」或 在Windows搜索栏输入 高级安全Windows防火墙 并以 管理员身份 打开。 - 在左侧菜单中,右键点击 “入站规则”,然后选择 “新建规则…”。
- 在向导中,选择 自定义 规则类型,点击 “下一步”。
- 在程序页面,选择 所有程序,点击 “下一步”。
- 在协议和端口页面,保持默认的 任何,点击 “下一步”。
- 在“作用域”页面,**此规则应用于哪些远程IP地址?**勾选 下列IP地址,然后点击 添加…,每次只能添加一个IP或者网段,会有示例提示。
- 在弹出窗口中,输入您要阻止的 单个IP(如 192.168.1.100)或 CIDR格式的网段(如 192.168.1.0/24),点击 “确定” 后继续下一步。
- 在“操作”页面,选择 “阻止连接”,点击 “下一步”。
- 在“配置文件”页面,建议 全部勾选(域、专用、公用),以确保规则在所有网络环境下生效。
- 最后,为规则命名(例如 Block-192.168.1.100),点击 “完成”。
一键式PowerShell脚本(推荐)
- 创建脚本文件:新建一个文本文档,将以下代码完整复制进去。
- 保存并重命名:将文件另存为
拦截所有已公开的扫描探测IP黑名单.ps1(请确保文件扩展名是.ps1)。 - 以管理员身份运行:右键点击该
.ps1文件,选择 “使用PowerShell运行” 或 “以管理员身份运行”,或者直接把内容复制到管理员PowerShell中运行
提示:在使用ps1文件操作时候,可能会弹出PowerShell 的确认提示 [Y] 是(Y) [A] 全是(A) [N] 否(N) 只识别英文半角字符,点击这里解决方案
在中文 Windows 环境下,PowerShell 的确认提示只识别英文半角字符,你需要:
切换输入法到英文模式、直接按键盘上的 Y 键,如果提示不可以按下shift,再按键盘Y
如果要去掉这些交互打开 PowerShell(普通用户权限即可)。复制并粘贴以下命令,然后按回车执行:
1 | Set-ExecutionPolicy RemoteSigned -Scope CurrentUser -Force |
执行后,不会弹出任何询问窗口,策略会立即生效。
验证是否成功
执行完上述命令后,可以运行以下命令来确认:
1 | Get-ExecutionPolicy -List |
1 | Scope ExecutionPolicy |
恢复交互
1 | Set-ExecutionPolicy RemoteSigned -Scope CurrentUser |
1 | $ipsToBlock = @( |
脚本说明:
此脚本会创建一条名为 拦截所有已公开的扫描探测IP黑名单 的入站规则,阻止来自上述所有IP和网段的连接。
如果您需要更新规则(例如IP列表有增减),只需修改脚本中的$ipsToBlock数组并重新运行,它会自动覆盖旧的规则。
重点:该脚本保存时候,使用字符集编码格式使用GB2312编码 或者使用ANSI编码保存,否则可能无法添加,测试过可以的编码
验证规则是否生效
查看规则的基本信息和状态
1 | Get-NetFirewallRule -DisplayName "拦截所有已公开的扫描探测IP黑名单" | Format-List * |
查看规则中具体包含的IP地址列表(远程地址)
1 | Get-NetFirewallRule -DisplayName "拦截所有已公开的扫描探测IP黑名单" | Get-NetFirewallAddressFilter | Select-Object -ExpandProperty RemoteAddress |
暂时禁用或永久删除该规则
暂时禁用规则
1 | Disable-NetFirewallRule -DisplayName "拦截所有已公开的扫描探测IP黑名单" |
重新启用规则
1 | Enable-NetFirewallRule -DisplayName "拦截所有已公开的扫描探测IP黑名单" |
永久删除规则
1 | Remove-NetFirewallRule -DisplayName "拦截所有已公开的扫描探测IP黑名单" -Confirm:$false |
IPBan
下载IPBan点击此按钮 点击下载IPBan