ਤੁਹਾਡੀ ਮਨਜ਼ੂਰਸ਼ੁਦਾ ਪ੍ਰੌਕਸੀ ਇੱਕ ਜੰਪ ਹੋਸਟ ਉੱਤੇ ਚੱਲਦੀ ਹੈ ਜਿੱਥੇ ਉਹ ਸਿਰਫ਼ loopback ਉੱਤੇ ਸੁਣਦੀ ਹੈ, ਇਸ ਲਈ ਉਸ ਮਸ਼ੀਨ ਤੋਂ ਬਾਹਰੋਂ ਕੁਝ ਵੀ ਉਸ ਤੱਕ ਨਹੀਂ ਪਹੁੰਚ ਸਕਦਾ। ਤੁਹਾਨੂੰ VPN ਜਾਂ ਨਵੀਂ ਪ੍ਰੌਕਸੀ ਦੀ ਲੋੜ ਨਹੀਂ; ਤੁਹਾਨੂੰ ਉਸ ਮਸ਼ੀਨ ਦਾ ਇੱਕ ਪੋਰਟ ਆਪਣੇ ਇੱਕ ਪੋਰਟ ਤੱਕ ਲਿਜਾਣ ਦੀ ਲੋੜ ਹੈ। ਸਥਾਨਕ ਫ਼ਾਰਵਰਡ ਠੀਕ ਇਹੀ ਕਰਦਾ ਹੈ, ਅਤੇ ਇਸ ਲਈ ਇੱਕ ਕਮਾਂਡ ਅਤੇ ਐਪਲੀਕੇਸ਼ਨ ਦੀ ਇੱਕ ਸੈਟਿੰਗ ਲੱਗਦੀ ਹੈ। ਉਲਝਣ ਆਮ ਤੌਰ ਉੱਤੇ ਇਹ ਮਿਲਾਉਣ ਨਾਲ ਹੁੰਦੀ ਹੈ ਕਿ ਕਿਹੜਾ loopback ਪਤਾ ਕਿਹੜੀ ਮਸ਼ੀਨ ਦਾ ਹੈ।

ਤੈਅ ਕਰੋ ਕਿ ਕੀ ਪਹਿਲਾਂ ਹੀ ਕੋਈ ਸਥਿਰ ਪ੍ਰੌਕਸੀ ਹੈ

ਇਹ ਤਕਨੀਕ ਉਸ ਸੇਵਾ ਨੂੰ ਫ਼ਾਰਵਰਡ ਕਰਦੀ ਹੈ ਜੋ ਪਹਿਲਾਂ ਹੀ ਚੱਲ ਰਹੀ ਹੈ। ਜੇ ਦੂਰਸਥ ਹੋਸਟ ਉੱਤੇ ਸਿਰਫ਼ SSH ਡੀਮਨ ਹੈ ਅਤੇ ਕੋਈ ਪ੍ਰੌਕਸੀ ਨਹੀਂ, ਤਾਂ ਕਿੰਨਾ ਵੀ ਫ਼ਾਰਵਰਡ ਕਰੋ ਉਹ ਬਣੇਗੀ ਨਹੀਂ, ਅਤੇ ਕਨੈਕਸ਼ਨ ਦੂਰਸਥ ਪਾਸੇ ਤੋਂ ਰੱਦ ਕੀਤਾ ਜਾਵੇਗਾ। ਪੁਸ਼ਟੀ ਕਰੋ ਕਿ ਪ੍ਰੌਕਸੀ ਬੱਧ ਹੈ, ਉਸ ਦਾ ਪੋਰਟ ਕੀ ਹੈ, ਅਤੇ ਉਹ 127.0.0.1 ਉੱਤੇ ਸੁਣਦੀ ਹੈ ਜਾਂ ਕਿਸੇ ਖ਼ਾਸ ਇੰਟਰਫ਼ੇਸ ਪਤੇ ਉੱਤੇ, ਕਿਉਂਕਿ ਫ਼ਾਰਵਰਡ ਨੂੰ ਉਸੇ ਪਤੇ ਨੂੰ ਨਿਸ਼ਾਨਾ ਬਣਾਉਣਾ ਹੈ।

ਇਸ ਨੂੰ ਪਹਿਲਾਂ ਪੁਸ਼ਟੀ ਕਰਨ ਨਾਲ ਤੁਸੀਂ ਉਸ ਸੁਰੰਗ ਨੂੰ ਡੀਬੱਗ ਕਰਨ ਤੋਂ ਬਚ ਜਾਂਦੇ ਹੋ ਜੋ ਕਦੇ ਕਿਸੇ ਚੀਜ਼ ਨਾਲ ਜੁੜੀ ਹੀ ਨਹੀਂ ਸੀ।

ਫ਼ਾਰਵਰਡ ਬਣਾਓ ਅਤੇ ਕਮਾਂਡ ਪੜ੍ਹੋ

ਤੁਹਾਨੂੰ ਜੋ ਰੂਪ ਚਾਹੀਦਾ ਹੈ ਉਹ ਤੁਹਾਡੇ ਲੈਪਟਾਪ ਉੱਤੇ ਇੱਕ loopback ਪੋਰਟ ਬੰਨ੍ਹਦਾ ਹੈ ਅਤੇ ਸਰਵਰ ਵੱਲੋਂ ਇਸ ਨੂੰ ਪ੍ਰੌਕਸੀ ਦੇ ਪਤੇ ਨਾਲ ਜੋੜਦਾ ਹੈ, ਜਿਵੇਂ ਸਰਵਰ ਇਸ ਨੂੰ ਦੇਖਦਾ ਹੈ।

ssh -NT -o ControlPath=none -o ExitOnForwardFailure=yes \
  -L 127.0.0.1:13128:127.0.0.1:3128 [email protected]

-N ਦੂਰਸਥ ਕਮਾਂਡ ਨੂੰ ਦਬਾਉਂਦਾ ਹੈ ਅਤੇ -T termios ਨਿਰਧਾਰਨ ਨੂੰ ਦਬਾਉਂਦਾ ਹੈ, ਕਿਉਂਕਿ ਤੁਹਾਨੂੰ ਸ਼ੈੱਲ ਨਹੀਂ, ਸੁਰੰਗ ਚਾਹੀਦੀ ਹੈ। ਪਹਿਲਾ loopback ਪਤਾ ਉਹ ਹੈ ਜਿੱਥੇ ਲੈਪਟਾਪ ਸੁਣਦਾ ਹੈ; ਦੂਜਾ SSH ਸਰਵਰ ਹੱਲ ਕਰਦਾ ਹੈ, ਇਸ ਲਈ ਉੱਥੇ 127.0.0.1 ਦਾ ਮਤਲਬ ਉਸ ਮਸ਼ੀਨ ਦੀ ਪ੍ਰੌਕਸੀ ਹੈ। ExitOnForwardFailure ਸਥਾਨਕ ਪੋਰਟ ਪਹਿਲਾਂ ਹੀ ਲਿਆ ਹੋਣ 'ਤੇ ਕਮਾਂਡ ਨੂੰ ਜ਼ੋਰ ਨਾਲ ਫੇਲ੍ਹ ਕਰਦਾ ਹੈ, ਕੁਝ ਵੀ ਫ਼ਾਰਵਰਡ ਨਾ ਕਰਨ ਵਾਲਾ ਸੈਸ਼ਨ ਸ਼ੁਰੂ ਕਰਨ ਦੀ ਬਜਾਏ। ਨਿਸ਼ਾਨਾ ਪਤਾ ਉਵੇਂ ਲਿਖੋ ਜਿਵੇਂ ਸਰਵਰ ਇਸ ਨੂੰ ਹੱਲ ਕਰਦਾ ਹੈ, ਕਿਉਂਕਿ ਜਿਹੜਾ ਨਾਮ ਸਿਰਫ਼ ਤੁਹਾਡਾ ਲੈਪਟਾਪ ਹੱਲ ਕਰ ਸਕਦਾ ਹੈ ਉਹ ਦੂਜੇ ਪਾਸੇ ਫੇਲ੍ਹ ਹੋਵੇਗਾ।

ਇਸ ਵਿੱਚੋਂ ਕੁਝ ਵੀ ਕੰਮ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਸਰਵਰ ਦੀ ਆਪਣੀ ਨੀਤੀ ਲਾਗੂ ਹੁੰਦੀ ਹੈ। AllowTcpForwarding ਨੂੰ ਇਸ ਦੀ ਇਜਾਜ਼ਤ ਦੇਣੀ ਚਾਹੀਦੀ ਹੈ, ਅਤੇ PermitOpen ਸੀਮਤ ਕਰ ਸਕਦਾ ਹੈ ਕਿ ਸੈਸ਼ਨ ਕਿਹੜੀਆਂ ਮੰਜ਼ਿਲਾਂ ਅਤੇ ਪੋਰਟਾਂ ਤੱਕ ਪਹੁੰਚ ਸਕਦਾ ਹੈ, ਇਸ ਲਈ ਕਲਾਇੰਟ ਵੱਲੋਂ ਸਵੀਕਾਰਿਆ ਫ਼ਾਰਵਰਡ ਵੀ ਸਰਵਰ ਰੱਦ ਕਰ ਸਕਦਾ ਹੈ। ਰੱਦ ਕਲਾਇੰਟ ਉੱਤੇ ਫ਼ਾਰਵਰਡ ਜਾਂ ਚੈਨਲ ਗਲਤੀ ਵਜੋਂ ਦਿਖਦੀ ਹੈ, ਅਤੇ ਉਹ ਸੁਨੇਹਾ ਪੜ੍ਹਨਾ ਕਮਾਂਡ ਸੰਪਾਦਿਤ ਕਰਨ ਤੋਂ ਤੇਜ਼ ਹੈ।

