即使存在 ALLOW 规则,Windows 防火墙也会丢弃数据包

Sta*_*ams 4 windows-firewall windows-10

可以使用以下命令查看针对端口 9000 的唯一规则;

C:\>netsh advfirewall firewall show rule name=all | grep 9000 -B 10 -A 3

Rule Name:                            MyRule
----------------------------------------------------------------------
Enabled:                              Yes
Direction:                            In
Profiles:                             Domain,Private,Public
Grouping:
LocalIP:                              Any
RemoteIP:                             Any
Protocol:                             TCP
LocalPort:                            9000
RemotePort:                           Any
Edge traversal:                       No
Action:                               Allow
Run Code Online (Sandbox Code Playgroud)

然而,Windows 防火墙仍然会丢弃来自该端口的数据包,如日志中所示;

2017-01-17 19:34:31 DROP TCP 192.168.2.10 192.168.2.20 46793 9000 60 S 2693136347 0 29200 - - - RECEIVE
2017-01-17 19:41:34 DROP TCP 192.168.2.10 192.168.2.20 46813 9000 60 S 4150828470 0 29200 - - - RECEIVE
Run Code Online (Sandbox Code Playgroud)

可能是在上次 Windows 10 更新后发生的?我还能做什么来解决这个问题?

Ove*_*ind 7

您之前肯定有一条拒绝某些内容的规则(例如 IP 本身)。检查完整的规则列表,并将您的端口规则放在顶部,以便它在任何拒绝规则之前被命中。对于 Windows 防火墙,阻止规则会覆盖允许规则,因此如果某项既允许又阻止的规则将会被阻止。确保不是。

  • 在本例中,存在针对覆盖所有端口的程序的阻止规则。该程序是node.js,它正在监听端口。不知道这个规则是怎么来的。 (2认同)