แทน 127.0.0.1:8080 ด้วยเอนด์พอยต์จากบริการของคุณหรือจากรายการพร็อกซี HTTP แล้วเรียกคำสั่งนี้ไปยังปลายทาง HTTPS ที่ไม่เป็นอันตราย:

curl --noproxy '' --proxy http://127.0.0.1:8080 --connect-timeout 5 --max-time 15 --verbose https://example.com/

ที่อยู่ลูปแบ็กหมายถึงลิสเทนเนอร์บนเครื่องของคุณเอง คำสั่งนี้เลือกจุดนั้นอย่างชัดเจน ล้างรายการข้ามพร็อกซีของ curl สำหรับการเรียกครั้งนี้ และให้เวลาสร้างการเชื่อมต่อห้าวินาที กับเวลารวมสิบห้าวินาที โดยไม่เปลี่ยนการตั้งค่าพร็อกซีของเบราว์เซอร์หรือระบบ

ใช้ไฟล์โปรแกรม curl ตัวจริงหากเชลล์กำหนด curl เป็นชื่อแทนโปรแกรมอื่น โดย curl --version จะระบุบิลด์ที่ใช้ หากลิสเทนเนอร์เองต้องใช้ TLS ให้ใช้สคีม URL ของพร็อกซีตามเอกสาร

อ่านผลสี่ส่วน ไม่ใช่แค่สัญญาณสำเร็จเดียว

  1. เชื่อมต่อพร็อกซีที่เลือกแล้ว: ที่อยู่และพอร์ตเข้าถึงได้
  2. CONNECT ได้รับการยอมรับ: พร็อกซีเปิดอุโมงค์ไปยังปลายทาง HTTPS แล้ว
  3. ตรวจสอบใบรับรองปลายทางแล้ว: TLS เสร็จสมบูรณ์พร้อมการตรวจสอบความเชื่อถือที่คาดหมาย
  4. ได้รับคำตอบจากปลายทางแล้ว: ตรวจสถานะและเนื้อหาว่าให้ผลที่แอปพลิเคชันต้องการหรือไม่

อุโมงค์ที่ทำงานได้อาจตามด้วย 403 หรือ 429 จากปลายทาง curl อาจจบด้วยสถานะสำเร็จแม้ได้รับคำตอบข้อผิดพลาด HTTP จึงควรบันทึกทั้งสถานะตอบกลับและผลข้อผิดพลาดของ curl การเชื่อมต่อ TCP หรือ CONNECT สำเร็จเพียงอย่างเดียวยังไม่พอ

ผลแบบย่อสำหรับเปรียบเทียบซ้ำ

ในเชลล์แบบ Unix ให้ทิ้งเนื้อหาตอบกลับและแสดงสถานะอุโมงค์ สถานะปลายทาง คู่เชื่อมต่อ และเวลาที่ใช้:

curl --noproxy '' --proxy http://127.0.0.1:8080 --connect-timeout 5 --max-time 15 --silent --show-error --output /dev/null --write-out 'http=%{http_code} connect=%{http_connect} peer=%{remote_ip} total=%{time_total}\n' https://example.com/

http_connect อธิบายคำตอบของอุโมงค์ ส่วน http_code อธิบายคำตอบ HTTP สุดท้าย remote_ip คือคู่เชื่อมต่อของ curl ไม่ใช่การวัดที่อยู่ออกของพร็อกซีอย่างเป็นอิสระ บนระบบอื่นให้แทน /dev/null หรือเก็บเนื้อหาตอบกลับไว้

หากทดสอบไม่สำเร็จ ให้หาขั้นตอนสร้างการเชื่อมต่อหรือรับส่งข้อมูลที่ล้มเหลว แล้วเปรียบเทียบกับการติดต่อปลายทางเดียวกันโดยตรงในกรณีที่อนุญาตเส้นทางนั้น:

curl --noproxy '*' --connect-timeout 5 --max-time 15 --verbose https://example.com/

--noproxy '*' ข้ามพร็อกซี หากการตรวจใบรับรองล้มเหลวทั้งสองเส้นทาง อาจเป็นปัญหาความเชื่อถือร่วมกัน หากติดต่อโดยตรงสำเร็จแต่ CONNECT ถูกปฏิเสธ อาจเกี่ยวกับการยืนยันตัวตนหรือนโยบายของพร็อกซี ตรวจผลแบบละเอียดก่อนแชร์ เพราะอาจมีข้อมูลที่ใช้ระบุตัวตนได้

เก็บเอนด์พอยต์ เป้าหมาย และเวลาประทับพร้อมผล การทดสอบนี้ยืนยันว่าอะไรทำงานสำหรับคำขอนั้น ส่วนความพร้อมใช้ในอนาคต ความเป็นส่วนตัว และประสิทธิภาพเมื่อมีโหลด ต้องมีหลักฐานแยกต่างหาก

บทความที่เกี่ยวข้อง