昨天在一个windows 2003上部署一个web应用,但是访问的时候得到的是无法访问的页面。
具体过程如下:
1、在hosts文件中绑定 127.0.0.1 test.com
2、在IE浏览器中输入http://test.com:8888,页面打开速度很慢,最终得到无法访问的页面
3、在IE浏览器中输入http://127.0.0.1:8888可以访问

解决步骤:
1、127.0.0.1 能访问,但是test.com无法访问,首先想到的是ping test.com,结果是ping没有问题
2、既然ping没有问题,说明底层协议没有问题,在协议中上升到应用 telnet test.com
3、结果是telnet也没有问题,那么确定问题应该是在http访问上了。
4、既然IE无法访问,是否是发起http请求的客户端的问题呢?
5、浏览器换成firefox试一下,ok,http://test.com:8888访问没有问题。
6、那么问题出在哪了呢?为什么IE浏览器在http请求时,域名解析的时候不先访问本地的hosts文件呢?那应该是在域名解析前出了问题,而且一个很明显的现象是在IE里访问http://test.com:8888非常慢,于是大胆的猜测,应该是IE浏览器使用了代理。
7、打开Internet选项-》连接,果然,有人在这设置了代理,所有http请求先发送给了代理服务器。
8、删除代理,打开IE,访问http://test.com:8888,一路畅通,拨开乌云重见天日啊。

总结:
后来细细想了下,对于这类无法访问的网络异常的排查步骤:
1、netstat -an | findstr 8888 或这 netstat -aon | grep 8888 确认服务器上的应用已正常启动,以及是否有客户端与器建立TCP连接,以及连接的状态
2、若第一步中能正常访问,说明问题应该是出现在应用层了,很有可能是客户端的配置问题
3、telnet 访问下,若没有问题,确定是客户端的配置出现了问题。
4、若第一步中出现了问题,首先分析服务端是否正常启动并提供服务了,若服务端未启动,先解决服务端的问题。
5、若服务端已正常启动,说明问题应该是出在了客户端和传输的过程中。
6、ping 是否能ping通(确认域名是否能正常解析,只能查询A类型和CNAME类型的记录,而且只会告诉你域名是否存在)
7、如果ping出现了问题,可以使用nslookup排除是否域名解析的问题
8、域名解析若无问题,那只能是链路出现了问题,那求助网络管理员吧(术业有专攻)