AsyncSSH biedt dynamyske TCP-troerstjoering fia forward_socks(). In applikaasje dy't AsyncSSH al hat, kin in lokale SOCKS-harker oer in SSH-ferbining meitsje:

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())

De SSH-tsjinner en it akkount binne foarbylden. De gewoane AsyncSSH-kontrôle fan hostkaaien jildt. De tsjinner moat de frege TCP-troerstjoering tastean. As kommandorigel-ekwivalint brûkt de lokale dynamyske troerstjoering fan OpenSSH deselde rjochting fan SSH nei de bestimming.

Lokale klanten kinne no 127.0.0.1:1080 brûke as har SOCKS-einpunt. Elk SOCKS-fersyk jout syn bestimming; de SSH-tsjinner iepenet de byhearrende útgeande TCP-ferbining. De applikaasje hoecht net foar elke URL in ôfstân-lader út te fieren.

It wachtsjen hâldt de asynkrone funksje binnen it berik fan 'e ferbining. Fuortendaliks weromkomme nei it meitsjen fan de harker soe dat berik ferlitte en de ferbining slute dy't him draacht. In gruttere asyncio-applikaasje kin dizze ferbining iepen hâlde wylst it syn oare taken op deselde evenemintslus útfiert.

Relatearre artikelen