一台服务器,telnet 80 端口可正常访问而浏览器却无法打开网页可能是什么原因?
某台服务器正常运转,无论在任何地方,ping http://xxxx.com 和 telnet http://xxxx.com 80 可以正常访问,在 telnet 下输入 GET /XXX 也可以得到正常的 response。
但是浏览器却打不开 http://xxxx.com 页面。
只有一个例外,远程桌面到服务器后,服务器自己的浏览器可以访问 http://xxxx.com 页面。
操作系统防火墙未开启。
服务器为 Windows Server 2003, Apache 2.2
Apache 的 access log 文件中,可以看到 telnet 的访问记录,但是没有浏览器的访问记录。
直接通过 IP 也不行,问题和上述一样。
1楼(未知网友)
不用域名,用IP也访问不了,是怎么回事呢?
2楼(未知网友)
我也有同样的问题。你的解决了吗?跟你的问题完全一样。
3楼(未知网友)
提问者自己来回答。
简单说,原因是:网站域名未备案!
我们后来也接触到了很多机房,包括上海张江、电信、阿里云等许多供应商,他们为了保证自己托管的机器上运营的网站没有问题,都会要求网站开发方对域名先进行备案。
这些机房的路由层防火墙会对请求的 HTTP 域名进行检测,如果域名属于未备案状态,则直接 reset connection(重置连接,浏览器直接无法显示)。
因为不同防火墙的采用的技术不同,有的是检测包含诸如 GET 关键字后会 reset,有的间歇性 reset,有的是直接 redirect 到一个提示备案的页面(阿里云就是这样)。所以就会出现 ping 得通,telnet 80 端口可行,但浏览器或 wget 都无法访问的情况。