最近,由于 V2EX 主站部署了全站 SSL ,所以导致了之前的 /generate_204 地址上出现了跳转而无法使用。这是我们在部署这个更改之前没有考虑周到的地方,造成的不便向大家道歉。
因此,我们现在会提供一个专用的 Captive Portal Server 地址,这个地址会按照适合 Android 的方式进行配置,并且不会受到 V2EX 主站安全策略升级的影响。目前互联网上已经有了很多 Captive Portal Server ,如果你已经在使用一个稳定的,那么你是没有必要更改的。我们提供的这个地址只是希望能够让大家可以有多一种选择而已。
captive.v2ex.co
你可以使用 adb 命令行工具这样设置:
adb shell "settings put global captive_portal_server captive.v2ex.co"
adb ( Android Debug Bridge )是一个功能强大的命令行工具,属于 Google 官方的 Android 开发工具之一。你可以使用它来修改 Android 手机的一些核心设置。
如果使用的是 OS X ,那么你可以通过 Homebrew 获取 adb :
brew install android-platform-tools
如果使用使用的是 Windows ,那么可以使用下面这个帖子里提到的快速安装 adb 的工具:
http://forum.xda-developers.com/showthread.php?p=48915118#post48915118
如果你使用的是 Ubuntu/Debian ,那么你可以在添加一个 PPA 包之后,通过 apt-get 获得 adb :
sudo add-apt-repository ppa:phablet-team/tools && sudo apt-get update
sudo apt-get install android-tools-adb android-tools-fastboot
如果你已经完整安装了 Android Studio 的最新版本,那么 adb 命令行工具也可以在 sdk/platform-tools
目录下找到。
你可以把下面的这个地址加入到 $PATH
中:
~/Library/Android/sdk/platform-tools
如果你最近更新到了 Android 7.1.1,那么这个设置的语法稍有改变,请使用下面的指令重新设置:
adb shell "settings put global captive_portal_https_url https://captive.v2ex.co/generate_204";
在 Android 7.1.1 上需要执行两条指令:
adb shell "settings put global captive_portal_http_url http://captive.v2ex.co/generate_204";
adb shell "settings put global captive_portal_https_url https://captive.v2ex.co/generate_204";
1
kyze8439690 2016-09-04 22:02:29 +08:00 4
|
2
dexbol 2016-09-04 22:05:34 +08:00
It works
|
3
BMW 2016-09-04 22:07:49 +08:00 via iPhone
@kyze8439690 👍
|
4
Tink 2016-09-04 22:12:40 +08:00 via iPhone
|
5
mimzy 2016-09-04 22:26:14 +08:00 2
如果你的手机已经 root ,可以安装 JuiceSSH (地址 https://play.google.com/store/apps/details?id=com.sonelli.juicessh 或其他终端) ,选择「本地设备」先执行 su 再执行 settings put global captive_portal_server captive.v2ex.co ,这样就不必安装 adb 了。
|
6
regeditms 2016-09-04 22:30:30 +08:00 via Android
@kyze8439690 还是用 Google cn 的吧
|
7
xujialiang 2016-09-04 22:37:32 +08:00 via iPhone
好奇,谁能科普下? 是不是像星巴克里的这种网页登陆?造成了不能访问 V2EX ?还是什么?
Google 了下,不知道是不是我说的这个? |
9
lan894734188 2016-09-04 22:40:02 +08:00 via Android
|
11
BROWNURSIDAE 2016-09-04 22:53:08 +08:00 via Android
@xujialiang 不是,即使换成了 v2 还是可以登录到 Starbucks 的
|
12
Livid MOD OP @xujialiang 默认情况下, Android 会时不时访问这个地址:
http://clients1.google.com/generate_204 用来探测网络状态。在每次连 Wi-Fi 时,也会需要需要访问一下这个地址。 但是就像你可能已经知道的那样,*.google.com 的访问在国内是有问题的。所以我们需要修改这个设置。 |
13
alangz 2016-09-04 23:11:03 +08:00
现在这个无论 https 还是 http 都返回 301 ,难道我这边网络问题。/generate_204 的 https 返回是 204 。
|
14
Livid MOD OP @alanlhy 只有下面这个地址才会返回 204 :
http://captive.v2ex.co/generate_204 你如果直接访问 captive.v2ex.com 的话确实是 301 ,这是对的。 |
15
xavierskip 2016-09-04 23:54:18 +08:00
刚好,我在我手机上查看了一下设置 `settings get global captive_portal_server ` 居然不知道什么时候被设置成了 www.qualcomm.cn 高通公司的中国官网, WTF ,明明我一直设置为 g.cn 的,于是又换回来了。
|
16
GoopleXD 2016-09-05 00:23:42 +08:00
/system/bin/sh: /system/bin/settings: /bin/sh: No such file or directory
这个怎么办? |
17
lance6716 2016-09-05 00:31:35 +08:00 via Android
@xavierskip 我也是这样…目测每次重启都会重置的
|
18
ynyounuo 2016-09-05 00:47:25 +08:00
@GoopleXD
进去 adb shell 了之后,就不需要加「 adb shell 」的前缀了,直接用「 settings blah blah 」就行。 |
19
GoopleXD 2016-09-05 00:58:14 +08:00
@ynyounuo 我在手机终端上同样不能用 setting 命令,应该是 rom 有问题 能不能直接手动修改文档来修改 global captive_portal_server?
|
20
Lentin 2016-09-05 08:33:35 +08:00
@xavierskip 鸟笼官网的地址也能当作验证用啊= =
|
21
hewwcn 2016-09-05 08:36:37 +08:00
|
22
xujialiang 2016-09-05 08:45:23 +08:00 via iPhone
@Livid get ~~~~
|
23
pmgh10 2016-09-05 09:20:05 +08:00 via Android
站长提供的都是通用好方法,感谢!
|
24
breaklayer 2016-09-05 09:32:38 +08:00
我用的是这个: 5.0.appinn.com
|
25
nashxk 2016-09-05 11:49:01 +08:00
Perfect !现在用之前的 www.v2ex.com 还是可以的。。
|
26
vitovan 2016-09-05 12:03:05 +08:00
感谢!
|
27
wenymedia 2016-09-05 12:11:18 +08:00 1
mokee 的 ROM 用的 v2 的检测地址 影响范围还真不小...
|
28
mine260309 2016-09-05 13:27:08 +08:00 1
注意 Android7.0 之前用的都是 HTTP ,而 7.0 之后默认用的是 HTTPS 的 URL 。
测试过 captive.v2ex.co 同时支持 HTTP 和 HTTPS 了,赞一个! 另外,写了篇博客解释了一下: https://mine260309.me/archives/1587 |
29
faywong8888 2016-09-05 23:09:58 +08:00
It works!
|
30
Vicer 2016-09-06 07:28:46 +08:00 via Android
Get it!
|
31
EricInBj 2016-09-06 15:08:00 +08:00
@kyze8439690 感谢, google.cn 的速度比较快
|
32
Love4Taylor 2016-09-06 19:42:09 +08:00
@wenymedia ? mokee 不是自己有么
|
33
wenymedia 2016-09-07 12:28:04 +08:00 via Android
@Love4Taylor mokee 前两天公告里 之前 merge 一个有用 v2 版本分支……
|
34
Showfom 2016-09-10 17:26:16 +08:00
Nexus 5X 终于到了,顺手已经改了 v2 的 嘿嘿 准备自己搭建个去
|
35
chenshaoju 2016-09-18 18:37:42 +08:00
我说怎么之前的地址不工作了,抓包看了一下返回了 301 ,搜了一下原帖,原来换了。。。
感谢。 |
38
chenyiping1995 2016-10-09 21:05:10 +08:00
|
39
datou 2016-10-20 14:46:10 +08:00
nexus 5X 用了一年了
电信和联通默认都没叹号 移动有叹号 |
40
airqj 2016-10-21 18:53:27 +08:00
7.1.1 beta 按照命令设置无效.....
|
41
langjun 2016-10-31 10:39:30 +08:00
wow..
|
44
Zohar 2016-11-30 17:51:06 +08:00 via Android 1
|
45
chenyiping1995 2016-12-03 22:19:49 +08:00
不好意思挖个坟(不知道是不是算?
证书到期了麻烦续一下谢谢。。。 Android 7.0 上不受信任的证书不能 pass |
46
chenyiping1995 2016-12-03 22:20:08 +08:00
|
48
Livid MOD OP |
49
jasonchao 2016-12-04 10:38:59 +08:00
THX
|
51
KyonLi 2016-12-06 12:27:38 +08:00
Android 7.1.1 字段变为 captive_portal_https_url 值为完整 URL ,不拼接 generate_204
https://android.googlesource.com/platform/frameworks/base/+/android-7.1.1_r4/services/core/java/com/android/server/connectivity/NetworkMonitor.java#611 |
52
21grams 2016-12-06 13:17:34 +08:00 2
@VampireSH
@airqj @KyonLi 7.1.1 的方法: adb shell "settings put global captive_portal_https_url https://captive.v2ex.co/generate_204" |
54
Wicheol 2016-12-08 17:22:43 +08:00
今天下午失效了?
|
56
Laygle 2016-12-09 13:58:18 +08:00
貌似失效了
|
57
zachX 2016-12-10 11:21:00 +08:00
貌似最近有时候会失效?
|
58
zachX 2016-12-10 11:38:34 +08:00 1
|
60
Showfom 2016-12-11 03:50:05 +08:00
|
61
reorx 2017-01-04 06:17:34 +08:00
我都是直接关了的:
``` adb shell settings put global captive_portal_detection_enabled 0 ``` |
62
milltronics 2017-01-05 10:38:28 +08:00
@xavierskip captive_portal_server 被自动改回的问题最后有没有解决?
我也遇到相同问题。 |
63
xavierskip 2017-01-05 13:01:34 +08:00
@milltronics 没有解决。反正 www.qualcomm.cn 又没被墙。
|
64
rrfeng 2017-02-06 18:46:06 +08:00
@Tink
Pixel 使用了 https://http204.sinaapp.com 这个之后,在办公室的 WiFi 环境下持续断网。回到家里 WiFi 就没有问题,其他 WiFi 也没有问题。 3G/4G 也没有问题。 一直怀疑是 AP 和 Pixel 兼容性有问题…… 今天换了自己的 204 服务,结果就没问题了,一直没往这方面想。 可以查一下我们出口 IP 的访问记录吗? 124.65.149.46 |
65
lavazawinul 2017-02-07 14:36:14 +08:00
7.1.2 beta 又不行了?
|
66
lavazawinul 2017-02-07 14:36:46 +08:00
@lavazawinul 没了叹号,变成叉号了。
|
67
fenglipop29 2017-02-12 19:03:04 +08:00
发现叉叉要过一两分钟后才消失。
|
68
GavinHua 2017-02-16 10:22:27 +08:00
@Livid captive.v2ex.co 打不开了
|
69
zlhdd108 2017-02-16 10:59:49 +08:00
好像有问题了,打不开,感叹号又出来了,换了一个地址就好了……
|
70
bruce55 2017-02-16 11:14:23 +08:00
>curl -v https://captive.v2ex.co/generate_204
* Trying 162.221.6.250... * TCP_NODELAY set * connect to 162.221.6.250 port 443 failed: Timed out * Failed to connect to captive.v2ex.co port 443: Timed out * Closing connection 0 curl: (7) Failed to connect to captive.v2ex.co port 443: Timed out 然后……东京打不开主站 |
72
Livid MOD OP @bruce55 captive.v2ex.co 和主站在日本的流量策略刚刚已经做了调整,现在应该恢复了。谢谢反馈。
|
77
chenshaoju 2017-03-16 11:03:47 +08:00
|
78
KevinHsiun 2017-03-16 12:09:14 +08:00
今天不行了,出现感叹号。 504 Gateway Time-out @Livid
|
79
maodahua 2017-03-16 20:27:51 +08:00
今天早上是不是翻水水了哦
|
80
Livid MOD OP |
81
chenshaoju 2017-05-24 16:15:56 +08:00 2
今天调试 Logcat 的时候,发现仍然有一个 HTTP 的 probe 走的是 http://connectivitycheck.gstatic.com/generate_204 (已经可以在中国大陆直接访问了)。
那个 captive_portal_server 早已失效,而 captive_portal_https_url 只涵盖了 HTTPS 的 probe。 查阅代码 ( http://androidxref.com/7.1.1_r6/xref/frameworks/base/services/core/java/com/android/server/connectivity/NetworkMonitor.java#614 )后,发现还有一个名为 CAPTIVE_PORTAL_HTTP_URL 的参数,因此在 Android 7.x 中,实际上有两个 probe 的地址,需要使用两条命令来设置: adb shell "settings put global captive_portal_http_url http://captive.v2ex.co/generate_204"; adb shell "settings put global captive_portal_https_url https://captive.v2ex.co/generate_204"; |
82
wuzhizhemu569 2017-06-09 10:50:44 +08:00
7.1.1 有效,多谢楼主。
|
83
loveq1991 2017-06-12 11:25:05 +08:00
7.1.1 有效 +1 感谢大佬
|
84
noisyfox 2017-07-02 13:49:31 +08:00 1
7.1.2 更改了禁用检测的设置。
现在需要设置"captive_portal_mode"这个参数,禁用的话设置为 0。 具体可以参考 https://github.com/Noisyfox/NoExclamation/issues/2 另外打个广告~完整分析在 https://www.noisyfox.io/android-captive-portal.html 叹号杀手已经更新支持 7.1.2,可以在 github 上下载。 |
85
vvtommy 2017-07-21 16:28:20 +08:00
7.1.2 更改 captive portal http url 无效。如果关掉,肯定会影响正常的 captive portal 服务。
|
86
bclerdx 2017-08-13 23:23:50 +08:00 via Android
现在正需要呢,感谢!
|
87
xiaojunzi 2017-09-05 13:57:28 +08:00
最近连接老是出问题呀 经常叉号就回来了 等会又好了 是升级 8.0 的原因还是什么呢
|
88
zlhdd108 2017-12-27 17:21:59 +08:00
貌似又链接不上了哦
curl -v https://captive.v2ex.co/generate_204 * About to connect() to captive.v2ex.co port 443 (#0) * Trying 23.251.125.132... * Connection timed out * Failed connect to captive.v2ex.co:443; Connection timed out * Closing connection 0 curl: (7) Failed connect to captive.v2ex.co:443; Connection timed out |
92
chenshaoju 2018-01-03 23:46:24 +08:00 1
|
93
Livid MOD OP @chenshaoju 非常感谢。那个 IP 确实有问题。已经调整到了一个更健壮的 CNAME。
|
94
chenshaoju 2018-04-26 11:16:23 +08:00 1
在 Android 8.x 后,加入了两个 fallback 的 Captive portal server 参数:
CAPTIVE_PORTAL_FALLBACK_URL CAPTIVE_PORTAL_OTHER_FALLBACK_URLS 同样可以使用 settings 命令进行设置,格式为: adb shell "settings put global captive_portal_fallback_url http://captive.v2ex.co/generate_204"; adb shell "settings put global captive_portal_other_fallback_urls http://captive.v2ex.co/generate_204"; 源码详见: http://androidxref.com/8.0.0_r4/xref/frameworks/base/services/core/java/com/android/server/connectivity/NetworkMonitor.java#675 |
95
Livid MOD OP @chenshaoju 谢谢。最近我们会为这个地址加上 IPv6 支持。
|
96
fenglipop29 2018-05-10 18:32:14 +08:00
有没有人使用的移动手机卡?我发现我在开移动 4g 的时候会有感叹号,但是打开 wifi 接电信网络的时候就完全正常
|
98
JinChen 2018-10-17 21:07:50 +08:00
刚刚发现 Pixel Experience 也是用的 V2EX 的服务
|
99
EricInBj 2018-11-22 13:43:19 +08:00
为啥设置完了 WIFI 图标上还是有 X 呢?
Android 8.1 通过 Fiddler 抓包看,已经是请求我指定的 gen_204 url 并且返回 204 了啊。 |
100
EricInBj 2018-11-22 13:47:38 +08:00
把代理去掉 X 就没了。。
|