AsyncSSH કનેક્શનમાંથી સ્થાનિક SOCKS શ્રોતા
AsyncSSH ની forward_socks API સાથે ગતિશીલ TCP ફોરવર્ડિંગ બનાવો અને શ્રોતાને asyncio ઇવેન્ટ લૂપ પર જીવંત રાખો.
AsyncSSH forward_socks() દ્વારા ગતિશીલ TCP ફોરવર્ડિંગ પ્રદાન કરે છે. જે એપ્લિકેશન પાસે 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 એપ્લિકેશન આ કનેક્શન ખુલ્લું રાખીને તેના બીજા કાર્યો એ જ ઇવેન્ટ લૂપ પર ચલાવી શકે છે.