SOCKS5 sau SOCKS5h: unde are loc rezolvarea DNS
Compară rezolvarea DNS locală și cea efectuată de proxy în curl, identifică erorile de rezolvare și înțelege ce protejează socks5h și ce nu.
În curl, alege socks5h:// când proxy-ul trebuie să rezolve numele destinației. Alege socks5:// când curl trebuie să îl rezolve local și să trimită o adresă către proxy. Ambele folosesc SOCKS5; h de la sfârșit este o convenție de URL a clientului.
Compară modurile înlocuind interfața locală de ascultare cu punctul tău de conectare SOCKS5:
curl --noproxy '' --proxy socks5://127.0.0.1:1080 --connect-timeout 5 --max-time 15 --verbose https://example.com/
curl --noproxy '' --proxy socks5h://127.0.0.1:1080 --connect-timeout 5 --max-time 15 --verbose https://example.com/Se schimbă doar modul de rezolvare. --noproxy '' elimină regulile de ocolire a proxy-ului pentru aceste apeluri, iar limitele de timp delimitează comparația. Opțiunile dedicate echivalente sunt --socks5 și --socks5-hostname. Folosește un nume de gazdă drept țintă: o adresă IP scrisă direct nu necesită rezolvarea numelui destinației și nu poate arăta această diferență.
Un nume poate fi cunoscut doar pe o parte
Să presupunem că proxy-ul rulează într-o rețea de dezvoltare al cărei DNS cunoaște numele unui serviciu intern. Laptopul tău poate să nu rezolve numele în modul socks5, în timp ce socks5h lasă proxy-ul să îl rezolve. Inversează situația, cu un nume definit numai în fișierul hosts al laptopului, iar rezolvarea de la distanță poate fi cea care eșuează.
Și DNS-ul public poate returna adrese diferite din rețele diferite. Rezultatele diferite sunt un motiv să compari adresele alese și accesibilitatea lor, nu să înlocuiești imediat proxy-ul.
- Numele de gazdă al proxy-ului nu poate fi rezolvat: niciun mod nu poate începe. Clientul încă rezolvă
proxy.exampledinsocks5h://proxy.example:1080. - Rezolvarea locală a destinației eșuează: verifică rezolvatorul clientului sau compară cu modul care trimite numele de gazdă către proxy.
- Serverul SOCKS respinge destinația: verifică răspunsul și politica sa. O rezolvare locală reușită nu dovedește accesibilitatea de pe partea îndepărtată.
- Tunelul funcționează, dar verificarea certificatului eșuează: investighează TLS-ul destinației; schimbarea modului DNS nu este un remediu general pentru problemele de încredere.
Un nume de test aflat sub controlul tău și jurnalele serverului pot confirma ce tip de adresă a ajuns la un proxy pe care îl administrezi. O pagină care afișează IP-ul de ieșire nu poate: ea descrie conexiunea externă, nu locul rezolvării DNS.
Beneficiul pentru confidențialitate are un domeniu precis
Rezolvarea de către proxy evită rezolvarea locală a destinației pentru această cerere. Nu criptează SOCKS, nu dovedește că proxy-ul folosește DNS criptat și nu direcționează traficul altor aplicații sau al preîncărcării browserului. Requests cu suport SOCKS folosește aceeași distincție între rezolvarea locală și cea prin proxy; alți clienți pot oferi o setare în locul formei URL din curl. Alege un protocol acceptat de aplicația ta înainte de a copia un punct de conectare din lista de proxy-uri SOCKS5.