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 апликација може да ја држи оваа врска отворена додека ги извршува другите задачи на истата јамка за настани.

Поврзани статии