Helyi SOCKS-figyelő AsyncSSH-kapcsolatból
Hozzon létre dinamikus TCP-továbbítást az AsyncSSH forward_socks API-jával, és tartsa életben a figyelőt az asyncio eseményhurokban.
Az AsyncSSH dinamikus TCP-továbbítást kínál forward_socks() segítségével. Egy AsyncSSH-t már használó alkalmazás helyi SOCKS-figyelőt hozhat létre egy SSH-kapcsolat fölött:
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())
Az SSH-kiszolgáló és a fiók példák. Az AsyncSSH szokásos gazdagépkulcs-ellenőrzése érvényes. A kiszolgálónak engedélyeznie kell a kért TCP-továbbítást. Parancssori megfelelőként az OpenSSH helyi dinamikus továbbítása ugyanazt az SSH-tól a cél felé mutató irányt használja.
A helyi kliensek mostantól 127.0.0.1:1080 használhatják SOCKS-végpontként. Minden SOCKS-kérés megadja a célját; az SSH-kiszolgáló megnyitja a megfelelő kimenő TCP-kapcsolatot. Az alkalmazásnak nem kell minden URL-hez távoli letöltőt futtatnia.
A várakozás a kapcsolat hatókörében tartja az aszinkron függvényt. A figyelő létrehozása utáni azonnali visszatérés elhagyná ezt a hatókört, és bezárná az azt fenntartó kapcsolatot. Egy nagyobb asyncio-alkalmazás nyitva tarthatja ezt a kapcsolatot, miközben a többi feladatát ugyanazon az eseményhurkon futtatja.