هغه اپلیکیشن چې یوازې SOCKS وایي، په عادي VPN کې د خبرو لپاره هیڅ نلري، ځکه تونل پاکټونه وړي او اپلیکیشن د پروکسي پای ټکی غواړي۔ OpenSSH کولای شي هغه ټکی برابروو کله چې د لاسرسي مالک اجازه ورکړي، ځکه ډینامیک لېږد یوه SSH ناسته په محلي پروکسي بدلوي۔ بیا دوه ټوپونه دي چې باید جلا وساتل شي: هغه تونل چې SSH کوربه ته رسېږي، او هغه اړیکه چې دا کوربه وروسته پرانیزي۔ د دوی جلا کول هم دا څرګندوي چې دا ترتیب ولې کار کوي او هم دا چې هر کله به څه ونه کړي۔

SSH اورېدونکی څه کېږي او څه نه کېږي

ډینامیک لېږد SSH کاروونکی اړ باسي چې په محلي ډول واوري او له هر هغه څه سره چې نښلېږي SOCKS4 یا SOCKS5 ووایي۔ هره غوښتنه یو هدف نوموي او SSH سرور بل اړیکه پرانیزي، نو د هدف لټون کولای شي په بل لوري کې وشي۔ دا د اپلیکیشن کچې TCP لېږد دی، د ټول وسیله لپاره VPN نه دی۔ دا نه د UDP یوځایوالی وړي، نه ICMP، او نه هغو اپلیکیشنونو لپاره څه چې د پروکسي تنظیمات په بشپړه توګه له پامه غورځوي۔ له SSH سرور څخه اپلیکیشن ته ټوپ هم ستاسو د تونل دننه نه دی، دا هغه وخت مهم دی چې هدف یوازې له پېژندل شویو شبکو څخه ترافیک مني۔

مخکې شرطونه ریښتیني دي: SSH کوربه ته لار، اجازه لرونکی حساب، تصدیق شوی د سرور کوربه کیلي او د لېږد اجازه۔ له دوی څخه هېڅ یو پروکسي نه جوړوي، او وروستی معمولاً لومړی ورکېږي۔ له بل هر څه د سمون مخکې څلور واړه تایید کړئ، ځکه له کاروونکي اړخه ناکامي ورته ښکاري، که کوم یو هم ورک وي۔

دا په لوپ‌بیک کې د روښانه پورټ سره پیل کړئ

یو نه کارېدونکی محلي پورټ وټاکئ او هغه په روښانه ډول لوپ‌بیک ته وتړئ، د دې پرځای چې پته پرېږدئ۔ لاندې درې انتخابونه هر یو د یوې دلیل لپاره شته۔

ssh -D 127.0.0.1:1080 -NT -o ControlPath=none -o ExitOnForwardFailure=yes \
  [email protected]

-N لرې کمانډ پرېږدي او -T سیوډو-ټرمینل پرېږدي، نو ناسته یوازې د لېږد لپاره ده۔ ExitOnForwardFailure کاروونکی باسي چې ووځي کله چې اورېدونکی نه شي جوړېدلی، ستاسو غوښتل شوي لېږد پرته د کار کولو پرځای۔ ControlPath=none ناسته له یوې موجودې څوګونې اړیکې بهر ساتي چې کولای شي خپل لېږدونه ورزیات کړي۔ لوپ‌بیک اورېدونکی له LAN بهر ساتي، خو په شریکه ماشین کې دا د اجازې پوله نه ده، ځکه نور محلي پروسې هم ورته رسېدلی شي۔ د OpenSSH کاروونکي مرجع دا ټولې نښې مستند کوي، او د لوپ‌بیک خبرداری له دې څخه راځي چې اورېدونکی ساکټ څه دی۔

نومونه د پروکسي له لارې ولېږئ، د هغې شاوخوا نه

SOCKS5 کاروونکی کولای شي هدف پخپله حل کړي یا له پروکسي وغواړي چې دا وکړي، او همدا انتخاب ټاکي چې کوم حل کوونکی ځواب ووایي۔ له socks5h سره curl د کوربه نوم د پروکسي له لارې لېږي، نو لټون په SSH سرور کې کېږي۔ له ساده socks5 سره لپ‌ټاپ لومړی حل کوي او یوازې اړیکه ځي، دا هغه وخت چې نوم داخلي وي هدف په چوپتیا کې له منځه وړي۔ لاندې غوښتنه د بې‌پروکسي لیست هم تشوي، نو میراثي NO_PROXY ارزښت نه شي کولای دا د پروکسي شاوخوا بوځي۔

