Mae AsyncSSH yn darparu anfon TCP dynamig trwy forward_socks(). Gall rhaglen sydd eisoes ag AsyncSSH greu gwrandawr SOCKS lleol dros gysylltiad 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())

Mae'r gweinydd SSH a'r cyfrif yn enghreifftiau. Mae gwiriad arferol AsyncSSH o allweddi'r gwesteiwr yn berthnasol. Rhaid i'r gweinydd ganiatáu'r anfon TCP a ofynnwyd amdano. Ar gyfer yr hyn sy'n cyfateb ar y llinell orchymyn, mae anfon dynamig lleol OpenSSH yn defnyddio'r un cyfeiriad o SSH i'r gyrchfan.

Gall cleientiaid lleol nawr ddefnyddio 127.0.0.1:1080 fel eu pwynt terfyn SOCKS. Mae pob cais SOCKS yn rhoi ei gyrchfan; mae'r gweinydd SSH yn agor y cysylltiad TCP allanol cyfatebol. Nid oes angen i'r rhaglen redeg llwythwr o bell ar gyfer pob URL.

Mae'r aros yn cadw'r ffwythiant async o fewn cwmpas y cysylltiad. Byddai dychwelyd ar unwaith ar ôl creu'r gwrandawr yn gadael y cwmpas hwnnw ac yn cau'r cysylltiad sy'n ei gynnal. Gall rhaglen asyncio fwy gadw'r cysylltiad hwn ar agor wrth redeg ei thasgau eraill ar yr un ddolen ddigwyddiadau.

Erthyglau cysylltiedig