一个 hosts 问题

2014-09-16 20:27:22 +08:00
 findwho
系统win7 sp1 X64

网站不能访问,但是能够ping通,然后访问IP也是能访问的

但是把IP加入hosts里,就不能访问了,这是啥原因?

格式
XXX.XXX.XXX.XXX AAA.com
把格式改为
XXX.XXX.XXX.XXX www.AAA.com
也不行
3167 次点击
所在节点    问与答
11 条回复
jacob
2014-09-16 20:33:03 +08:00
域名屏蔽了?
findwho
2014-09-16 20:41:17 +08:00
@jacob
域名肯定是屏蔽了,用ip网站能上,
想加入到hosts中,访问更快一些
niseter
2014-09-16 20:49:18 +08:00
hosts只是解决的域名无法解析到正确IP的问题,但是如果防火墙过滤了Http请求中host字段的内容的话,还是会被拦截的。
findwho
2014-09-16 21:03:01 +08:00
@niseter ip能直接访问是怎么回事呢,能访问到主页,然后站内链接又变为不能访问
比如
aaa.com能访问,但是aaa.com/1 就不能访问
niseter
2014-09-16 21:33:43 +08:00
@findwho 你用IP能访问到主页,是因为浏览器此时发送给服务器发送给服务器的host值是IP地址(XXX.XXX.XXX.XXX),当你点击内页时,是用aaa.com/xxxx来访问的,此时hosts表能读到正确IP,但是浏览器的host值是域名了(aaa.com),如果你的防火墙在此时拦截以“aaa.com”的host字段,连接就会被阻断。

你必须区分你的Hosts和浏览器HTTP请求的host字段。
findwho
2014-09-16 21:35:22 +08:00
@niseter 对啊,我知道啊,所以我加入hosts啊,就是让浏览器直接访问 XXX.XXX.XXX.XXX/a 啊,但是失败了,
niseter
2014-09-16 21:38:02 +08:00
我想已经表述的很清楚了。

你系统设置的HOSTS,只是帮助你在请求一个域名的IP的时候,不用去问DNS。

但是这个和浏览器请求网页的host值没有半毛钱关系。
niseter
2014-09-16 21:43:29 +08:00
我给你了例子做参考:

1.这是我直接用61.135.169.125这个IP访问百度时,浏览器发给百度的host:
Host:61.135.169.125
2.这是我用www.baidu.com这个域名访问百度时,浏览器发给百度的host:
Host:www.baidu.com
3.这是我用61.135.169.125这个IP访问百度http://61.135.169.125/duty/时请求的内容:
Host:61.135.169.125
4.这是我用www.baidu.com这个域名访问百度http://www.baidu.com/duty/时请求的内容:
Host:www.baidu.com

而你在系统中设置的hosts,属于上述2&4情况。
findwho
2014-09-16 21:45:59 +08:00
@niseter 那google,facebook等加了host之后,就能访问,有啥不同么
limuxy
2014-09-17 09:53:21 +08:00
LZ其实是没搞清楚墙有几种不同的方式:
1. 墙IP,那么这个ip你就访问不了了。比如google就属于这种情况
2. 墙域名,那么这个域名无论怎么换IP你都访问不了。比如一些反动网站。不过google,facebook的域名没有被墙,都是墙的IP

LZ碰到的应该是域名被墙了,所以只要GFW检测到你的http header里面有这个域名,就直接reset了,不管你怎么换IP都没用的
luckykong
2014-09-17 14:37:06 +08:00
@limuxy 对于墙域名,除了代理 vpn 还有别的办法么?能不能将域名全替换成IP 避过墙?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/133837

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX