Listener SOCKS lokali minn konnessjoni AsyncSSH
Oħloq forwarding TCP dinamiku bl-API forward_socks ta' AsyncSSH u żomm il-listener ħaj fuq il-loop tal-avvenimenti asyncio.
AsyncSSH joffri forwarding TCP dinamiku permezz ta' forward_socks(). Applikazzjoni li diġà għandha AsyncSSH tista' toħloq listener SOCKS lokali fuq konnessjoni 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())
Is-server SSH u l-kont huma eżempji. Tapplika l-verifika tas-soltu tal-keys tal-host ta' AsyncSSH. Is-server irid jippermetti l-forwarding TCP mitlub. Bħala ekwivalenti fil-linja tal-kmand, il-forwarding dinamiku lokali ta' OpenSSH juża l-istess direzzjoni mis-SSH għad-destinazzjoni.
Il-klijenti lokali issa jistgħu jużaw 127.0.0.1:1080 bħala l-endpoint SOCKS tagħhom. Kull talba SOCKS tipprovdi d-destinazzjoni tagħha; is-server SSH jiftaħ il-konnessjoni TCP ħierġa korrispondenti. L-applikazzjoni m'għandhiex għalfejn tniedi downloader remot għal kull URL.
It-tħejjija żżomm il-funzjoni asinkronika fl-ambitu tal-konnessjoni. Li tirritorna minnufih wara li toħloq il-listener joħroġ minn dak l-ambitu u jagħlaq il-konnessjoni li qed iżżommha. Applikazzjoni asyncio akbar tista' żżomm din il-konnessjoni miftuħa waqt li tmexxi x-xogħlijiet l-oħra tagħha fuq l-istess loop tal-avvenimenti.