部署在IIS 10的ASP.NET Core应用出现内部错误及端口问题求助
Kestrel监听6000及以上端口时远程无法访问的原因
这个问题我之前排查过,90%的概率是Windows防火墙在搞鬼,剩下的可能是系统端口预留的问题:
1. Windows防火墙未开放对应端口范围
Windows防火墙默认会阻止未被明确允许的入站连接。5000~5999可能因为是ASP.NET Core的常用开发端口,已经被自动添加了防火墙规则,而6000+的端口没被放行。解决方法:
- 打开「Windows Defender防火墙→高级设置→入站规则→新建规则」
- 选择「端口」,输入你需要的端口范围(比如
6000-65535) - 选择「允许连接」,然后应用到你需要的网络环境(域、专用、公网)
- 完成规则创建后,远程再试试访问。
2. 端口被系统预留
Windows会把一些端口预留出来给系统服务使用,你可以用命令查看预留的TCP端口:
netsh int ipv4 show excludedportrange tcp
如果你的6000+端口在这个列表里,哪怕Kestrel显示“已监听”,外部也无法访问。这种情况可以换一个不在预留范围内的端口,或者通过修改注册表来释放预留端口(操作需谨慎,建议先备份注册表)。
3. 其他小概率情况
比如你的应用运行在受限用户下,或者有第三方安全软件拦截了端口,但你5000~5999能正常访问,所以这个可能性很低,可以先排除前面两个原因。
内容的提问来源于stack exchange,提问作者John Lonewolf
相关产品推荐
相关产品推荐

