You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

请求协助排查IIS服务器80/443端口无法正常开放的问题

请求协助排查IIS服务器80/443端口无法正常开放的问题

先帮你梳理下目前的情况:

  • 已经在路由器完成80/443端口到IIS服务器PC的转发,端口监控显示流量能正确转发到目标PC
  • 远程端口测试工具和局域网内端口扫描工具均显示这两个端口处于关闭状态
  • IIS网站停止时,运行netstat -aon | find /i "listening" |find "80"确认80端口未监听;启动网站后,远程访问域名时端口监控显示80流量已转发,但仍无法正常访问,且Windows防火墙已关闭

下面给你一步步排查的建议,都是实际运维中常用的思路:

1. 先核对IIS网站的绑定配置是否正确

打开IIS管理器,找到你的目标网站,右键选择「编辑绑定」:

  • 检查80端口的HTTP绑定:IP地址尽量选择「全部未分配」,不要只绑定127.0.0.1(否则只有本地能访问),主机名如果有域名的话要填正确,没有就留空
  • 检查443端口的HTTPS绑定:除了IP和主机名,还要确认SSL证书选择的是有效且匹配的证书,没有证书的话HTTPS肯定无法正常监听

2. 确认IIS相关服务正常运行

按Win+R输入services.msc打开服务管理器,检查以下两个核心服务:

  • World Wide Web Publishing Service:必须处于「正在运行」状态,启动类型设为「自动」
  • Windows Process Activation Service:这个是IIS的基础服务,同样要确保运行正常

3. 验证端口监听状态(启动网站后)

启动网站后,重新在命令提示符运行:

netstat -aon | find /i "listening" | findstr ":80 :443"

如果输出里没有显示这两个端口处于LISTENING状态,大概率是端口被其他程序占用了。可以用以下命令排查占用进程:

netstat -aon | findstr ":80"

找到对应的PID后,打开任务管理器(详细信息 tab),根据PID找到进程并关闭(比如可能是Apache、Nginx、迅雷这类程序占用了端口)

4. 本地测试网站可用性

在IIS服务器本地,用浏览器访问http://localhosthttps://localhost

  • 如果本地都打不开,说明问题出在IIS本身或者网站代码上:检查应用程序池是否处于「启动」状态,查看IIS的事件日志(事件查看器 -> Windows日志 -> 应用程序)有没有报错信息,或者网站的物理路径是否正确、权限是否足够

5. 再次确认防火墙/安全软件的影响

虽然你说防火墙已经关闭,但还是建议:

  • 检查Windows Defender防火墙的「高级设置」里,有没有残留的入站规则禁止80/443端口
  • 确认是否有第三方杀毒软件、安全工具的防火墙功能没完全关闭(有些软件即使主程序关了,防火墙模块还在运行)

6. 核对路由器转发的细节

  • 确认转发的目标IP是IIS服务器的静态IP:如果服务器是动态获取IP,可能IP地址变动导致转发失效,建议给服务器设置静态IP或者在路由器里开启DHCP地址保留
  • 有些路由器的端口转发需要开启「端口触发」或者「UPnP」?不过一般普通端口转发就够,但可以检查转发规则是否优先级最高,有没有被其他规则覆盖

7. 排查ISP端口限制

部分家庭宽带运营商会封禁80/443端口,你可以临时测试下:

  • 在IIS里把网站绑定到非标准端口(比如8080、4433)
  • 在路由器上转发对应端口,然后用远程设备访问http://你的域名:8080
  • 如果能正常访问,说明是运营商封禁了80/443端口,这种情况可以联系运营商申请解封,或者用CDN服务中转流量

备注:内容来源于stack exchange,提问作者Docfxit

火山引擎 最新活动