ຕົວຮັບຟັງ SOCKS ທ້ອງຖິ່ນຈາກການເຊື່ອມຕໍ່ AsyncSSH
ສ້າງການສົ່ງຕໍ່ TCP ແບບເຄື່ອນໄຫວດ້ວຍ API forward_socks ຂອງ AsyncSSH ແລະ ຮັກສາຕົວຮັບຟັງໃຫ້ຢູ່ໃນ asyncio event loop.
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 ທີ່ໃຫຍ່ກວ່າສາມາດເປີດການເຊື່ອມຕໍ່ນີ້ໄວ້ ໃນຂະນະທີ່ເຮັດວຽກອື່ນໆໃນ event loop ດຽວກັນ.