curl socks5h prieš socks5: kas išsprendžia pagrindinio kompiuterio vardą
Papildoma raidė perkelia DNS užklausą, o ne šifravimą. Palyginkite abi formas ir patikrinkite, kuriam pagrindinio kompiuterio vardui dar reikia vietinio sprendėjo.
Žmonės traktuoja socks5h kaip socks5 su patogesniu rašymu ir tikisi, kad abu nusiųs tą pačią užklausą į tą pačią vietą. Papildoma raidė vietoj to perkelia DNS užklausą. Kompiuteryje, kurio sprendėjas ir proxy yra skirtinguose tinkluose, tai skirtumas tarp užklausos, kuri veikia, ir tos, kuri nepavyksta.
Viena raidė, du sprendėjai
Schema nusprendžia, kur paskirties vardas tampa adresu. Vietinis sprendimas naudoja jūsų kompiuteryje sukonfigūruotą sprendėją. Nuotolinis sprendimas įdeda pagrindinio kompiuterio vardą į SOCKS užklausą, o proxy jo ieško savo sprendėju ir savo požiūriu į tinklą. Abi formos vis dar jungiasi prie to paties proxy adreso tame pačiame porte, tad skirtumas yra užklausos turinyje, ne kelyje.
Niekas schemoje nekeičia šifravimo ar autentifikavimo; juda tik DNS kelias. Todėl raidę lengva nepastebėti, o suklysti brangu.
Tas pats proxy, kita užklausa
Du iškvietimai skiriasi vienu simboliu. Visa kita yra identiška:
curl --proxy socks5://proxy.example:1080 https://service.example/
curl --proxy socks5h://proxy.example:1080 https://service.example/The curl proxy nuoroda aprašo šias schemas atskirai, ir tai yra autoritetingas pagrindas nelaikyti jų aliasais. Paleiskite abu prie nekenksmingo galinio taško, kurį leidžiama naudoti, ir perskaitykite skirtumą. Sėkminga nuotolinė paieška nieko nesako apie kitas programas, nes naršyklės, paketų tvarkyklės ir kalbų vykdymo aplinkos kiekviena renkasi pati.
Pats proxy vardas išsprendžiamas vietiškai
Toje komandoje proxy.example turi tapti adresu prieš įvykstant kam nors kitam, ir ta paieška visada yra vietinė. service.example sprendimo perkėlimas į proxy nieko neduoda pačiam proxy vardui, kuriam vis dar reikia sprendėjo, pasiekiamo jūsų kompiuteriui. Čia VPN pakeičia vaizdą.
Jei proxy vardas išsprendžiamas tik tunelio viduje, ryšys priklauso nuo to, ar tunelis pakeltas prieš curl startą. Kuri schema tada laimi, priklauso nuo to, kuri pusė gali atsakyti. Kai jūsų kompiuteris negali išspręsti paskirties, o proxy gali, socks5 nepavyksta ir socks5h pavyksta. Kai jūsų kompiuteris išsprendžia jį per tunelį, o proxy negali, socks5 veikia ir socks5h nepavyksta.
Schema nepastato ryšio su proxy į VPN vidų ar išorę; tai daro maršrutizavimo lentelė, ir schema jos niekada nemato. Todėl vienas tunelis gali sutaisyti vieną schemą ir sugadinti kitą tame pačiame kompiuteryje. Raidė nusprendžia tik tai, kas užduoda klausimą.
Ką gali išspręsti kiekviena pusė
Viešas proxy negali išspręsti vardo, kuris egzistuoja tik įmonėje, todėl pagrindinio kompiuterio vardo siuntimas ten nepavyksta proxy lygmenyje ir pasirodo kaip proxy klaida, o ne vietinė DNS klaida. Proxy to paties privataus tinklo viduje paprastai gali išspręsti tokius vardus, ir štai kur socks5h pasiteisina. Pasirinkite sprendėjo vietą pagal politiką, kurios iš tikrųjų reikia, nes nuotolinis DNS nėra automatiškai pajėgesnis ir jis tikrai perduoda vardą trečiajai šaliai. Viešai paskirčiai tinka abi formos, tad rinkitės tą, kurią jau naudoja kiti jūsų įrankiai.
Įrašykite šį pasirinkimą į runbook, o ne į komentarą, ir laikykite prisijungimo duomenis už bendros istorijos ir diagnostikos išvesties. Tada keiskite po vieną kintamąjį: ta pati paskirtis, tas pats dvejetainis failas, tas pats sprendėjas, viena raidė.
Kuris dvejetainis failas atsakė
Du curl dvejetainiai failai tame pačiame kompiuteryje gali skirtis versija ir kompiliavimo savybėmis. Unix tipo apvalkale type -a curl išvardija kiekvieną kelyje esantį atitikmenį, o curl --version parodo to, kuris būtų paleistas, savybes. Apvalkalo scenarijus ar slapyvardis anksčiau kelyje yra dažna priežastis, kodėl rezultatai neatitinka dvejetainio failo, kurį, jūsų manymu, testuojate.
Nepalaikoma schema, proxy, kuris negali išspręsti vardo, ir nepasiekiama paskirtis yra trys skirtingos klaidos, tad perskaitykite pranešimą prieš keisdami raidę. Kompiliavimas be socks5h sintaksės praneša proxy eilutę kaip nepalaikomą, o tai nėra tas pats kaip vardas, kurio nepavyko išspręsti. Nepaverskite vienos senos ataskaitos apie sistemos curl nuolatine taisykle visoms platformoms.