Azure虚拟机上已托管的https站点无法通过互联网访问
Azure上ASP.NET Core站点公网无法访问的排查步骤
1. 优先核查站点绑定地址
你当前使用的启动命令为sudo dotnet TechKeeper.dll --urls="https://localhost:443",该配置会让站点仅监听虚拟机内部的127.0.0.1回环地址,不会接收来自公网网卡的任何流量,这是最常见的公网访问失败原因。
将启动绑定地址调整为所有网卡,使用如下命令启动:
sudo dotnet TechKeeper.dll --urls="https://0.0.0.0:443"
启动后先在虚拟机内部执行curl https://localhost:443验证本地是否可正常响应,再执行curl https://23.102.114.31:443验证绑定公网地址是否可访问,确认服务本身监听正常后再做外网测试。
2. 核查Azure侧网络配置
- 确认绑定在当前虚拟机网卡/子网层级的网络安全组(NSG)入站规则:源地址需为
任意(0.0.0.0/0),协议为TCP,目标端口为443,优先级高于所有拒绝规则,避免规则配置到未关联的NSG上导致不生效。 - 确认虚拟机公网IP直接绑定在虚拟网卡上,如果链路中存在负载均衡、NAT网关等中间层,需同步检查对应层的端口转发、健康检查规则是否放行443端口流量。
3. 系统侧防火墙排查
- 执行
sudo ufw status确认已添加允许443/tcp入站的规则,若规则存在但仍无法访问,可临时执行sudo ufw disable关闭系统防火墙做对照测试,若关闭后可正常访问则说明UFW规则配置有误,重新调整规则即可。 - 执行
sudo ss -tulpn | grep :443确认端口监听状态:检查443端口的LISTEN进程是否为dotnet程序,绑定地址是否为0.0.0.0或公网IP,避免端口被其他程序占用。
4. 附加检查项
- 确认HTTPS证书配置正常,启动dotnet时无证书加载相关报错,避免因证书校验失败导致监听未正常生效。
- 后续建议将站点配置为systemd托管服务,避免依赖控制台窗口保持运行导致会话断开后站点停止。
内容的提问来源于stack exchange,提问作者Red Wei
相关产品推荐
相关产品推荐

