Hay varios parámetros de portales cautivos que se pueden aplicar a un dispositivo Android a través settings put global
de los cuales el más famoso probablemente sea
settings put global captive_portal_detection_enabled 0
para desactivar completamente la verificación del portal cautivo (para Android < 8). ¿Alguien puede explicar cómo usar los otros, por ejemplo, para definir un "servidor de portal cautivo personalizado para láminas de estaño"? Por ejemplo, uno no puede simplemente hacer un
settings put global captive_portal_server example.com
ya que eso, en la mayoría de los casos, causaría que la verificación del portal cautivo fallara permanentemente (antecedentes: al hacerlo, la verificación del portal construiría una URL http://example.com/generate_204
y la verificaría, esperando una respuesta específica).
Entonces, además de simplemente desactivar la verificación del portal cautivo por completo (lo que podría, como he leído, conducir a otros problemas como no ser redirigido al portal correcto en algunos casos), ¿qué más se puede hacer para mejorar la privacidad en este contexto?
Ejemplos (si los entendí bien):
captive_portal_mode
(Android 8+?):
0
: No intente detectar portales cautivos1
: solicitar al usuario que inicie sesión2
: desconectarse inmediatamente de la red y no volver a conectarse a esa red en el futurocaptive_portal_detection_enabled
(¿Android <8?):
0
: deshabilite completamente las comprobaciones del portal cautivo1
: habilitarlo (predeterminado)Si bien estos ejemplos son bastante sencillos: ¿Cómo usar los otros parámetros?
Configuración del comportamiento del portal cautivo
captive_portal_detection_enabled
(<=Android 7.1.1)
captive_portal_mode
(>=Android 7.1.2)
Configuración de URL(s) de portal cautivo
captive_portal_server
(<=Android 6.0.1)
generate_204
página, que se usa para crear internamente una URL para la detección de portales cautivos ( new URL("http", mServer, "/generate_204");
obsoleto a partir de Android 7.0, ver más abajo)captive_portal_use_https
(>=Android 7.0)
0
: no use HTTPS para la validación de la red1
: Usar HTTPS (predeterminado)captive_portal_http_url
(>=Android 7.0)
captive_portal_use_https
(establecida en 0
)generate_204
a la URL automáticamente, lo que brinda cierta flexibilidad a la URL de entradacaptive_portal_https_url
(>=Android 7.0)
captive_portal_use_https
(establecida en 1
)generate_204
a la URL automáticamenteRequisito para que se utilice la URL
Se usa un código de respuesta HTTP 204 ("sin contenido") del servidor para la validación, no se necesita contenido adicional: tome la URL de detección predeterminada, por ejemplo, curl clients3.google.com/generate_204
devuelve vacío e inspecciona la respuesta HTTP agregando --write-out %{http_code}
devoluciones 204
.'
Una pequeña lista de direcciones URL de servidores de portal cautivo utilizables en China continental (probado personalmente)
https://captive.v2ex.co/generate_204 (alojado por v2ex.com)
https://connect.rom.miui.com/generate_204 (alojado por Xiaomi, usado por defecto en MIUI)
https://noisyfox.cn/generate_204 (alojado por noisyfox.cn)
https://www.google.cn/generate_204 y https://developers.google.cn/generate_204 (alojado por Google)
https://www.qualcomm.cn/generate_204 (alojado por Qualcomm)
Notas adicionales
La fuente también menciona parámetros captive_portal_user_agent
, captive_portal_fallback_url
y captive_portal_other_fallback_urls
:
captive_portal_fallback_url
(>= Android 7.1.1) obviamente se supone que contiene una sola URL, mientras quecaptive_portal_other_fallback_urls
contiene varias URL adicionales (lista separada por comas, por lo que es posible que las URL no contengan ninguna coma).Pero personalmente realicé pruebas en Android 8.0.0 y ambos parámetros alternativos no funcionan. Asumiendo que son declaraciones sin una implementación por ahora.
Algunos ejemplos de configuraciones de portal cautivo de Android en China muestran el uso de algunas de las configuraciones anteriores:
la configuración de shell adb pone captive_portal_http_url global http://www.google.cn/generate_204 la configuración de shell adb pone captive_portal_https_url global https://www.google.cn/generate_204 la configuración de adb shell pone global captive_portal_fallback_url http://www.google.cn/generate_204 la configuración de shell de adb pone global captive_portal_other_fallback_urls http://www.qualcomm.cn/generate_204
Sabiendo eso, las "láminas de estaño" incluso podrían establecer su propio servicio de verificación. Con apache:
Motor de reescritura encendido Reescribir Cond %{REQUEST_URI} /generar_204$ Regla de reescritura $ / [R=204,L]
o con Nginx:
ubicación / generar_204 {retorno 204; }
Referencias
izzy
new URL("http", mServer, "/generate_204");
(conmServer
la inicializacióncaptive_portal_server
si está configurado), por lo que este debería ser solo el nombre del servidor (o IP) allí (que probablemente fue una de las razones por las que falló para mí en un dispositivo MM). No estoy seguro de cuándo cambió, pero por lo que escribe probablemente con N. Para el 204, encontré esto , por lo que parece que asumí correctamente: solo el código 204, sin contenido.andy yan
captive_portal_https_url
y poner una URL accesiblecaptive_portal_fallback_url
no elimina la marca de cruz, y lo mismo ocurre con la instalacióncaptive_portal_other_fallback_urls
: la configuracióncaptive_portal_https_url
directa es la única salida. Tenga en cuenta que las pruebas se realizan bajo LTE en lugar de WiFi, porque por alguna razón el WiFi de mi escuela siempre me dirigía al portal cautivo incluso si configuraba una URL completamente inválida.izzy
g.cn
disponible;)andy yan
captive_portal_fallback_url
.izzy
andy yan
izzy
captive_portal_server
que comentaste como "<= MM" vuelve a entrar en juego aquí.