强制门户参数


10

可以通过以下方法将若干强制门户参数应用于Android设备settings put global-最著名的可能是

settings put global captive_portal_detection_enabled 0

以完全关闭强制门户检查(对于Android <8)。有人可以解释如何使用其他人吗?例如,定义“用于锡纸的自定义门户网站服务器”?例如,一个人不能简单地做一个

settings put global captive_portal_server example.com

因为在大多数情况下,这会导致强制门户检查永久失败(背景:这样做,门户检查将构造一个URL http://example.com/generate_204并对其进行检查,并期望得到特定的响应)。

因此,除了简单地完全停用强制门户检查(在我看来,这可能会导致其他问题,例如在某些情况下未重定向到正确的门户)之外,在这种情况下还可以做些什么来增强隐私?

示例(如果我理解正确):

  • captive_portal_mode (Android 8以上版本?):
    • 0:请勿尝试检测强制门户
    • 1:提示用户登录
    • 2:立即断开与网络的连接,以后不再重新连接至该网络
  • captive_portal_detection_enabled (Android <8?):
    • 0:完全禁用强制门户检查
    • 1:启用它(默认)

这些示例非常简单:如何使用其他参数?

Answers:


12

配置强制门户行为

  • captive_portal_detection_enabled (<= Android 7.1.1)
    • 如问题正文所述工作
  • captive_portal_mode (> = Android 7.1.2)
    • 如问题正文所述工作

设置强制门户URL

  • captive_portal_server (<= Android 6.0.1)
    • 拥有generate_204页面的服务器,用于内部制作用于强制门户检测的URL(new URL("http", mServer, "/generate_204");–在Android 7.0中已作废,请参见下文)
  • captive_portal_use_https (> = Android 7.0)
    • 0:请勿使用HTTPS进行网络验证
    • 1:使用HTTPS(默认)
  • captive_portal_http_url (> = Android 7.0)
    • 用于HTTP强制门户检测的URL-与captive_portal_use_https(设置为0)配对使用
    • > = Android 7.1.1:操作系统不再generate_204自动附加到URL,为输入URL提供了一定的灵活性
  • captive_portal_https_url (> = Android 7.0)
    • 用于HTTPS强制门户检测的URL-与captive_portal_use_https(设置为1)配对使用
    • > = Android 7.1.1:操作系统不再generate_204自动附加到URL

使用URL的要求

来自服务器的HTTP 204响应代码(“无内容”)用于验证,不需要额外的内容:以默认检测URL为例,curl clients3.google.com/generate_204返回为空,并通过添加--write-out %{http_code}return 检查HTTP响应204

中国大陆可用的强制门户网站服务器URL的一小部分(亲自测试)

https://captive.v2ex.co/generate_204(由v2ex.com托管)

https://connect.rom.miui.com/generate_204(由小米托管,默认情况下在MIUI上使用)

https://noisyfox.cn/generate_204(由noisyfox.cn托管)

https://www.google.cn/generate_204https://developers.google.cn/generate_204(由Google托管)

https://www.qualcomm.cn/generate_204(由高通公司托管)

进一步说明

源还提到参数captive_portal_user_agentcaptive_portal_fallback_urlcaptive_portal_other_fallback_urls

  • captive_portal_fallback_url (> = Android 7.1.1)显然应该包含一个URL,而
  • captive_portal_other_fallback_urls 包含多个其他URL(用逗号分隔的列表,因此URL可能不包含任何逗号)。

但是我亲自在Android 8.0.0上进行了测试,两个后备参数都不起作用。假设它们是没有实现的声明。

中国Android强制门户设置的一些示例显示了上述设置的使用:

亚行外壳设置将全局captive_portal_http_url http://www.google.cn/generate_204
亚行外壳设置将全局captive_portal_https_url https://www.google.cn/generate_204
亚行外壳设置将全局captive_portal_fallback_url http://www.google.cn/generate_204
亚行外壳设置将全局captive_portal_other_fallback_urls http://www.qualcomm.cn/generate_204

知道了,“锡纸”甚至可以设置自己的验证服务。使用Apache:

RewriteEngine开
RewriteCond%{REQUEST_URI} / generate_204 $
RewriteRule $ / [R = 204,L]

或使用Nginx:

位置/ generate_204 {返回204; }

参考文献

12(中国),3(中国)


1
相关帖子 -至少有MM,下面的代码被用于:new URL("http", mServer, "/generate_204");(与mServer通过初始化captive_portal_server如果设置) -所以这应该只是在那里(这是最有可能的失败对我的原因之一服务器名称(或IP)在MM设备上)。不知道它什么时候改变了-但是可能是您用N写的。对于204,我已经发现了这一点 -看来我正确地假设:只是204代码,没有内容。
伊齐

@Izzy不幸的是2个后备选项似乎不起作用。使用默认值captive_portal_https_url并放置可访问的URL captive_portal_fallback_url不会消除叉号,并且放置标记也是如此captive_portal_other_fallback_urls-设置captive_portal_https_url直接是唯一的出路。请注意,测试是在LTE而不是WiFi下进行的,因为出于某种原因,即使我设置了完全无效的URL,我的学校WiFi也会始终将我定向到强制门户。
安迪(Andy Yan)

这些回退参数可能是与Oreo一起引入的(请注意,我们已经查看了Oreo代码以找到它们)。猜猜您已经检查过牛轧糖,对吗?//包含一些服务器列表的好主意。AFAIK也有g.cn提供;)
Izzy

1
@Izzy哦,是的,没有意识到,我还没有使用LOS15刷新任何设备。可能值得检查,如果可以,我会更新并ping您清除评论。另外,据说g.cn的HTTPS证书已在大陆过期,因此不再可用于HTTPS。//但请稍候... 7.1.2源代码也确实包含对的引用captive_portal_fallback_url
Andy Yan

与许多新功能一样,有时在功能完成之前会打开引用。引用的文件主要定义常量,而不是功能,对吗?
伊齐
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.