操作系统:Win Server 2008 RC2 Windows防火墙开启(关闭时无效果)
我突然被一个问题困扰,通过搜索我找不到任何类似的问题。
我运行了大约 20 个游戏服务器,这些服务器绑定到 UDP 端口,然后绑定到 UDP 端口上方的 TCP 端口 1。突然,一天前,新的 TCP 绑定停止了工作。
现在,我已经确认其他应用程序无法监听大多数端口。例如,我有一个我复制的 java 程序,并尝试了以下端口:33001、23789、89……完全随机的端口。
对于已经绑定 TCP 的应用程序(例如 HTTP 和 MySQL),我发现只有端口 8080 可以工作,而且仅适用于 Apache。如果应用程序保留其默认端口,则无法绑定,但是当端口为默认端口时,它们会恢复正常。
我已经通过 netstat 和 curports 检查了监听应用程序,还检查了这些端口上的任何连接,它们完全是免费的。
答案1
您的服务器可能用完了临时端口。
您可以在事件查看器(运行 -> eventvwr.msc)。查找以下警告:系统与协议编号:4227, 4231从TCP/IP源。如果看到任何内容,则需要重新启动服务器并通过注册表调整 TCP/IP 协议 -Windows Server 2012 R2 耗尽临时端口,尽管它不应该如此
答案2
也许您的程序已列入防火墙的例外列表中,但该列表已被删除。
我也遇到过这样的情况二安装了防火墙,你需要配置它们两个都正确。这导致了一些头发被拉扯。
答案3
您是否尝试过启动 Windows 防火墙服务,然后从 Windows 防火墙界面启动/停止它?
单击开始,单击搜索;搜索“具有高级安全性的 Windows 防火墙”
Windows 7 和 2008R2 存在必须启动后台服务的问题,无论您想用防火墙做什么。
答案4
如果您正在使用 Hyper-V 之类的服务,则可能是由于“排除的端口范围“。在这种情况下,一系列端口将不可用。
您可以通过以下方式验证
PS ~> netsh interface ipv4 show excludedportrange protocol=tcp
Protocol tcp Port Exclusion Ranges
Start Port End Port
---------- --------
5357 5357
5985 5985
47001 47001
50000 50059 *
如果您的端口在上述范围内,则任何绑定它们的方法都将失败。根据超级用户的回答,你可以尝试通过以下方式释放它
net stop winnat
要保留您自己的端口,您可以使用
netsh int ipv4 add excludedportrange protocol=tcp startport=50323 numberofports=1