Livid
405.34D
549.21D
V2EX  ›  Android

关于 V2EX 提供的 Android Captive Portal Server 地址的更新

  Livid ·
PRO
· Sep 4, 2016 · 394446 views
This topic created in 3720 days ago, the information mentioned may be changed or developed.

最近,由于 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
Supplement 1  ·  Dec 10, 2016

如果你最近更新到了 Android 7.1.1,那么这个设置的语法稍有改变,请使用下面的指令重新设置:

adb shell "settings put global captive_portal_https_url https://captive.v2ex.co/generate_204"; 
Supplement 2  ·  Jun 9, 2017

在 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";
132 replies  •  2020-06-07 11:12:16 +08:00
1  2  
❮ ❯
kyze8439690
kyze8439690
Sep 4, 2016❤️4
1
其实 www.google.cn 也有 204 的
```
adb shell "settings put global captive_portal_server www.google.cn"
```
dexbol
dexbol
Sep 4, 2016
2
It works
BMW
BMW
Sep 4, 2016 via iPhone
3
Tink
Tink
Sep 4, 2016 via iPhone
4
mimzy
mimzy
Sep 4, 2016❤️2
5
如果你的手机已经 root ,可以安装 JuiceSSH (地址 https://play.google.com/store/apps/details?id=com.sonelli.juicessh 或其他终端) ,选择「本地设备」先执行 su 再执行 settings put global captive_portal_server captive.v2ex.co ,这样就不必安装 adb 了。
regeditms
regeditms
Sep 4, 2016 via Android
6
@kyze8439690 还是用 Google cn 的吧
xujialiang
xujialiang
Sep 4, 2016 via iPhone
7
好奇,谁能科普下? 是不是像星巴克里的这种网页登陆?造成了不能访问 V2EX ?还是什么?
Google 了下,不知道是不是我说的这个?
AirSc
AirSc
Sep 4, 2016 via Android
8
@regeditms Google.cn 最近有时候解析到美国去了。。然后就打不开了,好奇怪
garyalen
garyalen
Sep 4, 2016 via Android
9
安利
204.bydisk.com
http https 都可以
regeditms
regeditms
Sep 4, 2016
10
@AirSc 还会这样啊?
BROWNURSIDAE
BROWNURSIDAE
Sep 4, 2016 via Android
11
@xujialiang 不是,即使换成了 v2 还是可以登录到 Starbucks 的
Livid
Livid
MOD
OP
PRO
Sep 4, 2016❤️1
12
@xujialiang 默认情况下, Android 会时不时访问这个地址:

http://clients1.google.com/generate_204

用来探测网络状态。在每次连 Wi-Fi 时,也会需要需要访问一下这个地址。

但是就像你可能已经知道的那样,*.google.com 的访问在国内是有问题的。所以我们需要修改这个设置。
alangz
alangz
Sep 4, 2016
13
现在这个无论 https 还是 http 都返回 301 ,难道我这边网络问题。/generate_204 的 https 返回是 204 。
Livid
Livid
MOD
OP
PRO
Sep 4, 2016
14
@alanlhy 只有下面这个地址才会返回 204 :

http://captive.v2ex.co/generate_204

你如果直接访问 captive.v2ex.com 的话确实是 301 ,这是对的。
C0VN
C0VN
Sep 4, 2016
15
刚好,我在我手机上查看了一下设置 `settings get global captive_portal_server ` 居然不知道什么时候被设置成了 www.qualcomm.cn 高通公司的中国官网, WTF ,明明我一直设置为 g.cn 的,于是又换回来了。
GoopleXD
GoopleXD
Sep 5, 2016
16
/system/bin/sh: /system/bin/settings: /bin/sh: No such file or directory
这个怎么办?
lance6716
lance6716
Sep 5, 2016 via Android
17
@xavierskip 我也是这样…目测每次重启都会重置的
ynyounuo
ynyounuo
Sep 5, 2016
18
@GoopleXD
进去 adb shell 了之后,就不需要加「 adb shell 」的前缀了,直接用「 settings blah blah 」就行。
GoopleXD
GoopleXD
Sep 5, 2016
19
@ynyounuo 我在手机终端上同样不能用 setting 命令,应该是 rom 有问题 能不能直接手动修改文档来修改 global captive_portal_server?
Lentin
Lentin
Sep 5, 2016
20
@xavierskip 鸟笼官网的地址也能当作验证用啊= =
hewwcn
hewwcn
Sep 5, 2016
21
xujialiang
xujialiang
Sep 5, 2016 via iPhone
22
@Livid get ~~~~
pmgh10
pmgh10
Sep 5, 2016 via Android
23
站长提供的都是通用好方法,感谢!
breaklayer
breaklayer
Sep 5, 2016
24
我用的是这个: 5.0.appinn.com
nashxk
nashxk
Sep 5, 2016
25
Perfect !现在用之前的 www.v2ex.com 还是可以的。。
vitovan
vitovan
Sep 5, 2016
26
感谢!
wenymedia
wenymedia
Sep 5, 2016❤️1
27
mokee 的 ROM 用的 v2 的检测地址 影响范围还真不小...
mine260309
mine260309
Sep 5, 2016❤️1
28
注意 Android7.0 之前用的都是 HTTP ,而 7.0 之后默认用的是 HTTPS 的 URL 。
测试过 captive.v2ex.co 同时支持 HTTP 和 HTTPS 了,赞一个!

另外,写了篇博客解释了一下: https://mine260309.me/archives/1587
faywanghq
faywanghq
Sep 5, 2016
29
It works!
Vicer
Vicer
Sep 6, 2016 via Android
30
Get it!
EricInBj
EricInBj
Sep 6, 2016
31
@kyze8439690 感谢, google.cn 的速度比较快
love4taylor
love4taylor
Sep 6, 2016
32
@wenymedia ? mokee 不是自己有么
wenymedia
wenymedia
Sep 7, 2016 via Android
33
@Love4Taylor mokee 前两天公告里 之前 merge 一个有用 v2 版本分支……
Showfom
Showfom
PRO
Sep 10, 2016
34
Nexus 5X 终于到了,顺手已经改了 v2 的 嘿嘿 准备自己搭建个去
chenshaoju
chenshaoju
Sep 18, 2016
35
我说怎么之前的地址不工作了,抓包看了一下返回了 301 ,搜了一下原帖,原来换了。。。

感谢。
mirtest
mirtest
Sep 20, 2016 via Android
36
之前一直是用的小狐狸自带..7.x 老感叹号现在换这个试试..然后原来 g.cn 解析飞了😂
palxex
palxex
Sep 21, 2016
37
@EricInBj 感谢推荐。确实快好多,本地实测 http 快 20 倍, https 快 5 倍。
chenyiping1995
chenyiping1995
Oct 9, 2016
38
@mirtest 7.0 下 g.cn 疑似是因为 HTTPS 的原因不再能使用了。
datou
datou
Oct 20, 2016
39
nexus 5X 用了一年了

电信和联通默认都没叹号

移动有叹号
airqj
airqj
Oct 21, 2016
40
7.1.1 beta 按照命令设置无效.....
J735KILnHi7q49cv
J735KILnHi7q49cv
Oct 31, 2016
41
wow..
isbase
isbase
Nov 3, 2016 via Android
42
@mimzy 多谢,用了好久 JuiceSSH ,竟然没注意到可以登录 local shell
VampireSH
VampireSH
Nov 23, 2016 via Android
43
@airqj 咱也是,无论设置什么都不行
Zohar
Zohar
Nov 30, 2016 via Android❤️1
44
chenyiping1995
chenyiping1995
Dec 3, 2016
45
不好意思挖个坟(不知道是不是算?
证书到期了麻烦续一下谢谢。。。 Android 7.0 上不受信任的证书不能 pass
chenyiping1995
chenyiping1995
Dec 3, 2016
46
kmahyyg
kmahyyg
Dec 4, 2016 via Android
47
@Livid 请续签 let's encrypt.证书到期了
Livid
Livid
MOD
OP
PRO
Dec 4, 2016
48
@chenyiping1995
@kmahyyg

刚才已经续上了。

抱歉,今天有一个自动脚本没有按照预期那样工作。
jasonchao
jasonchao
Dec 4, 2016
49
THX
21grams
21grams
Dec 6, 2016
50
@airqj
@VampireSH
对啊, 7.1 貌似不行了,怎么设都有个叉
KyonLi
KyonLi
Dec 6, 2016
51
21grams
21grams
Dec 6, 2016❤️2
52
@VampireSH
@airqj
@KyonLi

7.1.1 的方法:
adb shell "settings put global captive_portal_https_url https://captive.v2ex.co/generate_204"
rainsho
rainsho
Dec 7, 2016
53
@21grams tks ,昨天升了 7.1.1 ,成功消除叉叉
Wicheol
Wicheol
Dec 8, 2016
54
今天下午失效了?
Livid
Livid
MOD
OP
PRO
Dec 8, 2016 via Android
55
@Wicheol 最近没有任何异常。
72hG2W7wVYrmlBf6
72hG2W7wVYrmlBf6
Dec 9, 2016
56
貌似失效了
zachX
zachX
Dec 10, 2016
57
貌似最近有时候会失效?
zachX
zachX
Dec 10, 2016❤️1
58
https://www.v2ex.com/t/325630

找到原因了, 7.1.1 参考这个帖子
Livid
Livid
MOD
OP
PRO
Dec 10, 2016
59
@Laygle
@zachX

谢谢,关于 Android 7.1.1 的新设置已经在附言中补充。
Showfom
Showfom
PRO
Dec 11, 2016
60
可以试试我赞助的

adb shell "settings put global captive_portal_https_url https://204.io/generate_204";
reorx
reorx
Jan 4, 2017
61
我都是直接关了的:

```
adb shell settings put global captive_portal_detection_enabled 0
```
milltronics
milltronics
Jan 5, 2017
62
@xavierskip captive_portal_server 被自动改回的问题最后有没有解决?
我也遇到相同问题。
C0VN
C0VN
Jan 5, 2017
63
@milltronics 没有解决。反正 www.qualcomm.cn 又没被墙。
rrfeng
rrfeng
Feb 6, 2017
64
@Tink
Pixel 使用了 https://http204.sinaapp.com 这个之后,在办公室的 WiFi 环境下持续断网。回到家里 WiFi 就没有问题,其他 WiFi 也没有问题。 3G/4G 也没有问题。

一直怀疑是 AP 和 Pixel 兼容性有问题……

今天换了自己的 204 服务,结果就没问题了,一直没往这方面想。

可以查一下我们出口 IP 的访问记录吗?

124.65.149.46
lavazawinul
lavazawinul
Feb 7, 2017
65
7.1.2 beta 又不行了?
lavazawinul
lavazawinul
Feb 7, 2017
66
@lavazawinul 没了叹号,变成叉号了。
fenglipop29
fenglipop29
Feb 12, 2017
67
发现叉叉要过一两分钟后才消失。
GavinHua
GavinHua
Feb 16, 2017
68
@Livid captive.v2ex.co 打不开了
zlhdd108
zlhdd108
Feb 16, 2017
69
好像有问题了,打不开,感叹号又出来了,换了一个地址就好了……
bruce55
bruce55
Feb 16, 2017
70
>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

然后……东京打不开主站
Livid
Livid
MOD
OP
PRO
Feb 16, 2017
71
@GavinHua
@zlhdd108

感谢反馈,已经做了调整,现在恢复了。
Livid
Livid
MOD
OP
PRO
Feb 16, 2017
72
@bruce55 captive.v2ex.co 和主站在日本的流量策略刚刚已经做了调整,现在应该恢复了。谢谢反馈。
zlhdd108
zlhdd108
Feb 16, 2017
73
@Showfom 貌似是美国的 ip ,不过访问速度很快啊,不知道是怎么优化的
ivanchou
ivanchou
Feb 20, 2017
74
@Livid 貌似又不行了, 7.1.1
snail1126
snail1126
Mar 16, 2017
75
@Livid 貌似今天不行了,用科学上网工具和 4G 网络都是感叹号
snail1126
snail1126
Mar 16, 2017
76
提示 504 Gateway Time-out
@Livid
chenshaoju
chenshaoju
Mar 16, 2017
77
http://captive.v2ex.co/generate_204

504 Gateway Time-out

nginx/1.11.9

@Livid
KevinHsiun
KevinHsiun
Mar 16, 2017
78
今天不行了,出现感叹号。 504 Gateway Time-out @Livid
maodahua
maodahua
Mar 16, 2017
79
今天早上是不是翻水水了哦
Livid
Livid
MOD
OP
PRO
Mar 17, 2017❤️3
80
@snail1126
@chenshaoju
@KevinHsiun
@maodahua

因为供应商的网络问题,之前出现了一些故障。现在已经恢复。
chenshaoju
chenshaoju
May 24, 2017❤️2
81
今天调试 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";
wuzhizhemu569
wuzhizhemu569
Jun 9, 2017
82
7.1.1 有效,多谢楼主。
loveq1991
loveq1991
Jun 12, 2017
83
7.1.1 有效 +1 感谢大佬
noisyfox
noisyfox
Jul 2, 2017❤️1
84
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 上下载。
vvtommy
vvtommy
Jul 21, 2017
85
7.1.2 更改 captive portal http url 无效。如果关掉,肯定会影响正常的 captive portal 服务。
bclerdx
bclerdx
Aug 13, 2017 via Android
86
现在正需要呢,感谢!
xiaojunzi
xiaojunzi
Sep 5, 2017
87
最近连接老是出问题呀 经常叉号就回来了 等会又好了 是升级 8.0 的原因还是什么呢
zlhdd108
zlhdd108
Dec 27, 2017
88
貌似又链接不上了哦
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
Livid
Livid
MOD
OP
PRO
Dec 27, 2017
89
@zlhdd108 感谢反馈。马上解决。
zlhdd108
zlhdd108
Dec 27, 2017
90
@Livid 辛苦了
Livid
Livid
MOD
OP
PRO
Dec 27, 2017
91
@zlhdd108 已经做了切换。谢谢。
chenshaoju
chenshaoju
Jan 3, 2018❤️1
92
@Livid 域名好像做了 DNS 轮询,有两个 IP,但是有一个服务器可能挂了,有时间的话请帮忙查看一下,谢谢。

Livid
Livid
MOD
OP
PRO
Jan 4, 2018❤️1
93
@chenshaoju 非常感谢。那个 IP 确实有问题。已经调整到了一个更健壮的 CNAME。
chenshaoju
chenshaoju
Apr 26, 2018❤️1
94
在 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
Livid
Livid
MOD
OP
PRO
Apr 26, 2018
95
@chenshaoju 谢谢。最近我们会为这个地址加上 IPv6 支持。
fenglipop29
fenglipop29
May 10, 2018
96
有没有人使用的移动手机卡?我发现我在开移动 4g 的时候会有感叹号,但是打开 wifi 接电信网络的时候就完全正常

volks
volks
Aug 4, 2018
97
改成 google.cn 的地址以后 GCM 可以收到推送了,是我的错觉吗……
JinChen
JinChen
Oct 17, 2018
98
刚刚发现 Pixel Experience 也是用的 V2EX 的服务
EricInBj
EricInBj
Nov 22, 2018
99
为啥设置完了 WIFI 图标上还是有 X 呢?
Android 8.1
通过 Fiddler 抓包看,已经是请求我指定的 gen_204 url 并且返回 204 了啊。
EricInBj
EricInBj
Nov 22, 2018
100
把代理去掉 X 就没了。。
1  2  
❮ ❯
About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1376 Online   Highest 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 158ms · UTC 16:53 · PVG 00:53 · LAX 08:53 · JFK 11:53
♥ Do have faith in what you're doing.