AsyncSSH dinamik TCP yönləndirməni forward_socks() vasitəsilə təqdim edir. AsyncSSH artıq mövcud olan tətbiq SSH bağlantısı üzərində yerli SOCKS dinləyicisi yarada bilər:

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 serveri və hesab nümunədir. AsyncSSH-ın adi host açarı yoxlaması tətbiq olunur. Server tələb olunan TCP yönləndirməsinə icazə verməlidir. Əmr sətri ekvivalenti üçün OpenSSH-ın yerli dinamik yönləndirməsi eyni SSH-dən təyinat istiqamətini istifadə edir.

Yerli müştərilər indi 127.0.0.1:1080 ünvanını SOCKS son nöqtəsi kimi istifadə edə bilər. Hər SOCKS sorğusu öz təyinatını verir; SSH serveri uyğun gedən TCP bağlantısını açır. Tətbiq hər URL üçün uzaq yükləyici işə salmağa ehtiyac duymur.

Gözləmə asinxron funksiyanı bağlantı əhatəsində saxlayır. Dinləyici yaradıldıqdan dərhal sonra qayıtmaq həmin əhatədən çıxıb onu dəstəkləyən bağlantını bağlayardı. Daha böyük asyncio tətbiqi digər tapşırıqlarını eyni hadisə dövrəsində işlədərkən bu bağlantını açıq saxlaya bilər.

Əlaqəli məqalələr