我有一台 Windows Server 2019 Std.,在 Internet 上以监听模式运行 wireguard。家里的另一个 Windows 客户端也运行 wireguard。
我可以从服务器 ping 通客户端,但反过来不行。如果我关闭服务器上的防火墙,客户端也可以 ping 通服务器。
在“高级安全 Windows Defender 防火墙”中,我没有看到任何冲突的阻止规则。我添加了一条允许规则,允许来自任何地方的 ICMPv4 协议的所有内容。这使得服务器可以通过其公共 IP 进行 ping,但通过 wireguard 进行 ping 仍然不起作用。
您知道如何让防火墙接受由 wireguard 创建的适配器上的传入 ICMP 数据包吗?
编辑:配置
wireguard 服务器:
[Interface]
PrivateKey = <priv key srv>
ListenPort = 50001
Address = 172.16.60.1/32
[Peer]
PublicKey = <pub key clt>
AllowedIPs = 172.16.60.2/32
PersistentKeepalive = 5
wireguard 客户端:
[Interface]
PrivateKey = <priv key clt>
Address = 172.16.60.2/32
[Peer]
PublicKey = <pub key srv>
AllowedIPs = 172.16.60.1/32
Endpoint = <pub ip srv>:50001
允许通过 Internet 进行 ping 但不允许通过 wireguard 进行 ping 的防火墙规则:
netsh advfirewall firewall add rule name="ping" protocol=ICMPV4 dir=in action=allow
答案1
找到了!这确实是我第一眼没注意到的一条屏蔽规则:
RDP Defender - Block 172.16.60.2
因此,在某个时候,Windows Defender 显然添加了该规则(我在启用隧道之前查看了阻止规则)。