אַ לאָקאַלער SOCKS-צוהערער פֿון אַן AsyncSSH-פֿאַרבינדונג
שאַפֿט דינאַמישע TCP-דורכפֿירונג מיט דער forward_socks API פֿון AsyncSSH און האַלט דעם צוהערער לעבעדיק אויפֿן asyncio-געשעענישן-שלייַף.
AsyncSSH שטעלט צו דינאַמישע TCP-דורכפֿירונג דורך forward_socks(). אַ פּראָגראַם וואָס האָט שוין AsyncSSH קען שאַפֿן אַ לאָקאַלן SOCKS-צוהערער איבער אַן 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())
דער SSH-סערווער און דער חשבון זענען בלויז ביישפּילן. עס גילט די געוויינטלעכע AsyncSSH-פּרופֿונג פֿון האָסט-שליסלען. דער סערווער מוז דערלויבן די געבעטענע TCP-דורכפֿירונג. פֿאַר דער עקוויוואַלענט אין באַפֿעלס-שורה ניצט OpenSSH'ס לאָקאַלע דינאַמישע דורכפֿירונג די זעלבע ריכטונג פֿון SSH צום ציל.
לאָקאַלע קליענטן קענען איצט ניצן 127.0.0.1:1080 ווי זייער SOCKS-ענדפּונקט. יעדער SOCKS-בקשה גיט איר ציל; דער SSH-סערווער עפֿנט די פּאַסיקע אויסגייער TCP-פֿאַרבינדונג. דער פּראָגראַם דאַרף נישט לויפֿן אַ ווייטן אַראָפּלאָדער פֿאַר יעדער URL.
דאָס וואַרטן האַלט דעם אַסינכראָנעם פֿונקציע אין דעם פֿאַרבינדונג-באַרייך. אַ באַלדיקע צוריקקער נאָך שאַפֿן דעם צוהערער וואָלט אַרויסגיין פֿון דעם באַרייך און פֿאַרמאַכן די פֿאַרבינדונג וואָס האַלט אים. אַ גרעסערער asyncio-פּראָגראַם קען האַלטן די פֿאַרבינדונג אָפֿן בשעת עס פֿירט זיך זיינע אַנדערע אויפֿגאַבעס אויפֿן זעלביקן געשעענישן-שלייַף.