curlની SOCKSથી HTTP proxy સાંકળ
curl સમર્થિત SOCKS–HTTP સાંકળ ગોઠવો, endpointનો ક્રમ સમજો અને જોડતાં પહેલાં દરેક તબક્કો તપાસો.
curlનો --preproxy વિકલ્પ HTTP અથવા HTTPS proxy સુધી પહોંચતાં પહેલાં SOCKS proxy સાથે જોડાય છે. તે આ ચોક્કસ સાંકળને ટેકો આપે છે, મનસ્વી proxy સર્વરની યાદીને નહીં.
માર્ગ છે client → SOCKS endpoint → HTTP proxy → લક્ષ્ય. આ આદેશમાં બંને દસ્તાવેજી endpoint બદલો:
curl --preproxy socks5h://203.0.113.10:1080 --proxy http://203.0.113.20:8080 --noproxy '' --connect-timeout 5 --max-time 20 --verbose https://example.com/
SOCKS સેવા HTTP proxyના સરનામા અને પોર્ટ સુધી પહોંચી શકવી જોઈએ. પછી HTTP proxyએ લક્ષ્ય વિનંતી સ્વીકારવી જોઈએ. બીજો proxy hostname વાપરે તો પહેલો SOCKS mode તે નામ ક્યાં resolve થાય છે તે નક્કી કરે છે; આંકડાવાળો endpoint આ શોધ ટાળે છે.
નિષ્ફળ તબક્કો શોધવો
પહેલાં દરેક endpoint મારફતે વિનંતી અલગ ચકાસો; HTTP તબક્કા માટે સમય મર્યાદાવાળી HTTP proxy કસોટી વાપરો. બંને ચાલે તોય પહેલો proxy બીજા સુધી ન પહોંચી શકે એટલે જોડાયેલો માર્ગ નિષ્ફળ થઈ શકે છે.
વિગતવાર trace જોડાણના ક્રમમાં વાંચો. બીજા proxy સુધી પહોંચતાં થતી SOCKS નિષ્ફળતા HTTP proxy વેબસાઇટ તરફ CONNECT સ્વીકારે કે નકારે તે નિર્ણય પહેલાં આવે છે. કયો handshake નિષ્ફળ થયો તે નોંધો.
વધારાનો તબક્કો ક્યારે ઉપયોગી છે
મંજૂર HTTP proxy સુધી SOCKS માર્ગે પહોંચાતું હોય ત્યારે આ ગોઠવણી ઉપયોગી થઈ શકે છે. પણ તે બીજી સેવા અને નેટવર્ક માર્ગ ઉમેરે છે જે નિષ્ફળ થઈ શકે અથવા વિલંબ વધારી શકે છે. જાહેર proxy યાદીના endpoint સાંકળવાથી વિશ્વસનીયતા કે અનામિતાની ખાતરી મળતી નથી અને જોડાણ સંભાળતા પક્ષો પર વિશ્વાસ જરૂરી રહે છે.
--preproxy માટે curl 7.52.0 અથવા નવી આવૃત્તિ જોઈએ; બીજી એપ્લિકેશન આ જ ગોઠવણીને ટેકો ન પણ આપે.