如何从外部通过域名访问VM中IIS托管的.NET应用
解决外部网络通过域名访问IIS托管.NET应用的问题
1. 先搞定域名解析
- 检查你的域名DNS记录,A记录(或IPv6的AAAA记录)必须指向VM的公网IP,不能是内网IP。
- 用
nslookup 你的域名或者dig 你的域名命令验证解析结果,确认返回的是VM的公网IP地址。
2. 配置防火墙/安全组放行端口
- VM本地防火墙:不管是Windows防火墙还是Linux防火墙,得允许80(HTTP)和443(HTTPS)端口的入站连接。Windows的话,直接打开Windows Defender防火墙,新建入站规则,放行TCP 80、443端口的外部请求。
- 云服务商安全组:如果VM是阿里云、AWS这类云服务的,必须在安全组里添加入站规则,把80、443端口开放给公网访问。
3. 核对IIS站点绑定
- 打开IIS管理器,找到你的.NET应用站点,查看绑定设置:
- 主机名必须填你的域名(比如
www.yourdomain.com),IP地址选全部未分配或者VM的公网IP(如果有多个IP的话)。 - 确认绑定的端口是80或443,别和其他站点冲突。
- 主机名必须填你的域名(比如
4. 处理内网NAT/端口映射(如果VM在内网)
- 如果VM是通过路由器连接公网的内网机器,得在路由器上配置端口映射,把公网IP的80/443端口转发到VM的内网IP对应端口。
- 顺便检查路由器有没有域名过滤功能,有的话得关掉,不然会拦截域名访问。
5. HTTPS证书验证(如果用HTTPS)
- 要是配了HTTPS,得确保证书有效,而且绑定的域名和证书里的域名一致,不然会因为SSL不匹配导致访问失败。
6. 测试网络连通性
- 在外部机器上用
telnet 你的域名 80或者curl -v http://你的域名测试端口能不能通,确认80/443端口是开放的。 - 要是端口不通,先查防火墙和端口转发规则,这俩是最常见的问题。
内容的提问来源于stack exchange,提问作者Mukesh k
相关产品推荐
相关产品推荐

