Paikallinen SOCKS-kuuntelija AsyncSSH-yhteydestä
Luo dynaaminen TCP-edelleenohjaus AsyncSSH:n forward_socks-API:lla ja pidä kuuntelija elossa asyncio-tapahtumasilmukassa.
AsyncSSH tarjoaa dynaamisen TCP-edelleenohjauksen forward_socks() kautta. Sovellus, jolla on AsyncSSH jo käytössä, voi luoda paikallisen SOCKS-kuuntelijan SSH-yhteyden yli:
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-palvelin ja tili ovat esimerkkejä. Tavallinen AsyncSSH:n isäntäavainten tarkistus pätee. Palvelimen on sallittava pyydetty TCP-edelleenohjaus. Komentorivivastineena OpenSSH:n paikallinen dynaaminen edelleenohjaus käyttää samaa suuntaa SSH:sta kohteeseen.
Paikalliset asiakkaat voivat nyt käyttää 127.0.0.1:1080 SOCKS-päätepisteenään. Jokainen SOCKS-pyyntö ilmoittaa kohteensa; SSH-palvelin avaa vastaavan lähtevän TCP-yhteyden. Sovelluksen ei tarvitse suorittaa etälataajaa jokaista URL-osoitetta varten.
Odotus pitää asynkronisen funktion yhteyden laajuudessa. Välitön paluu kuuntelijan luomisen jälkeen poistuisi tästä laajuudesta ja sulkisi yhteyden, joka sitä tukee. Suurempi asyncio-sovellus voi pitää tämän yhteyden auki samalla, kun se suorittaa muita tehtäviään samassa tapahtumasilmukassa.