AsyncSSH туташуусунан жергиликтүү SOCKS угуучу
AsyncSSH'тын forward_socks API'сы менен динамикалык TCP багыттоону түзүп, угуучуну asyncio окуялар циклинде тирүү кармаңыз.
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 колдонмосу бул туташууну ачык кармап, башка тапшырмаларын ошол эле окуялар циклинде аткара алат.