Sto impostando il proxy nelle impostazioni APN della mia rete mobile nello screenshot mostrato di seguito:
Funziona bene. Ho verificato tramite whatismyip. Tuttavia, quando abilito lhotspot sul dispositivo e utilizzo questo hotspot su un altro dispositivo e controllo lIP da esso, viene visualizzato lIP del mio provider di servizi mobili originale e non lIP proxy.
Perché tale comportamento se lhotspot dovrebbe utilizzare la rete mobile e il proxy è impostato in APN per questo? Come posso far funzionare il proxy anche sul dispositivo utilizzando lhotspot?
Nota: non voglio impostare il proxy nelle impostazioni avanzate sullopzione Wi-Fi di un altro dispositivo mentre scelgo questo hotspot. Lapp che sto cercando di utilizzare rileva il proxy impostato in Wi-Fi, quindi questa è la mia unica opzione.
Answer
La tua domanda è relativo alla comprensione del modello OSI . I proxy utilizzano il protocollo http
/ https
o socks
, presumo tu stia parlando di http
che è un protocollo Application Layer (L7) nel modello OSI. Quando unapplicazione genera un messaggio http
, viene trasferita al livello inferiore. In caso di https
, il messaggio viene crittografato da SSL / TLS che sono protocolli L6 In L4 il messaggio riceve unintestazione TCP e poi in L3 viene convertito in un pacchetto IP. Questo pacchetto passa attraverso il NAT e il filtraggio dei firewall in L3, e infine attraverso RRM / PDCP / RLC (se si utilizza Mobile Data), MAC e instradamento del kernel in L2. A L1 viene trasmesso tramite Wi-Fi come 802.11
frame o segnali CDMA / TDMA / FDMA su dati mobili.
Lhotspot daltro canto si basa principalmente su 2 strumenti dello spazio utente; hostapd
– che crea un punto di accesso Wi-Fi su OSI L2 – e dnsmasq
(fino ad Android 9) – che funziona come server DHCP / DNS su OSI L7. Se lhost connesso utilizza il telefono come server DNS (come configurato da DHCP), il telefono riceve le query DNS e le inoltra ricorsivamente come pacchetti UDP / IP al server DNS upstream su Internet (qualunque sia dnsmasq
è configurato per luso). Il resto del traffico proveniente dalla rete hotspot è NAT e instradato su L3 / L2.
Quindi non vedi nessuno dei (pacchetti IP) il traffico proveniente dagli host connessi passa attraverso lo stack http
sul telefono Android, quindi non viene inoltrato al server proxy. È responsabilità delle applicazioni come i browser Web rendere http(s)
connessioni al server proxy, non dirette ly a host remoto come il server web. Non è possibile creare un hotspot che può essere configurato per utilizzare http
proxy su OSI L7. Le impostazioni proxy (host / porta) impostate per Wi-Fi o APN o globalmente sono appena inoltrate alle applicazioni, ciascuna applicazione deve creare una connessione proxy da sola o semplicemente ignorare le informazioni sul proxy. È necessario fornire questi dettagli proxy alle app su ogni host connesso tramite hotspot. Per ulteriori dettagli, vedere la domanda collegata di seguito.
Tuttavia è possibile reindirizzare forzatamente lintero traffico verso un server proxy utilizzando NAT / REDIRECT / TPROXY del kernel Linux / Android (su L3) e la tabella di instradamento (su L2). Ecco come funzionano i proxy , ma ci sono limitazioni . I client di posta elettronica utilizzano protocolli IMAP / POP3 / SMTP (L6 / 7) che non funzionano con il metodo http GET
, ma richiedono http CONNECT
proxy. Questultimo può solo inoltrare il traffico TCP, per UDP è necessario almeno il proxy SOCKS5 che funziona a L5. DNS e principalmente app di giochi e chiamate vocali generano traffico UDP, quindi non funzionano con http
proxy affatto. Lutilità ping
, ad esempio, utilizza ICMP (in L3) che “non può essere incapsulato in TCP o UDP, quindi non funziona anche con SOCKS5.
Quindi non è possibile reindirizzare tutto il traffico verso un (proxy ) senza utilizzare una soluzione L2 / 3 come VPN. Per maggiori dettagli, vedi Come impostare il proxy HTTPS Wi-Fi, non HTTP, tramite adb shell?
Perché un simile comportamento se si suppone che lhotspot utilizzi la rete mobile e il proxy è impostato nellAPN per esso?
Lhotspot dovrebbe utilizzare la rete mobile, le app dovrebbero usare il proxy. Il proxy che hai configurato in APN non è applicato a livello di sistema.
Non desidero impostare il proxy nelle impostazioni avanzate sullopzione WiFi di un altro dispositivo durante la scelta di questo hotspot.
Sfortunatamente questo è il più semplice Altri metodi richiedono il rooting e / o lutilizzo di app di terze parti (per creare VPN). Vedi la domanda collegata sopra su come applicare il proxy in modo trasparente.
Rispondi
Il motivo per cui stai vedendo i sintomi è perché quando accendi il tuo hotspot pensalo come se girassi il telefono in un router. Pertanto, qualsiasi impostazione di rete sullhot spot non cambierà lindirizzo IP individuale dei dispositivi. Quando ti connetti al tuo hotspot, si connette da quel dispositivo IP e non quando viene modificato nelle impostazioni di rete perché le impostazioni di rete modificate sono ultime nella gerarchia delle cose. Credo che se cerchi su Google ci sono app che falsificheranno lindirizzo IP dei tuoi dispositivi essenzialmente lo stesso concetto di un proxy non rilevabile.
Commenti
- ma alla fine la richiesta inviata tramite la mia connessione mobile deve passare attraverso quellAPN e deve seguire quel proxy, giusto? lo fa quando lo uso sullo stesso dispositivo anche quando lhotspot è attivo. Come hai detto, è lultima gerarchia delle cose, quindi dopo che la connessione è stata effettuata tramite hotspot dovrebbe passare attraverso quel proxy nelle impostazioni di connessione mobile dopo di che