解决服务器80端口监听异常导致无法打开和访问网站的问题

如果遇到IIS服务器的网站无法访问,并在IE/EDGE浏览器中显示无法显示此页的问题,一般情况下是有多种可能因素,我遇到的情况是由于服务器网络配置错误,造成系统没有正确监听公网IP和80端口,因为这样才导致了IIS服务器根本没办法与公网连接!

我排查了各种可能存在的因素:包括防火墙配置,网络被运营商封堵,WEB服务器配置错误等。另外我还和域名商确定过域名解析是没问题的,网站也成功备案,IIS上也对域名进行了绑定。

后面在阿里云后台提交了工单,和他们的售后工程师沟通后,才找出是自己服务器的IP和端口监听配置错误。具体的症状如下,在IIS中如果不设置绑定的域名主机和IP,使用默认的localhost或127.0.0.1可以正常打开网站,如果使用公网IP和域名绑定,就无法打开网站!

关于这个问题各个浏览器提示大体有这几种:

  1. 无法显示此页。确保WEB地址正确
  2. 网络连接错误
  3. ERR_CONNECTION_TIMED_OUT,响应时间过长,导致无法加载网页,该网站可能已崩溃。
  4. 连接超时,此站点暂时不可用或者太忙。请稍后再试。

浏览器无法访问网站截图


解决方法是使用NetSH(Windows的网络配置命令行工具),修改正确的监听端口和IP地址。具体操作步骤如下:

首先打开CMD命令提示符,可以通过Win+R打开运行窗口后输入cmd,在cmd中输入命令:

netstat -ano | findstr 80

这条命令主要是用于查看80端口的监听情况,我的情况如下(由于是新服务器,只有一条记录):

只监听本地回环地址导致公网无法访问

这里就是问题所在,80端口只监听本地127.0.0.1的回环地址,也就是公网IP并没有被服务器列入监听(外网无法访问)!正确的应该是0.0.0.0:80,表示80端口被所有IP/网卡监听(内外网地址都可以访问):

0.0.0.0:80表示内外网可访问

那么接下来就要使用netsh命令进行修改了,先在cmd控制台输入:

netsh http show iplisten

检查IP侦听列表

先查看当前IP地址的监听情况,默认的监听列表是空白的,如果有显示出IP地址,就要检测是否设置有误。上图中我的配置就是有问题的,不应该只侦听127的地址!

如果是专业的服务器运维人员,这边根据自己网络环境进行修正就可以。像我这种半桶水的解决方法就是删除掉所有的IP侦听,这样服务器就会默认监听所有的IP。我的情况只要删除只本地回环地址就可以了:

netsh http delete iplisten ipaddress=127.0.0.1

将错误的网络配置修正

其实可以仔细回想下自己是否有运行过netsh http add iplisten命令,这就是问题的根源。删除掉其他的侦听IP后,服务器就会重新侦听所有内外网的IP,最好重启下服务器!重启后网站即可正常访问了。

PS:建议最后再用"netstat -ano | findstr 80"命令和"netsh http show iplisten"命令检查下!



原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/99035.html

(0)
上一篇 2021年8月21日
下一篇 2021年8月21日

相关推荐

发表回复

登录后才能评论