curl ለምን HTTP_PROXYን ችላ ይላል
የcurlን ሆን ተብሎ የተደረገ HTTP_PROXY ልዩ ደንብ፣ የፕሮቶኮል ተለዋዋጮችን፣ ALL_PROXYን እና በአካባቢ ተለዋዋጮች የፕሮክሲ ሙከራን ይረዱ።
ለHTTP መዳረሻዎች በትንሽ ፊደል የተጻፈውን http_proxy ያዘጋጁ። curl በትልቅ ፊደል የተጻፈውን HTTP_PROXY ሆን ብሎ ችላ ይላል። በPOSIX ሼል፦
http_proxy=http://127.0.0.1:8080 curl http://example.com/
https_proxy=http://127.0.0.1:8080 curl https://example.com/እነዚህ እሴት መመደቦች የሚሠሩት ወዲያውኑ ከኋላቸው ለሚመጣው ትዕዛዝ ብቻ ነው። በምሳሌው ያለውን ማዳመጫ አድራሻ በራስዎ ፕሮክሲ ይተኩ፤ የሕዝብ መዳረሻ ነጥቦችን ለማወዳደር ከHTTP ፕሮክሲ ዝርዝር አንዱን ይምረጡ። https_proxy ተለዋዋጭ ለHTTPS መዳረሻዎች መንገድ ይመርጣል፤ http:// ያለበት እሴት አሁንም ወደ መዳረሻው ቱነል መፍጠር የሚችል መደበኛ HTTP ፕሮክሲ ማለት ነው። PowerShell እና የWindows ትዕዛዝ ሼሎች ሌላ የእሴት መመደብ አጻጻፍ ይጠቀማሉ።
ይህ በትልቅ ፊደል የተጻፈ ስም ለምን አደገኛ ነው
የCGI አካባቢዎች የገቢ ጥያቄ ራስጌዎችን በትልቅ ፊደል ወደተጻፉ HTTP_ ተለዋዋጮች ሊቀይሩ ይችላሉ። ስለዚህ Proxy የሚባል ራስጌ HTTP_PROXY ሊሆን ይችላል። እንደ ወጪ ግንኙነት ቅንብር መተማመን የጥያቄው ውሂብ ፕሮክሲውን እንዲመርጥ ይፈቅዳል። curl ትንሽ ፊደል መጠየቁ ይህን ማዛመድ ያስቀራል፤ ልዩ ደንቡ ለHTTPS እና ለሌሎች ፕሮቶኮል ተለዋዋጮች በተመሳሳይ መንገድ አይሠራም።
ተለዋዋጩን መቀየር መንገዱን ካልቀየረ
መጀመሪያ ለፕሮቶኮሉ የተለየ ተለዋዋጭ፣ ከዚያ አማራጩን ALL_PROXY ይፈልጉ። የሚዛመድ NO_PROXY ደንብ ፕሮክሲውን ሊያልፍ ይችላል። የትንሽ ፊደል ስሪቶች እና ተፎካካሪ ትርጓሜዎችም አስፈላጊ ናቸው። ይህ ለUnix መሰል ሼል የተዘጋጀ ዑደት የመግቢያ መረጃ ሊይዙ የሚችሉ እሴቶችን ሳያትም መኖራቸውን ብቻ ያሳያል፦
for name in http_proxy HTTP_PROXY https_proxy HTTPS_PROXY all_proxy ALL_PROXY no_proxy NO_PROXY; do
if printenv "$name" >/dev/null; then
printf '%s is set\n' "$name"
fi
doneየተዘረዘሩትን ትርጓሜዎች በአካባቢዎ ይመርምሩ። አንዱ እንደገና ከታየ፣ የሚያስጀምረውን ሼል፣ አገልግሎት፣ IDE፣ ኮንቴይነር ወይም CI ቅንብር ያረጋግጡ። መኖሩ ሊሆኑ የሚችሉ ግብዓቶችን ያመለክታል፤ የትኛው እሴት ቅድሚያ እንዳገኘ አይናገርም።
አንድን ጥያቄ ከእነዚህ የፕሮክሲ ምርጫዎች ለመለየት፣ መዳረሻ ነጥቡንም ባዶ የማለፊያ ዝርዝርንም ይስጡ፦
curl --proxy http://127.0.0.1:8080 --noproxy '' --connect-timeout 5 --max-time 15 --verbose https://example.com/ቀጥተኛ ግንኙነት ሲፈቀድ ለማወዳደር፦
curl --noproxy '*' --connect-timeout 5 --max-time 15 --verbose https://example.com/እነዚህ ትዕዛዞች በውርስ የተገኘ መንገድን ከግንኙነት ብልሽት ለመለየት ይረዳሉ። ተጨማሪ የአካባቢ ቅንብሮችን ከመቀየርዎ በፊት የፕሮክሲ ሙከራውን ውጤቶች ደረጃ በደረጃ ያንብቡ። የcurlን የተለዋዋጭ ደንቦች ለcurl ይጠቀሙ፤ የመተግበሪያው የራሱ ማስኬጃ አካባቢ ፕሮክሲዎችን በተለየ መንገድ ሊያገኝና ሊያዋህድ ይችላል።