AsyncSSH ချိတ်ဆက်မှုမှ ဒေသတွင်း SOCKS နားထောင်သူ
AsyncSSH ၏ forward_socks API ဖြင့် ရွေ့လျားနိုင်သော TCP ပို့ဆောင်မှုကို ဖန်တီး၍ နားထောင်သူကို asyncio ဖြစ်ရပ်ကွင်းတွင် ရှင်သန်စေပါ။
AsyncSSH သည် ရွေ့လျားနိုင်သော TCP ပို့ဆောင်မှုကို forward_socks() မှတစ်ဆင့် ပေးစွမ်းသည်။ AsyncSSH ရှိပြီးသား အပလီကေးရှင်းတစ်ခုသည် SSH ချိတ်ဆက်မှုပေါ်တွင် ဒေသတွင်း SOCKS နားထောင်သူတစ်ခုကို ဖန်တီးနိုင်သည်။
import asyncio
import asyncssh
async def main():
async with asyncssh.connect(
'jump.example.net', username='operator'
) as connection:
listener = await connection.forward_socks('127.0.0.1', 1080)
await listener.wait_closed()
asyncio.run(main())
SSH ဆာဗာနှင့် အကောင့်သည် ဥပမာများသာဖြစ်သည်။ AsyncSSH ၏ ပုံမှန် host-key စစ်ဆေးမှု သက်ရောက်သည်။ ဆာဗာသည် တောင်းဆိုထားသော TCP ပို့ဆောင်မှုကို ခွင့်ပြုရမည်။ command-line နှင့် ညီမျှသော OpenSSH ၏ ဒေသတွင်း ရွေ့လျားပို့ဆောင်မှုသည် SSH မှ ဦးတည်ရာသို့ တူညီသော ဦးတည်ချက်ကို အသုံးပြုသည်။
ဒေသတွင်း client များသည် ယခု 127.0.0.1:1080 ကို ၎င်းတို့၏ SOCKS အဆုံးမှတ်အဖြစ် အသုံးပြုနိုင်သည်။ SOCKS တောင်းဆိုမှုတိုင်းသည် ၎င်း၏ ဦးတည်ရာကို ပေးသည်။ SSH ဆာဗာသည် သက်ဆိုင်ရာ အပြင်ထွက် TCP ချိတ်ဆက်မှုကို ဖွင့်သည်။ အပလီကေးရှင်းသည် URL တိုင်းအတွက် အဝေးမှ ဒေါင်းလုဒ်ယူသူကို လည်ပတ်ရန် မလိုအပ်ပါ။
စောင့်ဆိုင်းမှုသည် အညီအမျှ မဟုတ်သော လုပ်ဆောင်ချက်ကို ချိတ်ဆက်မှု၏ နယ်ပယ်အတွင်း ထားရှိသည်။ နားထောင်သူကို ဖန်တီးပြီးချင်း ပြန်ထွက်ပါက ထိုနယ်ပယ်မှ ထွက်ပြီး ၎င်းကို ထောက်ပံ့သော ချိတ်ဆက်မှုကို ပိတ်လိုက်မည်။ ပိုကြီးသော asyncio အပလီကေးရှင်းသည် ဤချိတ်ဆက်မှုကို ဖွင့်ထားပြီး အခြားအလုပ်များကို တူညီသော ဖြစ်ရပ်ကွင်းတွင် လုပ်ဆောင်နိုင်သည်။