curl రిమోట్ URL కి బదులు localhost కి ఎందుకు కనెక్ట్ అవుతుంది
VPN ని నిందించే ముందు వారసత్వంగా వచ్చిన ప్రాక్సీ, డిఫాల్ట్ curlrc ఫైల్ మరియు నిజమైన లక్ష్యాన్ని వేరు చేయండి. మూడు నియంత్రిత రన్లు TLS ధృవీకరణను ఆన్లో ఉంచుతాయి.
మీరు ఇచ్చిన URL తో సంబంధం లేకుండా curl localhost కి కనెక్ట్ అవ్వడానికి ప్రయత్నిస్తే, VPN ప్రారంభించడానికి తప్పు స్థలం. స్థానిక HTTP లేదా SOCKS ప్రాక్సీ అనేది ఉద్దేశించిన మొదటి కనెక్షన్ కావచ్చు, మీకు కావలసిన సేవ పూర్తిగా వేరే చోట ఉన్నప్పటికీ. ఆ ప్రాక్సీ ఇకపై నడవకపోతే, curl గమ్యాన్ని చేరుకునే ముందే localhost ప్రయత్నం విఫలమవుతుంది. ప్రాక్సీ ప్రతిస్పందన కూడా గమ్యం సమాధానం ఇచ్చిందనడానికి రుజువు కాదు.
ఈ దశలను క్రమంగా చేయండి మరియు మొదటి కనెక్షన్ ప్రయత్నాన్ని మార్చే మొదటి దశ వద్ద ఆగండి.
మొదట curl యొక్క స్వంత ప్రాక్సీ నియమాలను చదవండి
curl ప్రోటోకాల్-నిర్దిష్ట ప్రాక్సీ వేరియబుల్స్ చదుస్తుంది, ఉదాహరణకు https_proxy మరియు HTTPS_PROXY, అలాగే ప్రోటోకాల్-నిర్దిష్ట విలువ ఏదీ వర్తించనప్పుడు ALL_PROXY. curl ను నిజంగా ప్రారంభించే shell, సేవ లేదా పని యొక్క వాతావరణాన్ని తనిఖీ చేయండి, మీ ప్రస్తుత టెర్మినల్ వాతావరణాన్ని కాదు. ఒక CI పని, ఒక systemd యూనిట్ మరియు ఇంటరాక్టివ్ shell మూడు వేర్వేరు సెట్లను వారసత్వంగా పొందవచ్చు. కనిపించే shell నుండి ఊహించడమే ఈ దర్యాప్తు పూర్తి మధ్యాహ్నాన్ని వృథా చేయడానికి కారణం.
ఒక మినహాయింపు గుర్తుంచుకోదగినది. curl http_proxy ను చిన్న అక్షరాలలో మాత్రమే అంగీకరిస్తుంది; పెద్ద అక్షరాల HTTP_PROXY నిర్లక్ష్యం చేయబడుతుంది, అందుకే అదే వాతావరణం ఇతర సాధనాలలో భిన్నంగా ప్రవర్తిస్తుంది.
విలువలను గోప్యంగా చదవండి, ఎందుకంటే ప్రాక్సీ URL తరచుగా ఆధారాలను కలిగి ఉంటుంది.
తర్వాత డిఫాల్ట్ curl కాన్ఫిగరేషన్ ఫైల్లో ప్రాక్సీ లేదా కనెక్షన్ ఓవర్రైడ్లను తనిఖీ చేయండి, మరియు మీరు నిజంగా ఏ ఎగ్జిక్యూటబుల్ ఫైల్ను నడుపుతున్నారో నిర్ధారించుకోండి. shell ఉపనామం, ఫంక్షన్ లేదా ర్యాపర్ స్క్రిప్ట్ మీ కమాండ్ లైన్లో ఎప్పుడూ కనిపించని ఎంపికలను జోడించవచ్చు.
TLS ఆన్లో ఉంచి మూడు పిలుపులను పోల్చండి
మూడు రన్లకూ ఒక ఆమోదిత డయాగ్నస్టిక్ లక్ష్యాన్ని మరియు అదే బైనరీని ఉపయోగించండి.
curl -v https://service.corp.example/status
curl -q -v https://service.corp.example/status
curl -q --proxy '' -v https://service.corp.example/status
-q డిఫాల్ట్ curlrc ను అణిచివేస్తుంది మరియు పనిచేయడానికి లైన్లో మొదటి పరామితి అయి ఉండాలి. ఇది ప్రాక్సీ వాతావరణ వేరియబుల్స్ను తొలగించదు, అలాగే ఆశించేవారిని ఇది ఆశ్చర్యపరుస్తుంది. మూడవ రూపం ఖాళీ --proxy విలువను జోడిస్తుంది, ఆ పిలుపుకు మాత్రమే వాతావరణం అడిగిన ప్రాక్సీని ఓవర్రైడ్ చేస్తుంది. ప్రతి అవుట్పుట్లో మొదటి కనెక్షన్ ప్రయత్నాన్ని పోల్చండి, తుది స్థితి కోడ్ను కాదు.
వివరణాత్మక అవుట్పుట్ హెడర్లు, టోకెన్లు మరియు ప్రాక్సీ ఆధారాలను బహిర్గతం చేయవచ్చు, కాబట్టి దాన్ని స్థానికంగా ఉంచి పంచుకునే ముందు భాగాలను చదవండి.
ప్రతి ఫలితం ఏమి మినహాయిస్తుంది
డిఫాల్ట్ కాన్ఫిగరేషన్ను దాటవేయడం కనెక్షన్ను మార్చితే, కాన్ఫిగరేషన్ ఫైలే మూలం. వారసత్వ ప్రాక్సీని స్పష్టంగా నిలిపివేయడం దాన్ని మార్చితే, పర్యావరణ వేరియబులే మూలం. రెండూ దాన్ని మార్చకపోయినా localhost ఇంకా కనిపిస్తే, కమాండ్-లైన్ కనెక్షన్ ఓవర్రైడ్లు, హోస్ట్నేమ్ రిజల్యూషన్ మరియు ఎంచుకున్న ఎగ్జిక్యూటబుల్ ఫైల్ను చూడండి. ప్రతి దానికి వేరే పరిష్కారం ఉంది, మరియు వాటిలో ఏదీ రూటింగ్ మార్పు కాదు.
అనుకూల లైబ్రరీ లోడింగ్ లేదా ఇంజెక్ట్ చేసిన నెట్వర్క్ ప్రవర్తన తర్వాతి పొర, మరియు ఒక పర్యావరణ వేరియబుల్ మాత్రమే దానికి రుజువు కాదు.
ప్రాక్సీ నిర్ణయాన్ని VPN నుండి వేరుగా ఉంచండి
curl నేరుగా గమ్యాన్ని ఎంచుకున్న తర్వాత కూడా ఆపరేటింగ్ సిస్టమ్ ఆ కనెక్షన్ను రూట్ చేస్తుంది. అప్లికేషన్ ప్రాక్సీని నిలిపివేయడం VPN మార్గాన్ని లేదా దాని ఫిల్టరింగ్ విధానాన్ని నిలిపివేయదు. నేరుగా యాక్సెస్ పోలికలను ఆ డయాగ్నస్టిక్స్ అనుమతించిన చోట మాత్రమే చేయండి. విధానాన్ని నిశ్శబ్దంగా దాటవేసే పరీక్ష చెల్లుబాటు అయ్యే ఫలితం కాదు, అది ఒక సంఘటన.
స్థానిక ప్రాక్సీ అవసరమైతే, దాని సెట్టింగ్లను తొలగించడం కాకుండా దాని సేవ మరియు చిరునామాను పునరుద్ధరించండి.
ఎంచుకున్న ప్రైవేట్ గమ్యాలకు మాత్రమే నేరుగా యాక్సెస్ అవసరమైతే, ఒక సన్నని ఆమోదిత మినహాయింపును జోడించి, మిగతా అన్నింటికీ ప్రాక్సీని ఉంచండి. ఎంచుకున్న మార్గం యొక్క మొదటి లోపాన్ని భద్రపరచండి, ఎందుకంటే localhost తిరస్కరణ, ప్రాక్సీ CONNECT తిరస్కరణ, సర్టిఫికెట్ వైఫల్యం మరియు అధికార లోపం నాలుగు వేర్వేరు దశలను సూచిస్తాయి.