SSH ਨਾਲ ਸਥਾਨਕ SOCKS proxy ਬਣਾਓ
127.0.0.1 ਉੱਤੇ OpenSSH dynamic forwarding ਵਰਤੋ, ਸੈਸ਼ਨ ਵਿੱਚ process ਚੱਲਦਾ ਰੱਖੋ ਅਤੇ listener ਦੇ ਕੰਮ ਨੂੰ ਮੰਜ਼ਿਲ ਦੀ ਪਹੁੰਚ ਤੋਂ ਵੱਖਰਾ ਸਮਝੋ।
ਸਰਵਰ ਤੱਕ ਅਧਿਕਾਰਤ SSH ਪਹੁੰਚ ਹੋਵੇ ਤਾਂ OpenSSH ਤੁਹਾਡੇ ਕੰਪਿਊਟਰ ਉੱਤੇ SOCKS listener ਬਣਾ ਸਕਦਾ ਹੈ। SSH ਕੁਨੈਕਸ਼ਨ forwarded traffic ਲਿਜਾਂਦਾ ਹੈ ਅਤੇ ਦੂਰਲਾ ਸਰਵਰ ਮੰਜ਼ਿਲ ਨਾਲ ਜੁੜਦਾ ਹੈ।
ਸਿਰਫ਼ loopback listener
ssh -N -T -o ControlPath=none -o ForkAfterAuthentication=no -o ExitOnForwardFailure=yes -D 127.0.0.1:1080 [email protected]
ਖਾਤਾ ਅਤੇ hostname ਬਦਲੋ। SSH ਸਰਵਰ ਨੂੰ forwarding ਦੀ ਇਜਾਜ਼ਤ ਦੇਣੀ ਚਾਹੀਦੀ ਹੈ; ਪ੍ਰਸ਼ਾਸਕ ਖਾਤੇ ਦੇ login ਤੋਂ ਵੱਖ forwarding ਅਤੇ ਮੰਜ਼ਿਲਾਂ ਸੀਮਿਤ ਕਰ ਸਕਦਾ ਹੈ।
-D dynamic forwarding ਬਣਾਉਂਦਾ ਹੈ ਅਤੇ ਸਪਸ਼ਟ loopback ਪਤਾ listener ਨੂੰ ਇਸੇ ਮਸ਼ੀਨ ਤੱਕ ਸੀਮਿਤ ਕਰਦਾ ਹੈ। -N remote command ਛੱਡਦਾ ਹੈ; -T pseudo-terminal ਛੱਡਦਾ ਹੈ। ControlPath=none ਮੌਜੂਦਾ sharing master ਤੋਂ ਬਚਦਾ ਹੈ ਅਤੇ ForkAfterAuthentication=no ਇਸ invocation ਨੂੰ foreground ਵਿੱਚ ਰੱਖਦਾ ਹੈ।
Proxy ਵਰਤਦਿਆਂ process ਚੱਲਦਾ ਰੱਖੋ। ਪੋਰਟ1080 ਰੁੱਝਿਆ ਹੋਵੇ ਤਾਂ ਹੋਰ ਖਾਲੀ high port ਚੁਣ ਕੇ client ਬਦਲੋ। ExitOnForwardFailure=yes listener ਨਾ ਬਣ ਸਕੇ ਤਾਂ SSH ਬੰਦ ਕਰਦਾ ਹੈ।
SOCKS endpoint ਵਰਤਣਾ
curl --proxy socks5h://127.0.0.1:1080 --noproxy '' --connect-timeout 5 --max-time 15 https://example.com/
ਇਹ ਬੇਨਤੀ SOCKS5 ਰਾਹੀਂ ਮੰਜ਼ਿਲ ਦੇ ਨਾਂ ਦੀ ਸੰਭਾਲ ਸੌਂਪਦੀ ਹੈ। ਹੋਰ ਐਪਾਂ ਨੂੰ ਆਪਣੀ SOCKS ਸੈਟਿੰਗ ਚਾਹੀਦੀ ਹੈ; HTTP proxy ਖਾਨਾ ਇਸ listener ਨਾਲ SOCKS ਨਹੀਂ ਬੋਲ ਸਕਦਾ।
ਪੋਰਟ ਕਿਸ process ਦਾ ਹੈ ਵੇਖਣ ਲਈ:
ss -ltnp 'sport = :1080'
ਇੱਛਿਤ SSH process ਕੋਲ loopback listener ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ। ਉਸ ਰਾਹੀਂ ਬੇਨਤੀ ਜਾਂਚਦੀ ਹੈ ਕਿ ਦੂਰਲਾ ਸਰਵਰ ਵੀ ਨਿਸ਼ਾਨੇ ਤੱਕ ਪਹੁੰਚ ਸਕਦਾ ਹੈ। ਵੇਖੇ ਨਿਕਾਸ ਨੂੰ ਜਾਂਚਣ ਲਈ ਆਪਣੇ ਕੰਟਰੋਲ ਦੀ ਮੰਜ਼ਿਲ ਵਰਤੋ।
ਸੈਸ਼ਨ ਦੀ ਮਿਆਦ
Ctrl-C SSH process, listener ਅਤੇ forwarded ਕੁਨੈਕਸ਼ਨ ਬੰਦ ਕਰਦਾ ਹੈ। SSH ਕੁਨੈਕਸ਼ਨ ਟੁੱਟੇ ਤਾਂ ਵੀ proxy ਉਪਲਬਧ ਨਹੀਂ ਰਹਿੰਦਾ।
ExitOnForwardFailure ਸ਼ੁਰੂਆਤੀ setup ਜਾਂਚਦਾ ਹੈ। ਬਾਅਦ ਦੇ ਹਰ ਮੰਜ਼ਿਲ ਕੁਨੈਕਸ਼ਨ ਦੇ ਫੇਲ੍ਹ ਹੋਣ ਉੱਤੇ SSH ਬੰਦ ਨਹੀਂ ਕਰਦਾ, ਇਸ ਲਈ ਸੈਸ਼ਨ, ਸਥਾਨਕ ਪੋਰਟ ਅਤੇ ਮੰਜ਼ਿਲ ਬੇਨਤੀ ਵੱਖਰੀ ਜਾਂਚੋ।