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脚本(推荐)

  1. 创建脚本文件:新建一个文本文档,将以下代码完整复制进去。
  2. 保存并重命名:将文件另存为 拦截所有已公开的扫描探测IP黑名单.ps1(请确保文件扩展名是 .ps1)。
  3. 以管理员身份运行:右键点击该 .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
2
3
4
5
6
7
        Scope ExecutionPolicy
----- ---------------
MachinePolicy Undefined
UserPolicy Undefined
Process Undefined
CurrentUser RemoteSigned
LocalMachine Undefined

恢复交互

1
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
$ipsToBlock = @(
"128.199.8.140", "107.170.65.169", "64.227.110.161", "64.227.109.89", "64.227.108.146",
"64.227.99.138", "45.55.186.92", "45.55.185.224", "45.55.158.168", "45.55.153.86",
"45.55.151.3", "192.241.179.235", "167.99.234.119", "162.243.208.127", "162.243.116.182",
"162.243.114.171", "159.65.219.252", "159.65.216.50", "157.245.245.246", "157.245.243.118",
"195.96.139.0/24", "193.163.125.0/24", "185.247.137.0/24", "87.236.176.0/24", "180.101.245.0/24",
"220.196.160.0/24", "147.185.133.0/24", "216.25.88.0/21", "205.210.31.0/24", "198.235.24.0/24",
"172.105.147.0/24", "162.216.150.0/24", "162.216.149.0/24", "147.185.132.0/23", "144.86.173.0/24",
"35.203.210.0/23", "66.132.224.0/24", "66.132.198.0/24", "66.132.195.0/24", "66.132.186.0/24",
"66.132.180.0/24", "66.132.175.0/24", "66.132.172.0/24", "66.132.159.0/24", "66.132.153.0/24",
"66.132.148.0/24", "206.168.35.0/24", "206.168.34.0/24", "206.168.33.0/24", "206.168.32.0/24",
"167.94.138.0/24", "162.142.125.0/24", "199.45.155.0/24", "199.45.154.0/24", "66.234.1.0/24",
"66.132.255.0/24", "66.132.245.0/24", "66.132.237.0/24", "66.132.233.0/24", "66.132.228.0/24",
"66.132.209.0/24", "167.248.133.0/24", "167.94.146.0/24", "167.94.145.0/24"
)

# 检查并删除已存在的同名规则,确保新规则能生效
$existingRule = Get-NetFirewallRule -DisplayName "拦截所有已公开的扫描探测IP黑名单" -ErrorAction SilentlyContinue
if ($existingRule) {
Remove-NetFirewallRule -DisplayName "拦截所有已公开的扫描探测IP黑名单" -Confirm:$false
}

# 创建新的防火墙规则(包含描述信息)
New-NetFirewallRule -DisplayName "拦截所有已公开的扫描探测IP黑名单" `
-Description "此规则用于拦截Censys、Cortex Xpanse各类已公开的公网扫描探测IP/网段,由安全脚本自动生成于 2026-07-03。" `
-Direction Inbound `
-Action Block `
-RemoteAddress $ipsToBlock

Write-Host "防火墙规则已成功创建,所有列出的扫描IP和网段均已加入阻止列表。" -ForegroundColor Green

脚本说明:
此脚本会创建一条名为 拦截所有已公开的扫描探测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