Setez proxy-ul în setările APN ale rețelei mele mobile din imaginea de mai jos:
Funcționează bine. Am verificat prin whatismyip. Cu toate acestea, când activez hotspot-ul pe dispozitiv și îl folosesc pe alt dispozitiv și verific IP-ul de pe acesta, acesta afișează IP-ul meu furnizor de servicii mobile original și nu IP-ul proxy.
De ce un astfel de comportament dacă hotspot-ul ar trebui să utilizeze rețeaua mobilă și proxy-ul este setat în APN pentru aceasta? Cum pot face proxy să funcționeze și pe dispozitiv folosind hotspot?
Notă: nu vreau să setez proxy sub setarea avansată pe opțiunea wifi a altor dispozitive în timp ce aleg acest hotspot. Aplicația pe care încerc să o folosesc detectează setul de proxy sub wifi, deci aceasta este singura mea opțiune.
Răspunde
Întrebarea ta este legat de înțelegerea modelului OSI . Procurații folosesc protocolul http
/ https
sau socks
, presupun că vorbiți despre http
care este un protocol Application Layer (L7) în modelul OSI. Când o aplicație generează mesajul http
, acesta este predat stratului inferior. În cazul https
, mesajul este criptat prin SSL / TLS care sunt protocoale L6. La L4 mesajul primește un antet TCP și apoi la L3 este convertit într-un pachet IP. Acest pachet trece prin filtrarea NAT și firewall-uri la L3 și, în cele din urmă, prin RRM / PDCP / RLC (dacă se utilizează date mobile), MAC și rutare kernel la L2. La L1, acesta este transmis prin Wi-Fi ca 802.11
cadre sau semnale CDMA / TDMA / FDMA prin date mobile.
Pe de altă parte, hotspotul se bazează în principal pe 2 instrumente de spațiu utilizator; hostapd
– care creează Punct de acces Wi-Fi la OSI L2 – și dnsmasq
(până la Android 9) – care funcționează ca server DHCP / DNS la OSI L7. Dacă gazda conectată folosește telefonul ca server DNS (așa cum este configurat de DHCP), telefonul primește interogări DNS și le redirecționează recursiv ca pachete UDP / IP către serverul DNS din amonte pe internet (indiferent de dnsmasq
este configurat pentru a fi utilizat). Restul traficului provenit din rețeaua hotspot este NAT și este direcționat la L3 / L2.
Deci nu vedeți niciunul dintre (pachetele IP) traficul provenit de la gazdele conectate trece prin http
stivă pe telefonul Android, prin urmare nu este redirecționat către serverul proxy. Este responsabilitatea aplicațiilor precum browserele web să facă http(s)
conexiuni la serverul proxy, nu directe direct la gazdă la distanță ca server web. Nu este posibil să creați un hotspot care poate fi configurat pentru a utiliza proxy http
la OSI L7. Setările proxy (gazdă / port) pe care le setăm pentru Wi-Fi sau APN sau la nivel global sunt tocmai redirecționată către aplicații, fiecare aplicație trebuie să creeze singură conexiune proxy sau pur și simplu să ignore informațiile proxy. Trebuie să furnizați aceste detalii proxy aplicațiilor de pe fiecare gazdă conectată prin hotspot. Pentru mai multe detalii, consultați întrebarea legată mai jos.
Cu toate acestea, este posibil să redirecționați cu forță întregul trafic către un server proxy utilizând NAT / REDIRECT / TPROXY (kernel Linux / Android) (la L3) și tabela de rutare (la L2). Așa funcționează proxificatorii. , dar există limitări . Clienții de e-mail utilizează protocoale IMAP / POP3 / SMTP (L6 / 7) care nu au funcționat cu metoda http GET
, în schimb necesită proxy http CONNECT
. Ultimele pot redirecționa trafic TCP doar, pentru UDP este nevoie de cel puțin proxy SOCKS5 care funcționează la L5. DNS și mai ales jocuri și aplicații de apelare vocală generează trafic UDP, așa că nu vor funcționa cu http
proxy-uri deloc. Utilitarul ping
– de exemplu – folosește ICMP (la L3) care nu poate fi încapsulat în TCP sau UDP, deci nu va funcționa și cu SOCKS5.
Deci, nu este posibil în sens adevărat să redirecționați tot traficul către o telecomandă (proxy ) server fără a utiliza o soluție L2 / 3 precum VPN. Pentru mai multe detalii consultați Cum se setează proxy-ul HTTPS Wi-Fi, nu HTTP, prin shell adb?
De ce un astfel de comportament dacă hotspot-ul ar trebui să utilizeze rețeaua mobilă și proxy-ul este setat în APN pentru aceasta?
Hotspot ar trebui să utilizeze rețeaua mobilă, aplicațiile ar trebui să folosească proxy-ul. Proxy-ul configurat în APN nu este aplicat la nivel de sistem.
Nu vreau să setez proxy sub setarea avansată pe opțiunea WiFi a altui dispozitiv în timp ce aleg acest hotspot.
Din păcate, acesta este cel mai simplu modul de protecție, alte metode necesită fie înrădăcinare și / sau utilizarea aplicațiilor terțe (pentru a crea VPN). Vedeți întrebarea legată mai sus despre cum să aplicați proxy în mod transparent.
Răspuns
Motivul pentru care vedeți simptomele este pentru că atunci când vă porniți hotspotul, gândiți-vă la el ca la întoarcerea telefonului într-un router. Deci, orice setări de rețea pe hot spot nu vor schimba adresa IP individuală a dispozitivelor. Când vă conectați la hotspot-ul dvs., acesta se conectează prin acel dispozitiv IP și nu când este modificat în setările de rețea, deoarece setările de rețea modificate sunt ultimele în ierarhia lucrurilor. Cred că dacă îl căutați pe google, acestea sunt aplicații care vă vor falsifica adresa ip a dispozitivelor, în esență, același concept ca un proxy doar nedetectabil.
Comentarii
- dar în cele din urmă solicitarea trimisă prin conexiunea mea mobilă trebuie să treacă prin acel APN și trebuie să urmeze acel proxy nu? o face atunci când îl folosesc pe același dispozitiv chiar și atunci când hotspot-ul este activat. Așa cum ați spus că este ultima moștenire a lucrurilor, așa că după ce conexiunea se face prin hotspot, ar trebui să treacă prin acel proxy din setările conexiunii mobile după aceea