የአካባቢ SOCKS አድማጭ ከAsyncSSH ግንኙነት
በ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 መተግበሪያ ሌሎች ተግባሮቹን በተመሳሳይ ክስተት ዑደት ላይ እያከናወነ ይህን ግንኙነት ክፍት ማድረግ ይችላል።