您的位置:首页 > 运维架构 > 网站架构

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

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

  我排查了各种可能存在的因素:包括防火墙配置,网络被运营商封堵,WEB服务器配置错误等。另外我还和域名商确定过域名解析是没问题的,网站也成功备案,IIS上也对域名进行了绑定。后面在阿里云后台提交了工单,和他们的售后工程师沟通后,才找出是自己服务器的IP和端口监听配置错误。具体的症状如下,在IIS中如果不设置绑定的域名主机和IP,使用默认的localhost或127.0.0.1可以正常打开网站,如果使用公网IP和域名绑定,就无法打开网站!关于这个问题各个浏览器提示大体有这几种:

  无法显示此页。确保WEB地址正确

  网络连接错误

  ERR_CONNECTION_TIMED_OUT,响应时间过长,导致无法加载网页,该网站可能已崩溃。

  连接超时,此站点暂时不可用或者太忙。请稍后再试。

  



  解决方法是使用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/网卡监听(内外网地址都可以访问):

  



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

  netsh http show iplisten

  



  先查看当前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"命令检查下!

  版权声明:本文由十有三创作,采用知识共享署名-相同方式共享 4.0 国际许可协议进行许可。欢迎转载本文,转载请务必署名-保留作者名称及出处:http://shiyousan.com/post/636323595672171015。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