window开启防火墙限定IP访问

Windows 防火墙(Windows Defender Firewall)开启后,可以支持基于 IP 地址的访问限制,通过“高级安全 Windows Defender 防火墙”来设置 IP 限制访问。


限制指定 IP 访问某端口或程序(以入站规则为例)图形化操作

1. 打开防火墙高级设置

  • 打开“控制面板” → “系统和安全” → “Windows Defender 防火墙”
  • 左侧点击 “高级设置”(会打开“高级安全 Windows 防火墙”窗口)

2. 创建新规则

  • 点击左侧“入站规则”
  • 右侧点击“新建规则”

3. 选择规则类型

  • 选择“端口”或“程序”,点击“下一步”

    • 选择端口:限制某个端口的访问(例如:80、443、3306)
    • 选择程序:限制某个程序(如某个服务)

4. 选择协议和端口

  • 例如 TCP,指定端口号(如 3389)

5. 选择“允许连接”或“阻止连接”

  • 根据你的需求选择:

    • 允许连接:只允许指定 IP 通信
    • 阻止连接:禁止指定 IP 通信

6. 选择配置文件

  • 根据需求勾选 “域”、“专用”、“公用”

7. 命名规则

  • 设置一个易于识别的名称,比如 “仅允许 192.168.1.100 访问端口 3389”

8. 编辑作用的 IP 地址

  • 在规则创建完后,双击该规则 → 切换到 “范围” 标签页

  • 在“远程 IP 地址”中:

    • 选择“这些 IP 地址”
    • 点击“添加” → 输入允许或拒绝的 IP 地址(支持 CIDR,如 192.168.1.0/24

PowerShell 实现IP限制访问

例如允许某个 IP 访问本机的 80 端口:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 单IP限制访问
New-NetFirewallRule -DisplayName "Allow HTTP from 192.168.1.100" `
-Direction Inbound -Action Allow -Protocol TCP -LocalPort 80 `
-RemoteAddress 192.168.1.100


New-NetFirewallRule -DisplayName "Allow_HTTP_192.168.1.100" `
-Direction Inbound -Action Allow -Protocol TCP `
-LocalPort 80 -RemoteAddress 192.168.1.100 `
-Profile Any

# 多IP限制访问
New-NetFirewallRule -DisplayName "Allow_HTTP_Specific_IPs" `
-Direction Inbound -Action Allow -Protocol TCP -LocalPort 80 `
-RemoteAddress 192.168.1.100,192.168.1.101,10.0.0.0/24 `
-Profile Any

查看现有规则

1
Get-NetFirewallRule | Where-Object {$_.DisplayName -like "*Allow_HTTP*"}

5b36820f1d6f264def21619e90048dd5.png

开启 Windows 防火墙(使用命令)

CMD 命令(管理员运行):

1
netsh advfirewall set allprofiles state on

这个命令会开启所有防火墙配置文件(域、专用、公用)。

allprofiles 表示开启所有配置文件(域、专用、公用)

若你只想开启某一类网络,可以用:

1
2
3
netsh advfirewall set domainprofile state on
netsh advfirewall set privateprofile state on
netsh advfirewall set publicprofile state on

查看当前防火墙状态(可选)

1
netsh advfirewall show allprofiles

删除规则(可选)

1
netsh advfirewall firewall delete rule name="Allow_HTTP_192.168.1.100"