为什么防火墙会阻止localhost连接?

Mui*_*uis 5 .net sockets firewall tcp socketexception

当我在localhost上侦听端口时,Windows将弹出一个对话框,用户必须将我的程序添加到防火墙例外列表中.这很烦人,并且需要用户可能没有的管理员权限.

为什么Windows会为环回连接(127.0.0.1)执行此操作,是否有一些技巧可以防止这种情况发生?

Mui*_*uis 6

答案是指定:

IPEndPoint localEndPoint = new IPEndPoint(IPAddress.Loopback, Port);
Run Code Online (Sandbox Code Playgroud)

代替

IPEndPoint localEndPoint = new IPEndPoint(IPAddress.Any, Port);
Run Code Online (Sandbox Code Playgroud)

用于监听套接字。乍一看,这似乎可以防止任何防火墙警告,并且不需要向防火墙添加任何规则。但我必须进行一些更广泛的测试,以确保它适用于所有 Windows 配置。

  • 好吧,这表明您的问题是基于错误的假设。您没有在本地主机上监听,而是在“任何”=“0.0.0.0”=所有接口上监听。 (3认同)