ਇੱਕ ਐਪਲੀਕੇਸ਼ਨ ਨੂੰ ਫ਼ਾਰਵਰਡ ਵੱਲ ਮੋੜੋ

ਐਪਲੀਕੇਸ਼ਨ ਨੂੰ http://127.0.0.1:13128 ਉੱਤੇ HTTP ਪ੍ਰੌਕਸੀ ਵਰਤਣ ਲਈ ਸੰਰਚਿਤ ਕਰੋ, ਜੇ ਦੂਰਸਥ ਪ੍ਰੌਕਸੀ ਮੰਗੇ ਤਾਂ ਪ੍ਰਮਾਣ-ਪੱਤਰਾਂ ਸਮੇਤ। HTTPS ਮੰਜ਼ਿਲਾਂ ਲਈ ਐਪਲੀਕੇਸ਼ਨ ਦੀ ਆਪਣੀ ਪ੍ਰਮਾਣਪੱਤਰ ਜਾਂਚ ਰੱਖੋ, ਕਿਉਂਕਿ ਪ੍ਰੌਕਸੀ ਸੁਰੰਗ ਇਸ ਦੀ ਥਾਂ ਨਹੀਂ ਲੈਂਦੀ। ਇਹ ਇੱਕ ਸੇਵਾ ਦਾ ਸਥਿਰ ਫ਼ਾਰਵਰਡ ਹੈ, ਇਸ ਲਈ ਐਪਲੀਕੇਸ਼ਨ ਨੂੰ ਪ੍ਰੌਕਸੀ ਬਾਰੇ ਦੱਸਣਾ ਪਵੇਗਾ, ਇਸ ਨੂੰ ਆਪ ਲੱਭਣ ਲਈ ਛੱਡਣਾ ਨਹੀਂ ਚਾਹੀਦਾ।

ਕੋਈ ਵੀ ਸਥਾਈ ਸੰਰਚਨਾ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਤੇਜ਼ ਜਾਂਚ: curl -x http://127.0.0.1:13128 -I https://example.com, ਜੋ ਉਸ HTTP CONNECT ਢੰਗ ਦਾ ਅਭਿਆਸ ਕਰਦਾ ਹੈ ਜਿਸ ਦਾ ਪ੍ਰੌਕਸੀ ਨੂੰ ਸਮਰਥਨ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ।

ਅਧਿਕਾਰ ਉੱਥੇ ਹੀ ਰੱਖੋ ਜਿੱਥੇ ਸੀ

ਦੂਰਸਥ ਪ੍ਰੌਕਸੀ ਅਜੇ ਵੀ ਤੈਅ ਕਰਦੀ ਹੈ ਕਿ ਕਿਹੜੀਆਂ ਮੰਜ਼ਿਲਾਂ ਅਤੇ ਢੰਗਾਂ ਦੀ ਇਜਾਜ਼ਤ ਹੈ, ਅਤੇ SSH ਲੌਗਇਨ ਨੂੰ ਹਰ ਖਾਤੇ ਨੂੰ ਚੁੱਪਚਾਪ ਆਮ ਵੈੱਬ ਰੀਲੇ ਨਹੀਂ ਦੇਣਾ ਚਾਹੀਦਾ। ਲੈਪਟਾਪ ਉੱਤੇ 127.0.0.1 ਉੱਤੇ ਬੰਨ੍ਹਣ ਨਾਲ ਪੋਰਟ ਤੁਹਾਡੇ ਸਥਾਨਕ ਨੈੱਟਵਰਕ ਉੱਤੇ ਪ੍ਰਕਾਸ਼ਿਤ ਹੋਣ ਤੋਂ ਬਚਾਅ ਹੁੰਦਾ ਹੈ, ਅਤੇ ਇਹ ਪੋਰਟ ਨੂੰ ਉਸੇ ਮਸ਼ੀਨ ਦੀਆਂ ਹੋਰ ਪ੍ਰਕਿਰਿਆਵਾਂ ਤੋਂ ਨਿੱਜੀ ਨਹੀਂ ਬਣਾਉਂਦਾ। ਉਸ ਬੰਧਨ ਨੂੰ ਪ੍ਰੌਕਸੀ ਸਾਂਝੀ ਕਰਨ ਲਈ wildcard ਪਤੇ ਨਾਲ ਬਦਲਣਾ ਹੀ ਅਣ-ਪ੍ਰਬੰਧਿਤ ਖੁੱਲ੍ਹਾ ਰੀਲੇ ਬਣਨ ਦਾ ਤਰੀਕਾ ਹੈ।

