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'тын адаттагы хост ачкычын текшерүүсү колдонулат. Сервер суралган TCP багыттоого уруксат бериши керек. Буйрук сабындагы балама үчүн OpenSSH'тын жергиликтүү динамикалык багыттоосу SSH'тен максатка чейинки ошол эле багытты колдонот.

Жергиликтүү кардарлар эми 127.0.0.1:1080 дарегин өздөрүнүн SOCKS акыркы чекити катары колдоно алышат. Ар бир SOCKS сурамы өз максатын берет; SSH сервери тиешелүү чыгуучу TCP туташуусун ачат. Колдонмо ар бир URL үчүн алыскы жүктөгүчтү иштетүүгө милдеттүү эмес.

Күтүү асинхрондук функцияны туташуунун чегинде кармайт. Угуучу түзүлгөндөн кийин дароо кайтуу ошол чектен чыгып, аны кармап турган туташууну жабат. Чоңураак asyncio колдонмосу бул туташууну ачык кармап, башка тапшырмаларын ошол эле окуялар циклинде аткара алат.

Тектеш макалалар