O tethering inverso traslada o tráfico dun teléfono a un ordenador e sácao pola conexión do ordenador. Un cable USB por si só non o fai: o teléfono necesita un servizo de captura que asuma o seu encamiñamento, e o ordenador necesita un relé que leve eses paquetes máis aló. A ruta ten catro saltos: aplicación, captura no teléfono, relé USB e saída do host, e cada un ten un propietario distinto. Este manual constrúe esa ruta, coloca a VPN do host onde corresponde e comproba cada salto antes de fiarse do resultado.

Trace os saltos antes de executar nada

Cada salto aplica a súa propia política, por iso un resultado que funciona nun extremo non di nada do outro. A aplicación escolle un destino e un resolutor, o servizo de captura decide que tráfico entra no relé, o relé reenvía aos sockets do host, e o encamiñamento e a VPN do host deciden o enderezo que o destino acaba vendo.

HopOwnerWhat it decides
Application requestThe appDestination, resolver, address family
Capture servicePhone VpnService appWhich traffic enters the relay at all
ADB relayHost processForwarding phone flows to host sockets
Host egressHost routing and VPNExit address and host policy

Só un cliente do servizo VPN pode ocupar á vez o papel de captura do teléfono, así que unha segunda aplicación VPN corrente non se apila sobre o relé. Se a VPN pertence ao ordenador, o servizo de captura é a ligazón de acceso cara a ese ordenador, non a proba de que un túnel remoto xa protexe o resultado.

Prepare o relé antes de tocar o teléfono

Gnirehtet é o exemplo documentado desta arquitectura: un cliente do servizo VPN sen root no teléfono máis un relé transportado por ADB no host, con soporte de TCP e UDP sobre IPv4. O seu repositorio tamén indica que o proxecto xa non se mantén activamente, así que tráteo como o deseño de referencia e unha ferramenta funcional para un laboratorio, non como un produto con soporte para estandarizar nunha frota xestionada.

adb devices
adb shell getprop ro.build.version.release
gnirehtet run

Execute primeiro adb devices. Un teléfono que non aceptou a clave de depuración do host declárase como non autorizado, e o relé non se conectará ata que se acepte o aviso no dispositivo. gnirehtet run instala o cliente, inicia o relé e activa a captura; nunha versión que separa os pasos, use no seu lugar os subcomandos documentados install, relay e start.

O acceso ADB é unha relación de control do dispositivo, non un axuste de rede. Autorice só un ordenador que controle, e prevexa revogar esa autorización cando remate a tarefa.

Devolva a VPN do host á ruta

O relé é un proceso corrente do host, así que as súas conexións posteriores seguen a táboa de encamiñamento do host. Un perfil de túnel completo transpórtaas; un túnel dividido pode que non. Se a VPN do host usa controis por aplicación, engada o binario do relé ao conxunto permitido, se non o relé segue usando a interface física mentres o navegador parece protexido.

ip route get 1.1.1.1
curl -4 https://ifconfig.me
sudo ss -tnp | grep -i relay

Execute as dúas primeiras ordes antes e despois de conectar a VPN do host. Se o enderezo non cambia, o relé non está no túnel, diga o que diga a xanela do cliente. Un túnel só para redes privadas tamén deixa os destinos públicos na saída normal do host, o que parece unha fuga pero é a política que configurou.

O DNS resólvese no host para o tráfico que pasa polo relé, así que o resolutor do host decide que servidor ve os nomes. Un axuste de DNS privado no teléfono non cruza o relé, e unha proba de resolutor no teléfono non describirá as consultas do host.

Verifique cada salto por separado

Tres comprobacións, nesta orde: o teléfono chega ao relé, o relé chega ao destino baixo a política do host, e a aplicación resolve e usa correctamente ese destino. Detéñase no primeiro fallo en lugar de recargar páxinas e adiviñar.

adb shell dumpsys connectivity | grep -i -A3 vpn
adb logcat -s GnirehtetRelay:V Gnirehtet:V

Unha entrada de rede VPN no volcado de conectividade mostra que o servizo de captura está activo; o rexistro propio do relé mostra se chegan fluxos. A ausencia nun dos dous divide o problema con claridade: sen captura é o lado do teléfono, sen fluxos é o lado do host.

Un navegador que funciona no host demostra a ruta do navegador do host, non a do proceso do relé. Compare os enderezos que notifica cada un, e probe un recurso privado e tamén unha páxina pública, porque un túnel só para redes privadas pode encamiñar un e non o outro.

Desmonte e escolla o comportamento ante fallos

A reversión forma parte do manual. Deteña e elimine o relé, desinstale o cliente de captura e revogue a autorización de depuración do host desde as opcións de desenvolvedor do teléfono cando remate a tarefa.

gnirehtet stop
gnirehtet uninstall
adb kill-server

Decida que debe facer o teléfono cando o relé desaparece. Sen unha elección explícita pode volver aos datos móbiles e filtrar o tráfico que intentaba encamiñar, así que fixe a propósito o comportamento de bloqueo de conexións ou a política de VPN e probe o desmontaxe antes de confiar nel.

Anote o host que se autorizou, a versión do relé, a política de túnel do host e os pasos de desmontaxe. Ese rexistro é o que fai repetible a seguinte configuración de tethering inverso en lugar doutra tarde de redescubrimento.

Artigos relacionados