curl socks5h verzus socks5: kto prekladá názov hostiteľa
Písmeno navyše presúva dopyt DNS, nie šifrovanie. Porovnajte oba tvary a potom skontrolujte, ktorý názov hostiteľa ešte potrebuje miestny resolver.
Ľudia považujú socks5h za socks5 s príjemnejším pravopisom a očakávajú, že oba pošlú rovnakú požiadavku na rovnaké miesto. Písmeno navyše namiesto toho presúva dopyt DNS. Na stroji, ktorého resolver a ktorého proxy sú v rôznych sieťach, je to rozdiel medzi požiadavkou, ktorá funguje, a tou, ktorá zlyhá.
Jedno písmeno, dva resolvery
Schéma rozhoduje, kde sa názov cieľa stane adresou. Miestny preklad používa resolver nakonfigurovaný na vašom stroji. Vzdialený preklad vkladá názov hostiteľa do požiadavky SOCKS a proxy ho hľadá svojím vlastným resolverom a svojím vlastným pohľadom na sieť. Oba tvary sa stále pripájajú k rovnakej adrese proxy na rovnakom porte, takže rozdiel je v tele požiadavky, nie v ceste.
Nič v schéme nemení šifrovanie ani overovanie; presúva sa len cesta DNS. Preto je písmeno ľahké ignorovať a drahé pomýliť sa.
Rovnaká proxy, iná požiadavka
Obe volania sa líšia jediným znakom. Všetko ostatné je rovnaké:
curl --proxy socks5://proxy.example:1080 https://service.example/
curl --proxy socks5h://proxy.example:1080 https://service.example/The referencia proxy v curl dokumentuje tieto schémy oddelene, a to je autoritatívny dôvod, prečo ich nepovažovať za aliasy. Spustite oba proti neškodnému koncovému bodu, ktorý smiete používať, a prečítajte si rozdiel. Úspešné vzdialené hľadanie nič nehovorí o iných aplikáciách, pretože prehliadače, správcovia balíčkov a behové prostredia jazykov si každý vyberá sám.
Vlastný názov proxy sa prekladá miestne
V tom príkaze sa proxy.example musí stať adresou skôr, ako sa stane čokoľvek iné, a toto hľadanie je vždy miestne. Presunutie prekladu service.example na proxy nič nerobí pre vlastný názov proxy, ktorý stále potrebuje resolver, na ktorý sa váš stroj dostane. Tu VPN mení obraz.
Ak sa názov proxy prekladá len vnútri tunela, spojenie závisí od toho, či je tunel hore pred štartom curl. Ktorá schéma potom zvíťazí, závisí od toho, ktorá strana dokáže odpovedať. Keď váš stroj nevie preložiť cieľ, ale proxy áno, socks5 zlyhá a socks5h uspeje. Keď ho váš stroj preloží cez tunel a proxy nie, socks5 funguje a socks5h zlyhá.
Schéma neumiestňuje spojenie s proxy dovnútra ani von z VPN; robí to smerovacia tabuľka a schéma ju nikdy nevidí. Preto jeden tunel môže opraviť jednu schému a pokaziť druhú na tom istom stroji. Písmeno rozhoduje len o tom, kto položí otázku.
Čo ktorá strana dokáže preložiť
Verejná proxy nevie preložiť názov, ktorý existuje len vo firme, takže poslanie názvu hostiteľa tam zlyhá na proxy a prejaví sa ako chyba proxy, nie ako miestna chyba DNS. Proxy v tej istej privátnej sieti zvyčajne také názvy preložiť vie, a práve tam si socks5h zaslúži miesto. Vyberte umiestnenie resolvera podľa politiky, ktorú skutočne potrebujete, pretože vzdialené DNS nie je automaticky schopnejšie a názov naozaj odovzdáva tretej strane. Pre verejný cieľ fungujú oba tvary, takže uprednostnite ten, ktorý už používajú vaše ďalšie nástroje.
Zapíšte tú voľbu do runbooku, nie do komentára, a držte prihlasovacie údaje mimo zdieľanej histórie a diagnostického výstupu. Potom meňte jednu premennú po druhej: rovnaký cieľ, rovnaký binárny súbor, rovnaký resolver, jedno písmeno.
Ktorý binárny súbor odpovedal
Dva binárne súbory curl na tom istom stroji sa môžu líšiť verziou a možnosťami zostavenia. V unixovom shelli type -a curl vypíše každú zhodu v ceste a curl --version ukáže vlastnosti toho, ktorý by sa spustil. Obalový skript alebo alias skôr v ceste je častým dôvodom, prečo výsledky nezodpovedajú binárke, o ktorej si myslíte, že ju testujete.
Nepodporovaná schéma, proxy, ktorá nevie preložiť názov, a nedostupný cieľ sú tri rôzne chyby, takže si prečítajte správu, než zmeníte písmeno. Zostavenie bez syntaxe socks5h hlási reťazec proxy ako nepodporovaný, čo nie je to isté ako názov, ktorý sa nepodarilo preložiť. Nerobte z jedného starého hlásenia o systémovom curle trvalé pravidlo pre každú platformu.