为什么不推荐在移动设备上使用hosts

首先需要介绍一些SSL/TLS的知识。当你以https的方式访问某个域名时,客户端(浏览器、App等)会向服务器请求证书,这时服务器会返回与域名一样的证书验证连接 比如你访问 www.google.com ,则返回 www.google.com 的证书来进行验证,验证通过之后才客户端才会继续建立加密连接

如果你访问 www.google.com ,而服务器给你返回 *.googleusercontent.com 的证书,那么只要是个客户端都不会继续建立连接了(360这种无视证书错误的奇葩除外)。

一般来说,一个IP的一个端口只能使用一个证书,而网站却可以有无限多个,如果是这样的话IP枯竭会提前到来的。聪明的人们想到了一个方法来改变现状:服务器名称指示(SNI)——在建立SSL握手请求时的加一个Host信息来标记要访问的域名,以便服务器解析Host信息后返回了正确的证书,这让一个 IP地址一个端口 得以使用 多个证书 。这也正是为什么可以在hosts里大量使用同一IP的原因。

当然,这需要服务端和客户端同时支持SNI。如果服务器支持了SNI而客户端不支持SNI,那么 以上技术均是白瞎 ,依旧只能获取到默认的证书,当证书错误时就不会继续建立SSL握手连接了。

以下是支持SNI的浏览器

