Android 5/6/7/7.1.x 去除网络感叹号方法

貌似自从Android 5.0 Lollipop开始,Google就增加了一个Portal Server门户服务器的连通性测试,大意是为了在连接到需要验证的Public Wi-Fi时,能根据连通测试的情况自动弹出Wi-Fi登陆提示页面,但是默认的地址是 [国内不存在的] gstatic.com 的,鉴于国内的奇葩环境,不管Wi-Fi是不是好的,都会被认为网络是不通的显示一个感叹号提示(Android 7.0 Nougat改成了小叉叉)……

注意:本文提到的方法都无需root,但是需要adb工具并开启开发者选项。

Android 5.0 Lollipop & Android 6.0 Marshmallow的解决方法

在Android 5.0 Lollipop & Android 6.0 Marshmallow时,根据小狐狸分析,可以用以下两个方法解决

  • 方法一:直接禁用Portal Server的连通性测试
  • 在开启了开发者选项的情况下,连接电脑,安装最新版的adb工具,然后执行以下命令:

    然后飞行模式一下,就没有了,但是有个弊端,就是如果你连接公共Wifi需要验证的时候,会发现不会自动弹出验证网页,需要自己打开浏览器访问任意网页才行。

  • 方法二:更改默认的Portal Server地址
  • 网上有一些热心人士提供了在国内可正常连接的Portal Server,包括小狐狸v2exg.cn等,我个人比较喜欢g.cn的,同样在adb下输入以下命令可以达到修改Portal Server的目的:

方法二我一直都在用,但是直到Android 7 Nougat这个办法就失效了……如果你用了方法一,应该不用往下看,以下都是基于方法二的调整。

Android 7.0 Nougat的解决方法

这个时候,之前的方法失效了,于是遍寻网上,后来有人发现是验证方法改成HTTPS了,而之前是HTTP的,于是热心人士的服务器纷纷失效了,因此v2ex还升级了之前提供的服务,开出了一个子域名专门做Portal Server,并同时提供HTTP和HTTPS两种连接方式。同样可用的热心人士服务器有Google.cn …… 如果你之前用的就是v2ex的,那么在v2升级后,你就检测就会恢复了,不需要再修改设置。

在Android 7 Nougat仍然可以通过禁用检测的方式来解决这个问题,但我更喜欢无损解决,所以,把上面方法二的服务器换一下就行:

Android 7.1.x Nougat的解决方法

到这个版本,不知道为什么HTTPS的服务器也歇菜了,真是命运多舛,我的Nexus 5X根本就不想unlock和root,所以继续找办法,直到有人发现这次不管怎么改,都会连接到 gstatic.com 这个米上面,于是开始有人通过改hosts的方法来解决,但是我不想root……

于是刚才又找到一个方法,这次需要直接修改Portal Server的URL了……因为不会在末尾自动加 /generate_204 了……

请执行以下命令

目前来看,我刚升级到7.1.1的Nexus 5x是解决了这个问题了,不知道下次版本升级又会发生什么……

以上的操作,如果要恢复出厂原始设置,可以执行以下命令:

P.S:个人极力推荐有各种科学上网需求的童鞋,完全可以买一个Google Project Fi的SIM卡来日常用,天然科学上网,自带米国手机号,无障碍平滑激活Google Now/Location等服务,等有空写写Fi的使用体会。

-EOF-

——————–
引用参考:

  1. 狐狸的小小窝:关于 android 5.0 网络图标上的感叹号及其解决办法
  2. V2EX:关于 V2EX 提供的 Android Captive Portal Server 地址的更新
  3. V2EX:关于 Android 7.0 的 global captive_server_use_https 设置的默认值
  4. V2EX:可否加入 generate_204 ,方便 Android L 消除叹号。
  5. 私家折腾笔记:Android 7.1.1 去除网络叉号

可信的公用DNS

从Mr. 21博客里面为数不多的几篇关于Hosts文件应用的文章(《DropBox》、《BlogBus被封应急方案》等)来看,我们的网络是充满刺激和不明真相的,随时都不知道自己访问的网站到底存不存在,也不太敢确定自己看到的是不是真的,于是我们需要一些手段来解决,其中之一就是使用可信的公用DNS(Public DNS)

