AsyncSSH ಸಂಪರ್ಕದಿಂದ ಸ್ಥಳೀಯ SOCKS ಆಲಿಸುವಿಕೆ
AsyncSSH ನ forward_socks API ಯೊಂದಿಗೆ ಕ್ರಿಯಾಶೀಲ TCP ಫಾರ್ವರ್ಡಿಂಗ್ ರಚಿಸಿ ಮತ್ತು ಆಲಿಸುವಿಕೆಯನ್ನು asyncio ಈವೆಂಟ್ ಲೂಪ್ನಲ್ಲಿ ಜೀವಂತವಾಗಿರಿಸಿ.
AsyncSSH forward_socks() ಮೂಲಕ ಕ್ರಿಯಾಶೀಲ TCP ಫಾರ್ವರ್ಡಿಂಗ್ ಒದಗಿಸುತ್ತದೆ. ಈಗಾಗಲೇ AsyncSSH ಹೊಂದಿರುವ ಅಪ್ಲಿಕೇಶನ್ SSH ಸಂಪರ್ಕದ ಮೇಲೆ ಸ್ಥಳೀಯ SOCKS ಆಲಿಸುವಿಕೆಯನ್ನು ರಚಿಸಬಹುದು:
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 ಅಪ್ಲಿಕೇಶನ್ ಈ ಸಂಪರ್ಕವನ್ನು ತೆರೆದಿಟ್ಟುಕೊಂಡು ತನ್ನ ಇತರ ಕೆಲಸಗಳನ್ನು ಅದೇ ಈವೆಂಟ್ ಲೂಪ್ನಲ್ಲಿ ನಡೆಸಬಹುದು.