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.

Artikli relatati