SSH ਆਵਾਜਾਈ ਸਰਵਰ ਤੱਕ ਦੀ ਛਾਲ ਦੀ ਰੱਖਿਆ ਕਰਦੀ ਹੈ। ਉਸ ਬਿੰਦੂ ਤੋਂ ਅੱਗੇ ਪ੍ਰੌਕਸੀ ਆਪਣਾ ਕਨੈਕਸ਼ਨ ਖੋਲ੍ਹਦੀ ਹੈ, ਇਸ ਲਈ ਕਿਸੇ ਮੰਜ਼ਿਲ ਲਈ ਸਾਧਾਰਨ HTTP ਬੇਨਤੀ ਸਰਵਰ ਤੋਂ ਅੱਗੇ ਵੀ ਸਾਧਾਰਨ ਰਹਿੰਦੀ ਹੈ, ਭਾਵੇਂ ਪਹਿਲਾ ਹਿੱਸਾ ਐਨਕ੍ਰਿਪਟਿਡ ਸੀ।

ਦੋਵੇਂ ਸਿਰਿਆਂ ਦੀ ਪੁਸ਼ਟੀ ਕਰੋ, ਫਿਰ ਸਫ਼ਾਈ ਕਰੋ

ਸਥਾਨਕ ਸੁਰੰਗ ਦੀ ਸੈਟਅੱਪ ਅਤੇ ਦੂਰਸਥ ਸੇਵਾ ਦੀ ਸਫਲਤਾ ਵੱਖਰੇ ਨਤੀਜੇ ਹਨ, ਅਤੇ ਕਮਾਂਡ ਦੀ ਨਿਕਾਸ ਸਥਿਤੀ ਤੁਹਾਨੂੰ ਸਿਰਫ਼ ਪਹਿਲੇ ਬਾਰੇ ਦੱਸਦੀ ਹੈ। ss -ltn ਨਾਲ ਜਾਂਚੋ ਕਿ ਸੁਣਨ ਵਾਲਾ ਮੌਜੂਦ ਹੈ, ਫਿਰ ਇੱਕ ਮਨਜ਼ੂਰ ਐਪਲੀਕੇਸ਼ਨ ਬੇਨਤੀ ਅਤੇ ਇੱਕ ਬੇਨਤੀ ਕਰੋ ਜਿਸ ਨੂੰ ਪ੍ਰੌਕਸੀ ਨੂੰ ਰੱਦ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ। ਜੇ ਦੋਵੇਂ ਉਮੀਦ ਮੁਤਾਬਕ ਵਿਵਹਾਰ ਕਰਨ, ਤਾਂ ਰਾਹ ਅਸਲੀ ਹੈ; ਜੇ ਸੁਰੰਗ ਚਾਲੂ ਹੈ ਅਤੇ ਹਰ ਬੇਨਤੀ ਫੇਲ੍ਹ ਹੁੰਦੀ ਹੈ, ਤਾਂ ਪ੍ਰੌਕਸੀ ਰੱਦ ਕਰ ਰਹੀ ਹੈ ਜਾਂ ਮੰਜ਼ਿਲ ਤੱਕ ਨਹੀਂ ਪਹੁੰਚ ਸਕਦੀ।

ਮੁੱਕਣ 'ਤੇ, ਇਸ ਨੂੰ ਰੱਖਣ ਵਾਲੀ SSH ਪ੍ਰਕਿਰਿਆ ਰੋਕੋ, ਐਪਲੀਕੇਸ਼ਨ ਤੋਂ ਪ੍ਰੌਕਸੀ ਸੈਟਿੰਗ ਹਟਾਓ, ਅਤੇ ਕੰਮ ਤੋਂ ਵੱਧ ਜੀਉਣ ਵਾਲਾ ਸੁਣਨ ਵਾਲਾ ਛੱਡਣ ਦੀ ਬਜਾਏ ਸਥਾਨਕ ਪੋਰਟ ਦੇ ਚਲੇ ਜਾਣ ਦੀ ਪੁਸ਼ਟੀ ਕਰੋ।

ਸੰਬੰਧਿਤ ਲੇਖ