curl -sS --noproxy '' --proxy socks5h://127.0.0.1:1080 https://app.corp.example/health

د سند تصدیق او د اپلیکیشن خپل ننوتل لا هم پلي کېږي، ځکه پروکسي دواړه نه بدلوي۔ دوه لټونونه پاتې کېږي: لپ‌ټاپ باید د اجازه شوې VPN او DNS لارې له لارې SSH کوربه ته ورسېږي، او SSH سرور باید د اپلیکیشن نوم پخپله حل کړي۔ دوهم یوازې د دې مخکې ازمویل کېدای شي چې هر ترافیک د پروکسي له لارې تېر شي۔

ssh [email protected] getent hosts app.corp.example

یو اجازه شوی هدف ثابت کړئ، بیا ناسته وتړئ

هغه هدف وآزمویئ چې تګلاره اجازه ورکوي او هغه هم چې باید رد یې کړي، ځکه کار کوونکی لېږد یوازې دا ثابتوي چې اورېدونکی کار کوي او نور هیڅ نه۔ اپلیکیشن هغه سرچینه پته ویني چې SSH سرور غوره کوي، او دا ستاسو د لپ‌ټاپ د تونل پته نه ده۔ چېرې چې لرې سر د اړیکو ثبت په سرچینه کوي، هغه توپیر لومړی شی دی چې باید وکتل شي کله چې غوښتنه رد شي۔

ناسته د هغې د مالک پروسې له لارې ودروئ، نه د بې‌اړیکې شیل په وژلو سره۔ بیا تایید کړئ چې اورېدونکی لاړ، ځکه هغه پورټ چې لا هم ځواب وایي هغه ناسته ده چې تاسو یې واقعاً نه یاست تړلې۔ یوازې هغه پروکسي تنظیم لرې کړئ چې دا تمرین راوړ، او د اپلیکیشن پاتې ترتیبات پرېږدئ۔ د لېږد قاعده لرونکی بې‌څار ټرمینل خدمت نه دی، او تلپاتې پروکسي ته تصویب شوی ژوندلیک ته اړتیا ده، نه هېر شوې کړکۍ ته۔

ss -ltn | grep 1080

هغه ناکامۍ چې دا ترتیب یې سمولای نه شي

ځینې نښې مستقیم پورتنیو حدودو ته اشاره کوي، او ژر پېژندل یې د پروکسي د سمون یوه ماسپښین خوندي کوي۔ جدول هغه څه چې تاسو یې وینئ له هغه څه سره نښلوي چې معمولاً یې مانا ده۔ په وروستي کالم کې هر څه د ډیزاین پوښتنه ده، نه د ترتیباتو تېروتنه۔

What you seeWhat it usually meansWhere to look
The app connects and nothing followsIt ignores proxy settings entirelyIts own network settings, not the SSH session
A name resolution error for the destinationThe SSH server cannot resolve itServer resolver and search domains
A UDP-only application failsDynamic forwarding carries TCP onlyThis arrangement cannot serve it
curl works, the browser does notThe browser is not using the socks5h endpointBrowser proxy configuration
The listener answers after the session endedAnother process owns port 1080The ss output, then the owning process

لومړنۍ درې کرښې هغه دي چې خلک یې غلط تشخیص کوي، ځکه هره یوه د پروکسي په اړه د تېروتنې پرځای د اړیکې هڅه جوړوي۔ هغه نوم چې په لپ‌ټاپ کې حل شي د سرور د حل کوونکي په اړه هیڅ نه وایي، او ناکامي د سند یا د وخت د پای ستونزې په توګه لوستل کېږي۔ یوازې UDP لرونکي اپلیکیشنونه د ډیزاین بهر ولاړ دي، دننه ماتی نه دي، او هېڅ اضافي ssh انتخاب دا نه بدلوي۔ د براوزر کرښه دا عادي یادونه ده چې د پروکسي تنظیمات د هر اپلیکیشن لپاره بېل دي۔ وروستې کرښه دا ښيي چې د تړلو کتنه ولې شته: هغه پورټ چې لا اورېدل کېږي مانا دا چې اوس بل څه یې مالک دی۔

اړوندې مقالې