AsyncSSH সংযোগ থেকে স্থানীয় SOCKS শ্রবণকারী
AsyncSSH-এর forward_socks API দিয়ে গতিশীল TCP ফরওয়ার্ডিং তৈরি করুন এবং asyncio ইভেন্ট লুপে শ্রবণকারীকে সক্রিয় রাখুন।
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 অ্যাপ্লিকেশন একই ইভেন্ট লুপে নিজের অন্য কাজ চালিয়ে এই সংযোগটি খোলা রাখতে পারে।