下面列举目前网上流行的比较可靠的三个DNS,使用哪个,看个人爱好了:

  • Google Public DNS
  • Open DNS
  • Norton DNS
  • | 8.8.8.8 / 8.8.4.4
    | 208.67.222.222 / 208.67.220.220
    | 198.153.192.1 / 198.153.194.1

但是,我们知道另外有种方式叫“DNS污染”,就是在你获得电脑获取正确的域名解析结果前,墙先把一个假的结果反馈给你,于是电脑便会忽略了那个来得比较慢的正确结果,也就说,我们单纯使用一些可信的公用DNS还是不够的,于是还需要一些修改过的小程序来解决这样的问题。

    程序名称:Anti Dns Pollution
    程序作者:Ying David ( http://www.google.com/profiles/lehui99 )
    开发语言:JAVA
    授权方式:开源
    下载地址:http://www.williamlong.info/archives/2184.html

    下面说一下这个小程序的具体工作流程:首先程序启动后,会从文本文件dnsfilter.properties中读取配制,然后去一个不存在的DNS服务器——但这个IP地址却是国外的——中进行DNS查询被劫持的域名,然后返回的IP地址就是被劫持的IP,被记录下来,之后正常的DNS查询中,就自动把这些IP地址过滤了。这个程序以后会不定期更新,或许也会出.NET版本,请在我的Google Reader上关注更新。

    对于高级用户,可以手动用文本编辑器修改配置文件dnsfilter.properties:

      BindToIP:小程序启动后作为DNS服务期绑定53端口,这里指定绑定的IP地址
      DnsServer:国外的DNS服务器,可以设置为OpenDNS或Google DNS服务器的IP地址
      ResponseTimeout:DNS查询返回超时的时间(毫秒)
      TestDnsServer:测试DNS服务器,请指定一个不存在的DNS服务期,但要求IP是国外的
      TestRespTimeout:测试DNS服务器的查询返回超时时间(毫秒),也就是DNS劫持的旁路回复超时时间
      TestCount:测试DNS服务器的次数,为了得到所有被劫持的IP地址,需要一定的测试次数
      小程序的执行文件和源代码在同一个压缩包内,请点上面的链接下载(含源代码)。

好吧,看到这里,基本上应该是可以保持一个稍微正常的网络使用环境了。

部分内容引用自:

DropBox

多的不用说,你明白的。

Windows,使用记事本(WinXP以上,请找到“记事本”然后右键,用管理员方式运行),然后选择“文件->打开”,输入

Unix/Linux,请打开Terminal(终端),输入

苹果Mac OS X,打开“实用工具”,点击“终端”,输入

然后,在你打开的文件的最末尾,输入下面一行,可以暂时解决这个问题

目前暂时发现的替代品,按我的条件筛选 - 需要满足Mac OS X和Windows之间跨平台,有以下服务:

SpiderOAK – http://spideroak.com – 行规免费2G,我喜欢这样风格的Page,且支持众多Linux发行版。
MozyHome – https://mozy.com/home/free – 行规免费2G,据说跟大佬EMC有一腿,上传速度不错。
SugarSync – https://www.sugarsync.com – 行规免费2G,跨平台跨到手机上去了……

以上链接均不包含推介,原汁原味,放心点击。Btw, idrive.com的服务慎用,跨平台的同时,连帐号都是分立的。

这是一个跟互联网作对的国度。

延伸阅读:
Dropbox无法访问》 - 月光博客
纪念Dropbox君》 - 月光博客

百度应急访问解析

新闻早报,据说百度被攻陷了,NS被攻陷了。好吧,又是Hosts了。

请打开记事本或者新建一个文本文档,然后复制以下内容进去

然后,文件->另存为保存类型为“所有文件”,起名baidu.cmd
然后,Win2000/XP可以双击baidu.cmd使用,WinVista/7请文件上右键选择“以管理员身份运行”,
运行完即可。

然后是,老卫说我最近改Hosts改上瘾了……
以下部分是笑话,请参考~

RT @lengxiaohua: 百度被黑的真正原因是:伊朗圣战军的新任领袖阿卜杜.阿卜杜拉(abaidu.abaidula)看百度不爽,犯了名讳:)

RT @Showfom: Baidu公司注册于英属开曼群岛,Baidu的创始人李彦宏持有美国绿卡,Baidu启动的资金是美国的风险投资,现在美资在Baidu中占有51%以上的份额,所以百度是一家地地道道的美资公司。所以伊朗人才不惜代价干掉了百度。