AsyncSSH ofron përcjellje dinamike TCP përmes forward_socks(). Një aplikacion që ka tashmë AsyncSSH mund të krijojë një dëgjues SOCKS lokal mbi një lidhje SSH:

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())

Serveri SSH dhe llogaria janë shembuj. Zbatohet kontrolli i zakonshëm i çelësave të hostit në AsyncSSH. Serveri duhet të lejojë përcjelljen TCP të kërkuar. Si ekuivalent në rreshtin e komandës, përcjellja dinamike lokale e OpenSSH përdor të njëjtin drejtim nga SSH drejt destinacionit.

Klientët lokalë tani mund të përdorin 127.0.0.1:1080 si pikën e tyre fundore SOCKS. Çdo kërkesë SOCKS jep destinacionin e vet; serveri SSH hap lidhjen përkatëse dalëse TCP. Aplikacioni nuk ka nevojë të ekzekutojë një shkarkues të largët për çdo URL.

Pritja e mban funksionin asinkron brenda fushës së lidhjes. Kthimi menjëherë pas krijimit të dëgjuesit do të dilte nga kjo fushë dhe do të mbyllte lidhjen që e mban atë. Një aplikacion më i madh asyncio mund ta mbajë këtë lidhje të hapur ndërsa ekzekuton detyrat e tjera në të njëjtin cikël ngjarjesh.

Artikuj të ngjashëm