ຕົວເລືອກ --preproxy ຂອງ curl ເຊື່ອມຕໍ່ SOCKS proxy ກ່ອນໄປຮອດ HTTP ຫຼື HTTPS proxy. ມັນຮອງຮັບຕ່ອງໂສ້ສະເພາະນີ້ ບໍ່ແມ່ນລາຍຊື່ proxy server ໃດໆຕາມໃຈ.

ເສັ້ນທາງແມ່ນ client → SOCKS endpoint → HTTP proxy → ປາຍທາງ. ປ່ຽນ endpoint ຕົວຢ່າງໃນເອກະສານທັງສອງໃນຄຳສັ່ງ:

curl --preproxy socks5h://203.0.113.10:1080 --proxy http://203.0.113.20:8080 --noproxy '' --connect-timeout 5 --max-time 20 --verbose https://example.com/

ບໍລິການ SOCKS ຕ້ອງໄປຮອດທີ່ຢູ່ແລະ port ຂອງ HTTP proxy ໄດ້. ຈາກນັ້ນ HTTP proxy ຕ້ອງຮັບຄຳຂໍໄປປາຍທາງ. ຖ້າ proxy ຕົວທີສອງໃຊ້ຊື່ host ໂໝດ SOCKS ຕົວທຳອິດກຳນົດວ່າຊື່ນັ້ນຖືກ resolve ຢູ່ໃສ; endpoint ເປັນຕົວເລກຫຼີກການຄົ້ນນີ້.

ຊອກຂັ້ນທີ່ລົ້ມເຫຼວ

ຢືນຢັນຄຳຂໍຜ່ານແຕ່ລະ endpoint ແຍກກັນກ່ອນ; ສຳລັບຂັ້ນ HTTP ໃຊ້ການທົດສອບ HTTP proxy ທີ່ຈຳກັດເວລາ. ແມ່ນແຕ່ທັງສອງໃຊ້ໄດ້ ເສັ້ນທາງລວມຍັງອາດລົ້ມເຫຼວ ເພາະ proxy ຕົວທຳອິດເຂົ້າຫາຕົວທີສອງບໍ່ໄດ້.

ອ່ານ trace ລະອຽດຕາມລຳດັບການເຊື່ອມຕໍ່. SOCKS ທີ່ລົ້ມເຫຼວຕອນເຂົ້າຫາ proxy ຕົວທີສອງ ເກີດກ່ອນ HTTP proxy ຕັດສິນໃຈຮັບຫຼືປະຕິເສດ CONNECT ໄປເວັບໄຊ. ຈົດວ່າ handshake ໃດລົ້ມເຫຼວ.

ຂັ້ນທີ່ເພີ່ມມີປະໂຫຍດເມື່ອໃດ

ການຈັດແບບນີ້ອາດຊ່ວຍເມື່ອ HTTP proxy ທີ່ໄດ້ຮັບອະນຸຍາດເຂົ້າເຖິງໄດ້ຜ່ານທາງ SOCKS. ແຕ່ມັນເພີ່ມອີກບໍລິການແລະທາງເຄືອຂ່າຍ ທີ່ອາດລົ້ມເຫຼວຫຼືເພີ່ມຄວາມຊ້າ. ການຕໍ່ endpoint ຈາກລາຍຊື່ proxy ສາທາລະນະ ບໍ່ຮັບປະກັນຄວາມໜ້າເຊື່ອຖື ຫຼືການປິດບັງຕົວຕົນ ແລະຍັງຕ້ອງໄວ້ໃຈຝ່າຍທີ່ຈັດການການເຊື່ອມຕໍ່.

--preproxy ຕ້ອງການ curl 7.52.0 ຫຼືໃໝ່ກວ່າ; ແອັບອື່ນອາດບໍ່ຮອງຮັບຮູບແບບດຽວກັນ.

ບົດຄວາມທີ່ກ່ຽວຂ້ອງ