Itinuturing ng mga tao ang socks5h na socks5 na may mas madaling baybay, at inaasahan na pareho silang magpapadala ng parehong kahilingan sa parehong lugar. Ang dagdag na titik ang naglilipat ng DNS query sa halip. Sa isang makinang ang resolver at ang proxy ay nasa magkaibang network, iyon ang pagkakaiba ng kahilingang gumagana at ng nabibigo.

Isang titik, dalawang resolver

Ang scheme ang nagtatakda kung saan nagiging address ang pangalan ng destinasyon. Gumagamit ang lokal na resolusyon ng resolver na naka-configure sa iyong makina. Inilalagay ng remote na resolusyon ang hostname sa loob ng SOCKS request, at hinahanap ito ng proxy gamit ang sarili nitong resolver at sariling pananaw sa network. Parehong kumokonekta pa rin ang dalawang anyo sa parehong proxy address sa parehong port, kaya nasa katawan ng kahilingan ang pagkakaiba, hindi sa landas.

Walang nagbabago sa encryption o authentication ang scheme; ang DNS path lang ang gumagalaw. Kaya madaling balewalain ang titik at mahal ang magkamali.

Parehong proxy, ibang kahilingan

Ang dalawang invocation ay nagkaiba sa isang character lang. Lahat ng iba ay pareho:

curl --proxy socks5://proxy.example:1080 https://service.example/
curl --proxy socks5h://proxy.example:1080 https://service.example/

The reference ng proxy ng curl ay nagdodokumento ng mga scheme na ito nang hiwalay, at iyon ang may awtoridad na dahilan para hindi sila ituring na alias. Patakbuhin ang dalawa laban sa isang hindi mapanganib na endpoint na pinapayagan kang gamitin at basahin ang pagkakaiba. Ang matagumpay na remote lookup ay walang sinasabi tungkol sa ibang application, dahil ang mga browser, package manager at runtime ng wika ay bawat isa ang pumipili para sa sarili.

Ang sariling pangalan ng proxy ay nireresolba nang lokal

Sa utos na iyon, kailangang maging address ang proxy.example bago mangyari ang anupaman, at lokal lagi ang lookup na iyon. Ang ilipat ang resolusyon ng service.example sa proxy ay walang ginagawa para sa sariling pangalan ng proxy, na kailangan pa rin ng resolver na maabot ng iyong makina. Dito binabago ng VPN ang larawan.

Kung ang pangalan ng proxy ay nireresolba lamang sa loob ng tunnel, ang koneksyon ay nakadepende sa pagkakaroon ng tunnel bago magsimula ang curl. Kung aling scheme ang mananalo ay nakadepende sa kung aling panig ang makakasagot. Kapag hindi kayang iresolba ng iyong makina ang destinasyon pero kaya ng proxy, nabibigo ang socks5 at nagtatagumpay ang socks5h. Kapag nireresolba ito ng iyong makina sa tunnel at hindi kaya ng proxy, gumagana ang socks5 at nabibigo ang socks5h.

Hindi inilalagay ng scheme ang koneksyon sa proxy sa loob o labas ng VPN; ang routing table ang gumagawa niyon, at hindi ito nakikita ng scheme. Kaya kayang ayusin ng isang tunnel ang isang scheme at sirain ang isa pa sa parehong makina. Ang titik lang ang nagtatakda kung sino ang nagtatanong.

Ano ang kayang iresolba ng bawat panig

Ang pampublikong proxy ay hindi kayang iresolba ang pangalang umiiral lamang sa kumpanya, kaya nabibigo sa proxy ang pagpapadala ng hostname doon at lumalabas bilang error ng proxy kaysa lokal na error ng DNS. Ang proxy sa loob ng parehong pribadong network ay karaniwang kayang iresolba ang mga pangalang iyon, at doon nagiging sulit ang socks5h. Piliin ang lokasyon ng resolver ayon sa patakarang talagang kailangan mo, dahil ang remote DNS ay hindi awtomatikong mas may kakayahan at talagang ibinibigay nito ang pangalan sa ikatlong partido. Para sa pampublikong destinasyon gumagana ang dalawang anyo, kaya piliin ang ginagamit na ng iyong iba pang tool.

Isulat ang pagpipiliang iyon sa runbook at hindi sa komento, at ilayo ang mga kredensyal sa pinagsasaluhang kasaysayan at diagnostic na output. Pagkatapos ay baguhin ang isang variable sa isang pagkakataon: parehong destinasyon, parehong binary, parehong resolver, isang titik.

Aling binary ang sumagot

Ang dalawang binary ng curl sa parehong makina ay maaaring magkaiba sa bersyon at build feature. Sa shell na tulad ng Unix, type -a curl ay naglilista ng bawat tugma sa path at curl --version ay nagpapakita ng mga feature ng tatakbo. Ang wrapper script o alias na mas maaga sa path ay karaniwang dahilan kung bakit hindi tumutugma ang mga resulta sa binary na inaakala mong sinusubukan.

Ang hindi sinusuportahang scheme, proxy na hindi kayang iresolba ang pangalan, at hindi maabot na destinasyon ay tatlong magkaibang error, kaya basahin ang mensahe bago baguhin ang titik. Ang build na walang syntax ng socks5h ay nag-uulat ng proxy string bilang hindi sinusuportahan, na hindi katulad ng pangalang nabigong iresolba. Huwag gawing permanenteng tuntunin para sa lahat ng plataporma ang isang lumang ulat tungkol sa system curl.

Kaugnay na mga artikulo