WSEACCES绑定到Windows Server 2008上的套接字时出错



我有一台windows server 2008机器,在该机器上,我无法绑定到特定高端口范围的套接字,而不会收到错误10013(WSAEACCES)。特别是,我无法绑定到62788-64764端口,这很不方便,因为我正在尝试启动一个配置为在该范围内的端口上运行的服务,而且我无法更改该配置。该进程是从具有管理员权限的cmd窗口启动的-

为什么我不能绑定到这些端口号?

我已经尝试了所有显而易见的东西:

Netstat-a不显示任何进程在这些端口上侦听。

使用netsh int ipv4 show excludedportrange protocol=tcp,我验证了在这个范围内没有任何被排除的端口:

起始端口结束端口------------------80 80443 4438172 817247001 47001

这台机器正在运行DNS服务器,所以我将DNS SocketPoolSize设置为零,但这不起作用。(我甚至关闭了服务器,但这也无济于事)。

我已经重新启动(并踢了)机器好几次了,我已经重置了winsock目录(netsh winsock reset)。

肯定还有其他一些我缺少的配置设置;有什么想法吗?

更新:我发现关闭Windows服务"Internet连接共享"可以让问题消失,尽管我仍然不清楚该服务为什么会锁定这些特定端口

我想启用ICS后,隐藏NAT也会启用(内部IP隐藏在单个或多个外部IP后面)。这意味着服务器将需要重写去往互联网的客户端的源IP和源端口,以避免源端口冲突。因此,隐藏NAT网关通常在较高区域(>端口50000)中为其保留一个端口范围。因此ICS可能会为NAT端口阻塞一系列高端口。

这就是为什么服务器应用程序应该保持在端口的低/特权范围内(即<1024)

最新更新