Gwrandawr SOCKS lleol o gysylltiad AsyncSSH
Crëwch anfon TCP dynamig gydag API forward_socks AsyncSSH a chadwch y gwrandawr yn fyw ar ddolen ddigwyddiadau asyncio.
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.