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 अनुप्रयोगले यो जडान खुला राखेर आफ्ना अन्य कामहरू उही इभेन्ट लुपमा चलाउन सक्छ।

सम्बन्धित लेखहरू