SSH ဖြင့် စက်တွင်း SOCKS proxy ဖန်တီးခြင်း
127.0.0.1 တွင် OpenSSH dynamic forwarding သုံးပြီး session အတွင်း process ဆက်လည်စေကာ listener အလုပ်လုပ်ခြင်းနှင့် ဦးတည်ရာရောက်ခြင်း ခွဲပါ။
Server သို့ ခွင့်ပြုထားသော SSH access ရှိလျှင် OpenSSH က သင့်ကွန်ပျူတာတွင် SOCKS listener ဖန်တီးနိုင်သည်။ SSH ချိတ်ဆက်မှုက forwarded traffic သယ်ပြီး အဝေး server က ဦးတည်ရာသို့ ချိတ်ဆက်သည်။
Loopback သာနားထောင်ခြင်း
ssh -N -T -o ControlPath=none -o ForkAfterAuthentication=no -o ExitOnForwardFailure=yes -D 127.0.0.1:1080 [email protected]
အကောင့်နှင့် hostname ကို အစားထိုးပါ။ SSH server က forwarding ခွင့်ပြုရမည်။ စီမံသူက အကောင့် login နှင့် သီးခြား forwarding နှင့် ဦးတည်ရာများကို ကန့်သတ်နိုင်သည်။
-D သည် dynamic forwarding ဖန်တီးပြီး ထင်ရှားသည့် loopback လိပ်စာက listener ကို ယခုစက်တွင်သာ ကန့်သတ်သည်။ -N သည် remote command မပြေးပါ။ -T သည် pseudo-terminal မပေးပါ။ ControlPath=none သည် ရှိပြီးသား sharing master ကို ရှောင်ပြီး ForkAfterAuthentication=no က ယခုခေါ်ဆိုမှုကို foreground တွင်ထားသည်။
Proxy သုံးစဉ် process ဆက်လည်ပါစေ။ Port1080 သုံးနေပါက မသုံးရသေးသော 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 field က ယခု listener နှင့် SOCKS မပြောနိုင်ပါ။
Port ပိုင်ရှင် process ကို စစ်ရန်။
ss -ltnp 'sport = :1080'
ရည်ရွယ်ထားသော SSH process က loopback listener ကို ပိုင်သင့်သည်။ ၎င်းမှတောင်းဆိုမှုက အဝေး server သည်လည်း ဦးတည်ရာကို ရောက်နိုင်သလား စစ်သည်။ တွေ့ရှိသည့်အထွက် စစ်ရန် ကိုယ်ထိန်းချုပ်သောဦးတည်ရာ သုံးပါ။
Session သက်တမ်း
Ctrl-C သည် SSH process၊ listener နှင့် forwarded ချိတ်ဆက်မှုများကို ပိတ်သည်။ SSH ချိတ်ဆက်မှုပြတ်လျှင်လည်း proxy မရနိုင်တော့ပါ။
ExitOnForwardFailure သည် အစတည်ဆောက်မှုကို စစ်သည်။ နောက်ပိုင်း ဦးတည်ရာချိတ်ဆက်မှု ပျက်တိုင်း SSH မရပ်သဖြင့် session၊ စက်တွင်း port နှင့် ဦးတည်ရာတောင်းဆိုမှုကို သီးခြားစစ်ပါ။