Një dëgjues SOCKS lokal nga një lidhje AsyncSSH
Krijoni përcjellje dinamike TCP me API-n forward_socks të AsyncSSH dhe mbajeni dëgjuesin gjallë në ciklin e ngjarjeve të asyncio.
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.