SSH سے مقامی SOCKS پراکسی بنائیں
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 میں رکھتا ہے۔
پراکسی استعمال کرتے وقت 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 پراکسی خانہ اس listener سے SOCKS نہیں بول سکتا۔
پورٹ کس process کا ہے، دیکھنے کے لیے:
ss -ltnp 'sport = :1080'
مطلوبہ SSH process کو loopback listener کا مالک ہونا چاہیے۔ اس سے درخواست دور کے سرور کی بھی منزل تک رسائی جانچتی ہے۔ دیکھے گئے خروج کی جانچ کے لیے اپنے اختیار کی منزل استعمال کریں۔
سیشن کی عمر
Ctrl-C SSH process، listener اور forwarded کنکشن بند کرتا ہے۔ SSH کنکشن ٹوٹے تو بھی پراکسی دستیاب نہیں رہتی۔
ExitOnForwardFailure ابتدائی setup جانچتا ہے۔ بعد کے ہر منزل کنکشن کی ناکامی پر SSH ختم نہیں کرتا، اس لیے سیشن، مقامی پورٹ اور منزل کی درخواست الگ جانچیں۔