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 қолданбасы осы қосылымды ашық ұстап, басқа тапсырмаларын сол оқиғалар циклінде орындай алады.