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 বন্ধ করে না, তাই সেশন, স্থানীয় পোর্ট ও গন্তব্য অনুরোধ আলাদা পরীক্ষা করুন।