socat SOCKS ਪੁਲ: ਸਾਈਟ ਦਾ TLS ਹੋਸਟਨਾਮ ਸੰਭਾਲੋ
ਇੱਕ SOCKS ਮੰਜ਼ਿਲ ਲਈ loopback TCP ਸਰੋਤਾ ਵਰਤੋ ਅਤੇ ਐਪ ਵਿੱਚ HTTP ਤੇ TLS ਪਛਾਣ ਬਣਾਈ ਰੱਖੋ।
ਐਪ ਕੋਲ SOCKS ਚੋਣ ਨਹੀਂ ਹੈ, ਪਰ ਇਹ ਚੁਣੇ ਗਏ TCP ਪਤੇ ਨਾਲ ਜੁੜ ਸਕਦੀ ਹੈ। ਸਥਿਰ-ਨਿਸ਼ਾਨਾ ਅਡਾਪਟਰ ਇੱਕ ਮੰਜ਼ਿਲ ਲਈ SOCKS ਗੱਲਬਾਤ ਪ੍ਰਦਾਨ ਕਰ ਸਕਦਾ ਹੈ। ਇਸਨੂੰ ਹੋਰ ਆਮ ਫਾਰਵਰਡ ਪ੍ਰੌਕਸੀ ਬਣਨ ਦੀ ਲੋੜ ਨਹੀਂ।
SOCKS4A ਦੇਣ ਵਾਲੇ socat ਬਿਲਡਾਂ ਲਈ ਇੱਕ ਉਦਾਹਰਨ ਬੰਦੋਬਸਤ ਇਹ ਹੈ:
socat TCP4-LISTEN:9443,bind=127.0.0.1,reuseaddr,fork \
SOCKS4A:127.0.0.1:service.example.net:443,socksport=1080
SOCKS ਅੰਤ ਬਿੰਦੂ ਸਥਾਨਕ ਪੋਰਟ 1080 ਹੈ। ਅਡਾਪਟਰ ਸਥਾਨਕ ਪੋਰਟ 9443 ਉੱਤੇ ਸੁਣਦਾ ਹੈ ਅਤੇ ਉਸ ਅੰਤ ਬਿੰਦੂ ਤੋਂ service.example.net:443 ਮੰਗਦਾ ਹੈ। ਇਹ ਉਦਾਹਰਨ ਮੁੱਲ ਹਨ, ਪੂਰੀ ਸੇਵਾ ਤੈਨਾਤੀ ਨਹੀਂ।
ਅਡਾਪਟਰ ਦਾ ਇੱਕ ਸਥਿਰ ਨਿਸ਼ਾਨਾ ਹੈ
ਹਰ ਸਵੀਕਾਰ ਕੀਤਾ TCP ਕਨੈਕਸ਼ਨ ਉਹੀ ਸੇਵਾ ਮੰਗਦਾ ਹੈ। 9443 ਨਾਲ ਜੁੜਨ ਵਾਲੀ ਐਪ ਆਪਣੇ ਆਮ ਪ੍ਰੋਟੋਕੋਲ ਬਾਈਟ ਦਿੰਦੀ ਹੈ; socat SOCKS4A ਗੱਲਬਾਤ ਦਿੰਦਾ ਹੈ। 9443 ਉੱਤੇ ਨਵੀਂ HTTP CONNECT ਬੇਨਤੀ ਭੇਜਣ ਨਾਲ ਕੋਈ ਹੋਰ ਮੰਜ਼ਿਲ ਨਹੀਂ ਚੁਣੀ ਜਾਵੇਗੀ—ਇਹ ਉਹ ਬਾਈਟ ਸਥਿਰ ਸੇਵਾ ਵੱਲ ਭੇਜ ਦੇਵੇਗਾ।
SOCKS4A ਦੂਰਲੇ ਹੱਲ ਲਈ SOCKS ਅੰਤ ਬਿੰਦੂ ਨੂੰ ਹੋਸਟਨਾਮ ਦਿੰਦਾ ਹੈ। ਇਹ ਕਲਾਇੰਟ-ਚੁਣੇ ਪਤੇ ਵਾਲੇ SOCKS4 ਰੂਪ ਤੋਂ ਵੱਖਰਾ ਹੈ। ਚੁਣੇ ਗਏ ਅਪਸਟ੍ਰੀਮ—SOCKS4 ਪ੍ਰੌਕਸੀ ਸੂਚੀ ਤੋਂ ਜਨਤਕ ਉਮੀਦਵਾਰ ਸਮੇਤ—ਨੂੰ SOCKS4A ਹੋਸਟਨਾਮ ਸੰਭਾਲਣ ਅਤੇ ਲੋੜੀਂਦੀ ਪ੍ਰਮਾਣਿਕਤਾ ਦਾ ਸਮਰਥਨ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ; ਇਹ ਉਦਾਹਰਨ SOCKS5 ਪਾਸਵਰਡ-ਲੌਗਇਨ ਵਿਧੀ ਨਹੀਂ ਹੈ।
ਸਥਾਨਕ ਤੌਰ ਉੱਤੇ ਜੁੜੋ, ਅਸਲ ਸੇਵਾ ਪਛਾਣੋ
HTTPS URL ਨੂੰ https://127.0.0.1:9443/ ਵਿੱਚ ਬਦਲਣ ਨਾਲ ਉਹ ਹੋਸਟਨਾਮ ਬਦਲਦਾ ਹੈ ਜੋ ਕਲਾਇੰਟ TLS ਤੇ HTTP ਲਈ ਵਰਤ ਸਕਦਾ ਹੈ। service.example.net ਲਈ ਸਰਟੀਫਿਕੇਟ loopback ਲਈ ਵੈਧ ਸਰਟੀਫਿਕੇਟ ਨਹੀਂ ਬਣੇਗਾ।
ਜਿੱਥੇ ਕਲਾਇੰਟ ਵੱਖਰੀ ਕਨੈਕਸ਼ਨ ਰੂਟਿੰਗ ਦਾ ਸਮਰਥਨ ਕਰਦਾ ਹੈ, ਉੱਥੇ ਮੂਲ URL ਦੀ ਪਛਾਣ ਰੱਖੋ। Curl ਉਹ ਅੰਤਰ ਦਿਖਾ ਸਕਦਾ ਹੈ:
curl --noproxy '*' \
--connect-to service.example.net:443:127.0.0.1:9443 \
https://service.example.net/
ਸਾਕੇਟ ਸਥਾਨਕ ਅਡਾਪਟਰ ਵੱਲ ਜਾਂਦਾ ਹੈ ਜਦੋਂ ਕਿ TLS ਜਾਂਚ ਅਤੇ HTTP ਮੰਜ਼ਿਲ service.example.net ਰਹਿੰਦੇ ਹਨ। ਹੋਰ ਐਪਾਂ ਨੂੰ ਆਪਣਾ ਸਮਾਨ ਸਮਰਥਿਤ ਨਿਯੰਤਰਣ ਚਾਹੀਦਾ ਹੈ; ਹਰ ਕਲਾਇੰਟ ਇਹ ਨਹੀਂ ਦਿੰਦਾ।
loopback ਬੰਧਨ ਨੈੱਟਵਰਕ ਖੁਲ੍ਹਾਅ ਸੀਮਤ ਕਰਦਾ ਹੈ, ਪਰ ਹੋਰ ਯੋਗ ਸਥਾਨਕ ਪ੍ਰਕਿਰਿਆਵਾਂ ਅਜੇ ਵੀ ਪਹੁੰਚ ਸਕਦੀਆਂ ਹਨ। ਸੇਵਾ ਦੀ ਉਮਰ ਅਤੇ ਵਰਤੋਂਕਾਰ ਢੁਕਵੇਂ ਰੱਖੋ। loopback URL ਕਾਰਨ ਹੋਣ ਵਾਲੀ ਪਛਾਣ ਗਲਤੀ ਦਬਾਉਣ ਦੀ ਥਾਂ TLS ਜਾਂਚ ਰੱਖੋ।