Internet Explorer 8 及以上 (XP SP2及以下均不支持,SP3需安装补丁
Internet Explorer 7 及以上 (Vista或更高级的系统)
Mozilla Firefox 2.0 及以上
Opera 8.0 及以上 (the TLS 1.1 protocol must be enabled)
Google Chrome 6.0 及以上
Safari 3.0 及以上 (Mac OS X 10.5.6 以上)
MobileSafari(iOS 4.0以上)
Android 自带的浏览器 (Android 3.0 以上)


接下来回到正题,为什么不推荐在移动端使用hosts呢,这就和上面提及的SNI 有关了。咱们举个简单的例子吧

原本你使用V. P恩可以在 GooglePlay 上下载App,但修改hosts之后不但不能下App,连预览图都无法加载了,就算再用V. P恩也无法正常工作

这是因为GooglePlay这个App不支持SNI,应用预览图的地址是

lh*.googleusercontent.com

因为封锁太紧的原因,无法找到默认证书为 *.googleusercontent.com (泛域名) 的IP,在修改hosts后因为证书错误的原因,应用便无法正常加载图片。

嗯,这就是hosts的局限性所在了,如果你只是使用Web服务的话,可以无视这篇文章,如果你需要使用各种Google服务(例如play﹑hangouts)的话,那么不推荐使用hosts这种方法。

 

本文转自:思起

原创文章,作者:老D,如若转载,请注明出处:https://laod.cn/1431.html

(0)
上一篇 2016-01-07
下一篇 2016-01-08

相关推荐

发表回复

登录后才能评论

评论列表(48条)

  • 包子
    包子 2017-05-28 18:21

    play商店好像支持sni了,最近我一直都可以直接下载应用

  • Borot
    Borot 2017-05-11 09:46

    应该把最后一段话放在前面——嗯,这就是hosts的局限性所在了,如果你只是使用Web服务的话,可以无视这篇文章,如果你需要使用各种Google服务(例如play﹑hangouts)的话,那么不推荐使用hosts这种方法。——比较好

  • Cazaea
    Cazaea 2017-02-24 09:12

    219.76.4.4
    219.76.4.3
    61.91.161.217
    Google的IP到底用哪个好?

  • AC
    AC 2016-11-20 15:39

    好用

  • CrazyYan
    CrazyYan 2016-10-14 15:01

    我改了host之后play也能看,googlenow也能用,ins,youtube都可以用。就是不可以在play下载,可是如果是chrome下载却又可以,总的来说,除了play不可以下载之后其他google服务一切正常。。。

    • 丶zh
      丶zh 2016-11-03 22:51

      @CrazyYan请教一个问题,刷了第三方rom,然后挂host可以在play商店下载应用;用官方rom挂同样的host却不能下载。这是什么情况。。。

    • Cazaea
      Cazaea 2017-02-21 17:24

      @CrazyYanplay 游戏能登陆吗?
      我的账号怎么登陆不了呢?

  • 薛慕白
    薛慕白 2016-09-06 20:27

    google play确实可用,有些机器可能不行吧,大家可以试一下,反正也没有什么损失

    • 薛慕白
      薛慕白 2016-09-06 20:43

      @薛慕白坑了,能浏览应用,就是下载不了,不过挂V@PN可以下载

    • 823422841@qq.com
      823422841@qq.com 2016-10-06 23:06

      @薛慕白还有就是能访问youtube,去看不了视频,连接上V@PN就能看了

    • Stolen Potato
      Stolen Potato 2017-01-17 09:53

      @823422841@qq.com原因很简单,你无法把所有跟Google相关的域名用Hosts重定向。

  • abcsy619
    abcsy619 2016-07-13 03:06

    其实是可以的。只不过需要正确的谷歌IP,而这IP比较难找而已。

  • 就发
    就发 2016-07-05 15:39

    表示用hosts 使用ok google可以识别我的声音但是 紧接着搜索会提示离线

  • z1293
    z1293 2016-05-26 10:36

    虽然用 Hosts 之后,Google Play 不能下载应用(浏览应用还是可以的),youtube 不能看视频,但是挂了 V@PN 之后就可以了。
    只是 Google Play Games 这个玩意儿,修改 Hosts 之后无论挂不挂 V@PN 都连不上(改回来又能上了)。
    ……大不了不用。

  • laodfans
    laodfans 2016-04-30 08:22

    web服务不是网页服务吗?我用手机hosts可以登录Twitter客户端啊,安全吗,老D

  • 超
    2016-03-22 13:54

    刀哥,我手机上用了hosts了,但是只能在数据流量上网时才能登陆google,用WiFi的时候却不能,这是为什么?

    • 大头
      大头 2016-07-08 10:36

      @超我正好反过来啊,流量的时候就不行了,这是什么原因?

  • 萧罔兹
    萧罔兹 2016-03-18 20:57

    顺便求问一下通过路由器自定义hosts的可以使用谷歌框架那些的么

  • 萧罔兹
    萧罔兹 2016-03-18 20:54

    老D,我是小白,可以请教一下你说的这种情况适用于通过路由器(极路由自定义hosts)上网的手机吗

    • 老D
      老D 2016-03-18 21:00

      @萧罔兹应该可以,你试试

    • jason
      jason 2017-02-14 08:49

      @老D我在自己的mac搭建的dns服务器,有些域名默认使用hosts配置,google的所有访问都正常,唯独不能在google play理下载或更新app,有什么解决办法吗?

  • AZ
    AZ 2016-03-09 22:58

    127v2已被百度云识别为不安全内容,估计是被盯上了

    • 老D
      老D 2016-03-09 23:10

      @AZ百度还是google浏览器?

  • 杨孟之
    杨孟之 2016-02-22 23:44

    话说,我用老D的hosts可以上谷歌play下载东西什么情况?

    • 一个游客
      一个游客 2016-02-23 01:10

      @杨孟之有时候可以,有时候不行

  • eizis
    eizis 2016-02-06 14:13

    涨姿势

  • why
    why 2016-01-22 17:32

    我今天发现老D的hosts不能用了,原来的,更新后发现还是不行,是不是又被封了,太快了吧

  • 刘安邦
    刘安邦 2016-01-21 22:27

    代理当然可以,但是我最近也在找hsots和代理同时生效的方法,最近比较纠结家里的网,代理会直接绕过hosts···

  • cyp0633
    cyp0633 2016-01-17 19:19

    表示play商店也能行啊

  • nokiben
    nokiben 2016-01-17 10:43

    原来如此,了解。那有些需要google服务的游戏是不是也会受此影响?

    • 刘安邦
      刘安邦 2016-01-21 22:24

      @nokiben不会的,这个我已经试验了,你登陆游戏的时候会即时更新你的用户等级和成就

  • jtcaty
    jtcaty 2016-01-14 19:51

    手机moto G用host, 网页能上, play上不了的,不过我并不怎么用play
    另外原先连不上gg只能待机2天, 现在5天了还乘35%电

  • Google
    Google 2016-01-12 21:19

    除此之外,那几个play商店的ggc早就被翔了,改hosts也没用

  • 可儿
    可儿 2016-01-11 23:44

    昨晚和哥们喝多了,各自回家。她妈妈半夜两点多打电话给我说我哥们现在还没回去。给我吓坏了,一通找。最后发现在他家小区花坛里睡着,衣服裤子和鞋整齐的放着,就穿个花裤衩,还把手机充电线插土里。

  • 黑色~最低调的奢华^-^
    黑色~最低调的奢华^-^ 2016-01-11 01:30

    怎样注册

  • A_of_All
    A_of_All 2016-01-10 00:09

    再次提醒转载请注明来源,虽然说我把文发到了hosts的Wiki但不代表这可以不注明来源。

    • 老D
      老D 2016-01-10 01:15

      @A_of_All写了的,你注意看

    • 老D
      老D 2016-01-10 01:18

      @A_of_All本文参考/转载自:本文转自:瞬间少年
      但是主题功能好像没有超级连接,明天我有时间直接贴在底下

  • lol
    lol 2016-01-09 21:15

    [给力]

  • Dale
    Dale 2016-01-09 09:36

    ios呢?

  • 领导你好黑
    领导你好黑 2016-01-08 22:08

    博主在移动端有其他方法吗,GooglePlay上不去在后台一直耗我的电,有点麻烦。 烦请赐教。

  • 阿桂
    阿桂 2016-01-08 13:50

    [给力]