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ಗೆ ಅನ್ವಯಿಸಿ; ಅಪ್ಲಿಕೇಶನ್ನ ಸ್ವಂತ ರನ್ಟೈಮ್ ಪ್ರಾಕ್ಸಿಗಳನ್ನು ಬೇರೆ ರೀತಿಯಲ್ಲಿ ಪತ್ತೆಮಾಡಿ ಸಂಯೋಜಿಸಬಹುದು.