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 बंद नहीं करता, इसलिए सत्र, स्थानीय पोर्ट और गंतव्य अनुरोध अलग जाँचें।