Տեղական SOCKS լսող AsyncSSH միացումից
Ստեղծե՛ք դինամիկ TCP փոխանցում AsyncSSH-ի forward_socks API-ով և լսողը պահե՛ք կենդանի 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 ծրագիրը կարող է այս միացումը բաց պահել՝ իր մյուս առաջադրանքները նույն իրադարձությունների ցիկլում կատարելիս։