原来在Linux下上Google就这么简单!一直以为各种途径而来的hosts文件只是Windows的专属呢,今天偶然试了下,没想到简单将其拷贝到Linux中也一样发挥作用。可爱的Gmail打开了,Google全都可以打开了,真不错~其实原理很简单,hosts文件跟系统环境无关。如果Windows的hosts文件更新了,定期拷贝一份到Linux则可...
步骤:
1) 备份Linux系统中/etc/hosts文件,假定为:hosts_bk
2) 拷贝Windows下的hosts文件(位于:C:\Windows\System32\drivers\etc)到某处以备编辑。
3) 编辑2)中拷贝出来的文件。(将Linux版本中的hosts里有用的行复制进来放在最上面就行)
4) 将编辑后的文件放到Linux的目录:/etc/ (这里需要注意:/etc/hosts文件不允许直接修改,可以先放到别处,再用sudo cp hosts /etc/hosts就可以覆盖成新文件)
完成!可以打开Google了。
说明:我开始忘记做步骤3),每次执行命令后都提示:sudo: unable to resolve host test-All-Series。后来再hosts中添加上类似下面的重要的2条:
<span style="color:#333333;">127.0.0.1 localhost 127.0.1.1 <span style="font-family:Arial;font-size: 13px; font-weight: normal; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; background-color: transparent;">test-All-Series</span></span> <span style="color:#FF6666;"><span style="background-color: rgb(255, 255, 102);">#这里<span style="font-family:Arial;font-size: 13px; font-weight: normal; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;">test-All-Series</span>是安装时候用户自己设定的主机名。</span></span>
就没这个提示了!
HOSTS工作原理:
我们喜欢某个网站,通常会记下它的域名以便下次访问,因为域名比IP更容易被记住。hosts文件里存放的是一些常用的网站主机的域名和其对应的IP地址,它是用来提高解析效率的。当我们通过浏览器或者ping某个域名时,系统会首先检查本地的hosts文件是否已经有相应的域名与IP地址的映射关系,如果有就会直接采用,如果没有,再向已知的DNS服务器(Domain Name Server)请求进行域名解析完成域名与IP的转换工作。也就是说最终网络上是通过IP来辨认你要访问的目标网站的。
通常,我们访问不了Google、Twitter、Facebook之类的是因为有我们强大的Great FireWall(GFW)进行了DNS劫持和DNS污染。GFW会对DNS的解析过程进行干扰,这会使对某些被干扰的域名返回一个错误的IP地址给你的主机,使你无法正确连接到你要的服务器,或者请求后返回不是原有的数据。当我们直接将 IP放入Hosts文件后,就可以跳过DNS的解析这一步,直接就行IP访问,翻过GFW。
但是,GFW也会对一些“重点”网站进行IP封锁,也就是说,GFW直接拦截带有某个IP头的数据包。所以,假如你更改的某域名对应的那个IP被封锁了,即便你过了DNS这一关,也仍旧不能翻过GFW。
这就是为什么hosts的IP时不时update的原因。
Linux装完后,系统自带的hosts文件内容如下:
127.0.0.1 localhost 127.0.1.1 pangolin # The following lines are desirable for IPv6 capable hosts ::1 ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters