AsyncSSH forward_socks() کے ذریعے متحرک TCP فارورڈنگ فراہم کرتا ہے۔ جس ایپلیکیشن کے پاس 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 کی معمول کی ہوسٹ-کی جانچ لاگو ہوتی ہے۔ سرور کو مطلوبہ TCP فارورڈنگ کی اجازت دینی چاہیے۔ کمانڈ لائن کے مساوی کے لیے، OpenSSH کی مقامی متحرک فارورڈنگ SSH سے منزل تک وہی سمت استعمال کرتی ہے۔

مقامی کلائنٹ اب 127.0.0.1:1080 کو اپنا SOCKS اینڈ پوائنٹ بنا سکتے ہیں۔ ہر SOCKS درخواست اپنی منزل بتاتی ہے؛ SSH سرور متعلقہ باہر جانے والا TCP کنکشن کھولتا ہے۔ ایپلیکیشن کو ہر URL کے لیے دور دراز ڈاؤن لوڈر چلانے کی ضرورت نہیں۔

انتظار غیر ہم وقت فعل کو کنکشن کے دائرے میں رکھتا ہے۔ سننے والا بنانے کے فوراً بعد واپس آنا اس دائرے سے نکل کر اس کنکشن کو بند کر دیتا جو اسے سہارا دیتا ہے۔ بڑی asyncio ایپلیکیشن اس کنکشن کو کھلا رکھ کر اپنے دیگر کام اسی ایونٹ لوپ پر چلا سکتی ہے۔

متعلقہ مضامین