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 ਲਈ ਲਾਗੂ ਕਰੋ; ਐਪਲੀਕੇਸ਼ਨ ਦਾ ਆਪਣਾ ਰਨਟਾਈਮ ਪ੍ਰੌਕਸੀ ਵੱਖਰੇ ਢੰਗ ਨਾਲ ਲੱਭ ਅਤੇ ਇਕੱਠੇ ਕਰ ਸਕਦਾ ਹੈ।

ਸੰਬੰਧਿਤ ਲੇਖ