Kisikilizaji cha SOCKS cha ndani kutoka muunganisho wa AsyncSSH
Tengeneza upelekaji wa TCP unaobadilika kwa API ya forward_socks ya AsyncSSH na uendelee kusikiliza kwenye asyncio event loop.
AsyncSSH hutoa upelekaji wa TCP unaobadilika kupitia forward_socks(). Programu iliyo na AsyncSSH tayari inaweza kuunda kisikilizaji cha SOCKS cha ndani juu ya muunganisho wa 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())
Seva ya SSH na akaunti ni mifano. Ukaguzi wa kawaida wa funguo za mwenyeji wa AsyncSSH unatumika. Seva lazima iruhusu upelekaji wa TCP ulioombwa. Kama kilinganishi cha mstari wa amri, upelekaji wa ndani unaobadilika wa OpenSSH hutumia mwelekeo huo huo kutoka SSH kuelekea lengwa.
Wateja wa ndani sasa wanaweza kutumia 127.0.0.1:1080 kama kituo chao cha SOCKS. Kila ombi la SOCKS hutoa lengwa lake; seva ya SSH hufungua muunganisho wa TCP unaotoka unaolingana. Programu haihitaji kuendesha kipakuzi cha mbali kwa kila URL.
Kusubiri kunabakiza kitendakazi kisicholingana ndani ya wigo wa muunganisho. Kurudi mara moja baada ya kuunda kisikilizaji kungeondoka katika wigo huo na kufunga muunganisho unaokitegemeza. Programu kubwa ya asyncio inaweza kuweka muunganisho huu wazi huku ikiendesha kazi zake nyingine kwenye event loop hiyo hiyo.