บทความ

บทนำ: สิ่งที่คุณจะได้รับจากคู่มือนี้

ถ้าคุณทำงานกับพร็อกซีมือถือ ไม่ช้าก็เร็วคุณจะเห็นข้อความในบันทึกของตัวเก็บข้อมูล ในคอนโซลของเบราว์เซอร์ต้านการตรวจจับ หรือในหน้าต่างบัญชีโฆษณาโดยตรงว่า «407 Proxy Authentication Required», «502 Bad Gateway», «504 Gateway Timeout» หรือข้อความสั้นๆ ที่น่ากลัวอย่าง «tunnel failed» ข้อผิดพลาดพร็อกซีเซิร์ฟเวอร์ในตอนนั้นดูเหมือนกล่องดำ: ไม่รู้ว่าพร็อกซีเอง ซอฟต์แวร์ของคุณ เว็บไซต์เป้าหมาย หรือแค่รหัสผ่านที่ล้าสมัยเป็นตัวการ คู่มือนี้เปลี่ยนกล่องดำให้เป็นแผนการดำเนินการที่เข้าใจได้

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

สิ่งที่คุณจะได้รับในที่สุด

  • เข้าใจความหมายของข้อผิดพลาดทั้งสี่และเกิดที่จุดใดในห่วงโซ่ «ซอฟต์แวร์ของคุณ — พร็อกซี — เว็บไซต์เป้าหมาย»
  • เรียนรู้ที่จะระบุต้นตอของปัญหาได้ในสองถึงสามนาทีด้วยยูทิลิตี curl ที่มีอยู่ในทุกระบบ
  • ได้ลำดับการดำเนินการพร้อมใช้สำหรับ 407, 502, 504 และ tunnel failed ซึ่งทำตามเป็นเช็กลิสต์ได้
  • ตั้งค่าซอฟต์แวร์ของคุณให้ตอบสนองต่อแต่ละรหัสอย่างถูกต้อง: ข้อผิดพลาดบางอย่างต้องลองใหม่ บางอย่างลองใหม่ก็ไร้ประโยชน์
  • สร้างบันทึกเหตุการณ์ส่วนตัวที่จะประหยัดเวลาหลายชั่วโมงเมื่อเกิดปัญหาครั้งต่อไป

คู่มือนี้เหมาะกับใคร

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

สิ่งที่ต้องรู้ล่วงหน้า

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

ใช้เวลานานเท่าไร

การอ่านทั้งหมดและการวินิจฉัยครั้งแรกจะใช้เวลา 60 ถึง 120 นาที ถ้าตอนนี้คุณมีข้อผิดพลาดเฉพาะที่เร่งด่วน ให้ข้ามไปยังขั้นตอนที่ต้องการ: แต่ละข้อผิดพลาดใช้เวลา 15-25 นาทีรวมการตรวจสอบ

การเตรียมการล่วงหน้า: เครื่องมือและการเข้าถึง

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

เครื่องมือที่จำเป็น

  1. เทอร์มินัลหรือคอมมานด์ไลน์ ใน Windows 10 และ 11 เปิดเมนู «Start» พิมพ์ «cmd» หรือ «PowerShell» แล้วกด Enter ใน macOS เปิด «Applications» จากนั้น «Utilities» จากนั้น «Terminal» ใน Linux เทอร์มินัลมักเรียกด้วย Ctrl+Alt+T
  2. ยูทิลิตี curl มีมาในตัวตั้งแต่ Windows เวอร์ชัน 10 (บิลด์ 1803) ใน macOS และในดิสทริบิวชัน Linux ส่วนใหญ่ ตรวจสอบ: พิมพ์ในเทอร์มินัล curl --version แล้วกด Enter ควรมีบรรทัดที่มีหมายเลขเวอร์ชัน เช่น «curl 8.x.x» ถ้าแทนที่จะเป็นเช่นนั้นมีข้อความว่าหาคำสั่งไม่พบ ให้ติดตั้ง curl ผ่านตัวจัดการแพ็กเกจของระบบ
  3. เบราว์เซอร์ทั่วไป ที่มีเครื่องมือนักพัฒนา ใช้เบราว์เซอร์สมัยใหม่ใดก็ได้ที่เปิดแผงด้วยปุ่ม F12 และมีแท็บ «Network»
  4. โปรแกรมแก้ไขข้อความ สำหรับบันทึกเหตุการณ์ Notepad ก็พอ แต่ใช้โปรแกรมที่มีการไฮไลต์จะสะดวกกว่าเพื่อเห็นโครงสร้างของบันทึก
  5. ซอฟต์แวร์ที่คุณใช้งาน: เบราว์เซอร์ต้านการตรวจจับ ตัวเก็บข้อมูล ตัวจัดการบัญชีโฆษณา หรือสคริปต์ของคุณเอง เราต้องการเข้าถึงการตั้งค่าพร็อกซีและบันทึกของมัน

สิทธิ์การเข้าถึงที่จำเป็น

  • เข้าใช้บัญชีผู้ให้บริการพร็อกซี สำหรับผู้ใช้ mobileproxy.space นี่คือหน้าจัดการช่องสัญญาณของคุณที่แสดงโฮสต์ พอร์ต ล็อกอิน รหัสผ่าน ประเภทการยืนยันตัวตน และลิงก์เปลี่ยน IP
  • ข้อมูลพร็อกซีอย่างน้อยหนึ่งตัวที่ใช้ได้: ที่อยู่ (โฮสต์), พอร์ต, ล็อกอินและรหัสผ่าน หรือ IP ที่ยืนยันแล้วสำหรับการยืนยันตัวตนตามที่อยู่
  • เข้าใจว่าคุณใช้โปรโตคอลใด: HTTP(S)-พร็อกซี หรือ SOCKS5 ข้อมูลนี้ก็แสดงในบัญชีเช่นกัน

ข้อกำหนดของระบบ

ระบบปฏิบัติการใดก็ได้ที่ออกในช่วงแปดปีที่ผ่านมา การเชื่อมต่ออินเทอร์เน็ตที่เข้าถึงโฮสต์พร็อกซีได้ ไม่ต้องมีอะไรเพิ่มเติม

สำรองข้อมูล

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

  1. ในเบราว์เซอร์ต้านการตรวจจับ ส่งออกรายการโปรไฟล์พร้อมการตั้งค่าพร็อกซี ปกติฟังก์ชันส่งออกอยู่ในเมนูโปรไฟล์และสร้างไฟล์ CSV หรือ JSON
  2. ในตัวเก็บข้อมูลหรือสคริปต์ คัดลอกไฟล์คอนฟิกไปยังโฟลเดอร์แยกต่างหากที่ชื่อมีวันที่ เช่น «config_backup_2026-03-14»
  3. จากบัญชี คัดลอกข้อมูลของทุกช่องสัญญาณลงในไฟล์ข้อความ เก็บไฟล์นี้ไว้ที่ที่คนอื่นเข้าไม่ถึง
  4. บันทึกว่า IP ของคอมพิวเตอร์หรือเซิร์ฟเวอร์ของคุณตอนนี้คืออะไร จะต้องใช้ถ้าคุณใช้การยืนยันตัวตนตาม IP address

เคล็ดลับ: สร้างไฟล์ข้อความ «บันทึกพร็อกซี» หนึ่งไฟล์และบันทึกทุกข้อผิดพลาดในรูปแบบ «วันที่, เวลา, รหัส, โฮสต์พร็อกซี, เว็บไซต์เป้าหมาย, สิ่งที่ทำ, สิ่งที่ช่วยได้» ผ่านไปหนึ่งเดือนคุณจะมีฐานความรู้ส่วนตัวที่มีประโยชน์มากกว่าบทความใดๆ

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

แนวคิดพื้นฐาน: โครงสร้างของเลเยอร์พร็อกซีและที่มาของรหัส

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

สามช่วงของเส้นทางคำขอ

  • ไคลเอนต์ — พร็อกซี เบราว์เซอร์ ตัวเก็บข้อมูล หรือสคริปต์ของคุณเชื่อมต่อกับโฮสต์และพอร์ตพร็อกซี ในช่วงนี้จะตรวจสอบการยืนยันตัวตน ข้อผิดพลาด 407 และบางกรณีของ tunnel failed เกิดที่นี่
  • พร็อกซี — เครือข่ายมือถือ — เว็บไซต์เป้าหมาย พร็อกซีเซิร์ฟเวอร์เมื่อได้รับคำขอของคุณ จะเปิดการเชื่อมต่อในนามของตัวเองผ่านโมเด็มที่มีซิมการ์ดของผู้ให้บริการไปยังเว็บไซต์ที่ต้องการ 502 และ 504 เกิดที่นี่
  • เว็บไซต์เป้าหมาย — เส้นทางกลับ การตอบกลับของเว็บไซต์เดินกลับผ่านโหนดเดิม ถ้าเว็บไซต์ส่งรหัสของตัวเอง เช่น 403 หรือ 429 นั่นไม่ใช่ข้อผิดพลาดของเลเยอร์พร็อกซี และสำคัญคือต้องแยกแยะให้ออก

คลาสของรหัสในภาษาง่ายๆ

รหัสตอบกลับคือตัวเลขสามหลักที่เซิร์ฟเวอร์ส่งมาเป็นบรรทัดแรกของการตอบกลับ ตัวเลขตัวแรกบอกคลาส รหัส 4xx หมายถึง «ปัญหาอยู่ฝั่งคุณ แก้ไขคำขอ» รหัส 5xx หมายถึง «ปัญหาอยู่ฝั่งเซิร์ฟเวอร์หรือหลังจากนั้น» สำหรับเลเยอร์พร็อกซีทำงานดังนี้:

  • 407 Proxy Authentication Required — พร็อกซีบอกว่า: «ฉันไม่รู้ว่าคุณเป็นใคร หรือข้อมูลของคุณไม่ถูกต้อง» คลาส 4xx: ต้องแก้ที่ฝั่งคุณ
  • 502 Bad Gateway — พร็อกซีบอกว่า: «ฉันพยายามเชื่อมต่อไปข้างหน้าแล้ว แต่ได้รับการตัดขาดหรือข้อมูลขยะแทนการตอบกลับ» คลาส 5xx: ปัญหาอยู่หลังพร็อกซีหรือในพร็อกซีเอง
  • 504 Gateway Timeout — พร็อกซีบอกว่า: «ฉันรอการตอบกลับจากโหนดถัดไปตามเวลาที่กำหนดแล้วไม่ได้รับ» นี่ก็เป็น 5xx เช่นกัน

รหัส 504 ต่างจากการหมดเวลาเครือข่ายอย่างไร

นี่คือความแตกต่างสำคัญสำหรับบทความทั้งหมด เมื่อคุณเห็นรหัส 504 หมายความว่าพร็อกซีเซิร์ฟเวอร์ยังมีชีวิต รับคำขอของคุณ รอการตอบกลับของเว็บไซต์เอง และรายงานความล้มเหลวให้คุณทราบ การเชื่อมต่อระหว่างคุณกับพร็อกซีในตอนนั้นทำงานได้อย่างสมบูรณ์ แต่เมื่อไคลเอนต์ของคุณเขียนว่า «connection timed out» หรือ «operation timed out» โดยไม่มีรหัส หมายความว่าไม่มีการตอบกลับเลย และการตัดขาดเกิดจากซอฟต์แวร์ของคุณ อย่างแรกคือหัวข้อของคู่มือนี้ อย่างที่สองเป็นหัวข้ออื่นที่วิเคราะห์ในเนื้อหาที่เกี่ยวข้องของบล็อก วิธีสังเกตง่ายๆ: ถ้ามีตัวเลขสามหลักในการตอบกลับ อ่านต่อที่นี่

ทันเนลคืออะไรและทำไมมัน «ล้มเหลว»

เมื่อคุณเปิดเว็บไซต์ผ่าน HTTPS ผ่าน HTTP-พร็อกซี เบราว์เซอร์จะส่งคำสั่งพิเศษ CONNECT พร้อมที่อยู่และพอร์ตปลายทางไปยังพร็อกซีก่อน พร็อกซีเปิดการเชื่อมต่อกับเว็บไซต์และตอบ «200 Connection established» หลังจากนั้นสตรีมที่เข้ารหัสจะผ่านพร็อกซี ซึ่งพร็อกซีจะไม่อ่าน การเชื่อมต่อนี้เรียกว่า ทันเนล ถ้าพร็อกซีตอบคำสั่ง CONNECT ด้วยอย่างอื่นที่ไม่ใช่ 200 ไคลเอนต์จะเขียน «tunnel failed» และมักระบุรหัสที่ได้รับ ดังนั้น tunnel failed ไม่ใช่ข้อผิดพลาดอิสระ แต่เป็นตัวห่อหุ้มรหัสใดรหัสหนึ่ง

สองวิธีในการยืนยันตัวตน

  • ล็อกอินและรหัสผ่าน ไคลเอนต์ส่งในส่วนหัว Proxy-Authorization วิธีที่พบบ่อยที่สุดและเป็นต้นเหตุที่พบบ่อยที่สุดของ 407
  • การยืนยันตาม IP คุณระบุที่อยู่ของคอมพิวเตอร์หรือเซิร์ฟเวอร์ล่วงหน้าในบัญชี และพร็อกซีจะปล่อยทุกคำขอจากที่อยู่นั้นโดยไม่ต้องใช้รหัสผ่าน สะดวก แต่พังเมื่อ IP ของคุณเปลี่ยน

ส่วนหัวบริการที่บอกผู้ส่งคำตอบได้

พร็อกซิมักเพิ่มส่วนหัว Via, Proxy-Agent หรือ X-Proxy ในการตอบกลับ เว็บไซต์เป้าหมายไม่ใส่สิ่งเหล่านี้ ถ้าในการตอบกลับที่มีรหัส 502 มีส่วนหัว Proxy-Agent คุณรู้แน่ว่าพร็อกซีเป็นผู้ตอบ ถ้าไม่มีส่วนหัวแต่มี Server ที่มีชื่อเว็บเซิร์ฟเวอร์ของเว็บไซต์ นั่นคือคำตอบของเว็บไซต์เอง เราจะใช้สัญญาณนี้อย่างจริงจัง

เคล็ดลับ: จำกฎช่วยจำ: «4 — หาที่ฝั่งคุณ, 5 — หาหลังพร็อกซี, ทันเนล — ดูว่ามีตัวเลขอะไรอยู่ข้างๆ» ช่วยแก้ปัญหาได้ครึ่งหนึ่งโดยไม่ต้องอ่านต่อ

ขั้นตอนที่ 1: ระบุว่าใครกันแน่ที่ส่งข้อผิดพลาด

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

คำแนะนำ

  1. เปิดบัญชีและคัดลอกข้อมูลพร็อกซีที่มีปัญหา: โฮสต์, พอร์ต, ล็อกอิน, รหัสผ่าน ในตัวอย่างจะถือว่าโฮสต์คือ proxy.example.net, พอร์ต 8080, ล็อกอิน user1, รหัสผ่าน pass1 ใช้ค่าของคุณแทน
  2. เปิดเทอร์มินัล
  3. พิมพ์คำสั่งโดยเปลี่ยนข้อมูลและที่อยู่เป้าหมายเป็นของคุณ แล้วกด Enter: curl -v -x http://user1:pass1@proxy.example.net:8080 https://example.com/ คีย์ -v เปิดเอาต์พุตแบบละเอียด คีย์ -x กำหนดพร็อกซี
  4. รอคำสั่งเสร็จ ปกติใช้เวลาหนึ่งถึงสามวินาที ถ้าคำสั่ง «ค้าง» เกิน 30 วินาที กด Ctrl+C: น่าจะเป็นการหมดเวลาเครือข่าย ไม่ใช่รหัส และไม่ใช่หัวข้อของเรา
  5. หาในเอาต์พุตบรรทัดที่ขึ้นต้นด้วยเครื่องหมาย «มากกว่า» (คือสิ่งที่ curl ส่ง) และเครื่องหมาย «น้อยกว่า» (คือสิ่งที่ได้รับการตอบกลับ) บรรทัดแรกของการตอบกลับจะเป็น «HTTP/1.1 407 Proxy Authentication Required» หรือ «HTTP/1.1 200 Connection established»
  6. ดูบรรทัดที่มีคำว่า CONNECT ถ้าทันทีหลังจากนั้นมีรหัสที่ไม่ใช่ 200 หมายความว่าพร็อกซีส่งข้อผิดพลาดในขั้นทันเนล ถ้า CONNECT ได้ 200 แต่รหัสข้อผิดพลาดมาทีหลัง หลังบรรทัด TLS handshake หมายความว่าเว็บไซต์เป้าหมายเป็นผู้ตอบ
  7. หาส่วนหัวของการตอบกลับ การมี Proxy-Agent, Via หรือส่วนหัวบริการที่คล้ายกันชี้ชัดว่าเป็นพร็อกซี ส่วนหัว Server ที่มีชื่อเว็บเซิร์ฟเวอร์และส่วนหัว Set-Cookie ชี้ว่าเป็นเว็บไซต์เป้าหมาย
  8. ทำคำสั่งเดิมซ้ำโดยไม่มีคีย์ -x คือเชื่อมต่อตรง: curl -v https://example.com/ ถ้าเว็บไซต์ตอบ 200 แต่ผ่านพร็อกซีได้ 5xx ปัญหาอยู่ในช่วงหลังพร็อกซี
  9. ทำคำสั่งซ้ำผ่านพร็อกซีแต่ไปยังเว็บไซต์อื่น เช่น ไปยังแหล่งข้อมูลขนาดใหญ่ที่เสถียร ถ้าเว็บไซต์ที่สองเปิดได้ ปัญหาเกี่ยวข้องกับทิศทางเฉพาะ ไม่ใช่พร็อกซีโดยรวม
  10. คัดลอกเอาต์พุตทั้งหมดลงในบันทึกพร็อกซีพร้อมวันที่และเวลา จะต้องใช้ในขั้นตอนต่อไป

เส้นทางทางเลือกผ่านเบราว์เซอร์

ถ้าไม่สะดวกใช้เทอร์มินัล เปิดเบราว์เซอร์ที่ตั้งค่าพร็อกซีแล้ว กด F12 ไปที่แท็บ «Network» ติ๊ก «Preserve log» รีเฟรชหน้า ในรายการคำขอ หาบรรทัดที่มีรหัสสีแดง คลิกที่มันและดูบล็อก «Response Headers» ในแท็บ «Headers» ตรรกะเดียวกัน: หาส่วนหัวบริการของพร็อกซี ข้อเสียคือเบราว์เซอร์มักซ่อนรายละเอียดของขั้น CONNECT ดังนั้นสำหรับ tunnel failed เทอร์มินัลดีกว่า

ข้อควรระวัง: คำสั่งที่มีคีย์ -v แสดงล็อกอินและรหัสผ่านพร็อกซีในลักษณะเปิดเผย อย่าวางเอาต์พุตนี้ในแชทสาธารณะ ตั๋วสนับสนุน และภาพหน้าจอโดยไม่แทนที่รหัสผ่านด้วยเครื่องหมายดาว

เคล็ดลับ: เพิ่มคีย์ -sS พร้อมกับ -o และระบุอุปกรณ์ว่างเพื่อไม่ให้หน้าจอเต็มไปด้วยเนื้อหาการตอบกลับ: curl -sS -v -o /dev/null -x http://user1:pass1@proxy.example.net:8080 https://example.com/ ใน Windows ใช้ NUL แทน /dev/null

ผลลัพธ์ที่คาดหวัง

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

ปัญหาที่อาจเกิดขึ้น

  • คำสั่งเขียน «Could not resolve proxy» พิมพ์โฮสต์ผิด ตรวจสอบกับบัญชีทีละตัวอักษร
  • คำสั่งเขียน «Failed to connect to proxy» พอร์ตปิดหรือไม่ถูกต้อง นี่เป็นปัญหาการขนส่ง ไม่ใช่รหัส ตรวจสอบพอร์ตและลองช่องสัญญาณอื่น
  • เอาต์พุตขาดตอนที่บรรทัด TLS โดยไม่มีรหัส หมายความว่าทันเนลถูกสร้างแล้ว แต่เว็บไซต์ไม่ตอบในเวลาที่ไคลเอนต์ของคุณกำหนด อย่าสับสนกับ 504: ไม่มีรหัสหมายความว่าไม่ใช่กรณีของเรา

การตรวจสอบ: คุณสามารถบอกผู้ส่งคำตอบและรหัสหรือวลีที่แน่นอนได้ และบรรทัดเอาต์พุต curl บันทึกไว้ในบันทึก

ขั้นตอนที่ 2: แก้ไขข้อผิดพลาด 407 Proxy Authentication Required

เป้าหมายของขั้นตอนนี้: ทำให้พร็อกซีตอบ «200 Connection established» ต่อคำสั่ง CONNECT ไม่ใช่ 407 และเข้าใจสาเหตุเพื่อไม่ให้ข้อผิดพลาดกลับมา

ทำไม 407 จึงเกิด

พร็อกซีไม่ยอมรับข้อมูลรับรองของคุณ สาเหตุมักมีหกประการ และเราจะตรวจสอบตามลำดับความซับซ้อนจากน้อยไปมาก: พิมพ์ผิด, อักขระพิเศษในรหัสผ่าน, IP ของคุณเปลี่ยนเมื่อใช้การยืนยันตามที่อยู่, ช่องสัญญาณหมดอายุ, ซอฟต์แวร์ไม่ส่งข้อมูลเลย, แคชข้อมูลเก่าในเบราว์เซอร์

คำแนะนำ

  1. เปิดบัญชีและหาช่องสัญญาณที่มีปัญหา ตรวจสอบว่าวันหมดอายุยังไม่ผ่านและสถานะใช้งานอยู่ ถ้าหมดอายุแล้ว ให้ต่ออายุและทำคำขอซ้ำในหนึ่งนาที ในกรณีนี้ไม่ต้องไปต่อ
  2. ตรวจสอบว่าช่องสัญญาณเปิดใช้การยืนยันตัวตนประเภทใด: ล็อกอินและรหัสผ่าน หรือตาม IP address แผงควบคุมหลายแห่งอนุญาตให้เปิดทั้งสองพร้อมกัน
  3. ถ้าเปิดการยืนยันตาม IP ให้หาที่อยู่ภายนอกปัจจุบันของคอมพิวเตอร์หรือเซิร์ฟเวอร์ของคุณ เปิดในเบราว์เซอร์โดยไม่มีพร็อกซีไปยังบริการที่แสดง IP ของคุณ แล้วเปรียบเทียบกับที่อยู่ที่บันทึกในบัญชี ผู้ให้บริการอินเทอร์เน็ตบ้านและมือถือมักเปลี่ยนที่อยู่หลังรีสตาร์ทเราเตอร์ ถ้าที่อยู่ไม่ตรงกัน ให้อัปเดตในบัญชีและรอหนึ่งถึงสองนาที: การเปลี่ยนแปลงไม่ได้มีผลทันที
  4. ถ้าใช้ล็อกอินและรหัสผ่าน ให้คัดลอกจากบัญชีใหม่ อย่าพิมพ์ซ้ำด้วยมือ วางในคำสั่ง curl จากขั้นตอนที่ 1 แล้วรัน ครึ่งหนึ่งของกรณี 407 จบที่นี่
  5. ดูที่รหัสผ่าน ถ้ามีอักขระ @, :, /, #, ?, % หรือช่องว่าง ต้องเข้ารหัสเมื่อส่งในสตริงที่อยู่ เครื่องหมาย @ กลายเป็น %40, ทวิภาคเป็น %3A, เครื่องหมายเลขเป็น %23, เครื่องหมายเปอร์เซ็นต์เป็น %25 ตัวอย่างเช่น รหัสผ่าน p@ss:1 เขียนใน URL เป็น p%40ss%3A1 เพื่อไม่ต้องเข้ารหัส ให้ส่งข้อมูลด้วยคีย์แยก: curl -v -x proxy.example.net:8080 --proxy-user user1:p@ss:1 https://example.com/ ที่นี่ curl จัดการอักขระเอง
  6. ถ้า curl ผ่าน แต่ซอฟต์แวร์ที่ใช้งานยังได้ 407 ปัญหาอยู่ที่ซอฟต์แวร์ เปิดการตั้งค่าพร็อกซี ตรวจสอบว่าล็อกอินและรหัสผ่านป้อนในช่องแยก ไม่ได้ต่อกับที่อยู่ ถ้าโปรแกรมไม่ต้องการแบบนั้น ตรวจสอบว่าไม่มีช่องว่างที่ท้ายรหัสผ่าน: มักเกิดจากการคัดลอก
  7. ในเบราว์เซอร์ต้านการตรวจจับ เปิดการตั้งค่าของโปรไฟล์เฉพาะ ไม่ใช่การตั้งค่าทั่วไป ผู้ใช้หลายคนเปลี่ยนรหัสผ่านในรายการพร็อกซีทั่วไป แต่โปรไฟล์ยังเก็บสำเนาเก่า บันทึกพร็อกซีใหม่ในโปรไฟล์และรีสตาร์ทโปรไฟล์
  8. ถ้าเบราว์เซอร์จดจำข้อมูลเก่าและไม่ถามข้อมูลใหม่ ให้ล้างรหัสผ่านที่บันทึกไว้สำหรับโฮสต์นี้ในการตั้งค่าเบราว์เซอร์ หรือสร้างโปรไฟล์ใหม่สำหรับทดสอบ
  9. สังเกตส่วนหัว Proxy-Authenticate ในการตอบกลับ 407 ถ้าเขียนว่า «Basic» พร็อกซีต้องการคู่ล็อกอิน-รหัสผ่านธรรมดา ถ้าระบุสกีมาอื่น ซอฟต์แวร์ของคุณต้องรองรับ สำหรับพร็อกซีมือถือมักใช้ Basic และความไม่ตรงกันหมายถึงข้อผิดพลาดในการตั้งค่าประเภทพร็อกซี
  10. ทำคำขอ curl ซ้ำและยืนยันว่าตอนนี้ CONNECT ได้ 200

ข้อควรระวัง: อย่าพยายาม «แก้» 407 ด้วยการส่งคำขอซ้ำจำนวนมาก พร็อกซีเซิร์ฟเวอร์บางตัวบล็อกที่อยู่ชั่วคราวหลังการยืนยันตัวตนผิดหลายครั้ง และคุณจะได้ปัญหาเพิ่มเติมซ้อนกับปัญหาเดิม ตรวจสอบหนึ่งครั้ง แก้หนึ่งอย่าง ตรวจสอบหนึ่งครั้ง

เคล็ดลับ: ถ้าคุณมีหลายสิบช่องสัญญาณ ให้เก็บในตารางที่ล็อกอินและรหัสผ่านอยู่ในคอลัมน์แยก และมีคอลัมน์ที่มีรหัสผ่านที่เข้ารหัสสำหรับ URL แล้วคุณจะไม่มีทางสลับว่าต้องใส่อะไรที่ไหน

ผลลัพธ์ที่คาดหวัง

ในเอาต์พุต curl บรรทัดตอบกลับต่อ CONNECT กลายเป็น «HTTP/1.1 200 Connection established» เว็บไซต์ส่งเนื้อหา ในซอฟต์แวร์ที่ใช้งานคำขอผ่าน ในบันทึกสาเหตุถูกบันทึก: พิมพ์ผิด, การเข้ารหัส, IP เปลี่ยน, หมดอายุ หรือแคช

ปัญหาที่อาจเกิดขึ้น

  • รหัส 407 มาสองครั้ง: ครั้งแรกที่ CONNECT ครั้งที่สองในทันเนล นี่เป็นสัญญาณว่าซอฟต์แวร์ส่งข้อมูลเฉพาะขั้นใดขั้นหนึ่ง อัปเดตโปรแกรมหรือเปิดตัวเลือกการส่งการยืนยันตัวตนใน CONNECT
  • บัญชีบอกว่าเพิ่ม IP แล้ว แต่ 407 ยังอยู่ คุณอาจทำงานผ่านเครือข่ายองค์กรหรือเซิร์ฟเวอร์ที่มีหลายที่อยู่ขาออก ตรวจสอบที่อยู่จากเครื่องที่ส่งคำขอจริงๆ
  • ใช้ได้กับคุณ แต่ใช้ไม่ได้กับเพื่อนร่วมงานที่ใช้ข้อมูลเดียวกัน เมื่อใช้การยืนยันตาม IP นี่เป็นเรื่องปกติ: เพื่อนร่วมงานมีที่อยู่ต่างกัน เปลี่ยนไปใช้ล็อกอินและรหัสผ่าน หรือเพิ่ม IP ที่สอง

การตรวจสอบ: คำขอสามครั้งติดต่อกันผ่าน curl และผ่านซอฟต์แวร์ที่ใช้งานผ่านโดยไม่มี 407 สาเหตุบันทึกในบันทึกแล้ว

ขั้นตอนที่ 3: จัดการกับข้อผิดพลาด 502 Bad Gateway จากพร็อกซี

เป้าหมายของขั้นตอนนี้: แยกความล้มเหลวชั่วคราวในขณะเปลี่ยน IP ออกจากปัญหาถาวรกับทิศทางหรือช่องสัญญาณ และเลือกการตอบสนองที่ถูกต้องสำหรับแต่ละกรณี

ทำไมพร็อกซีส่ง 502

พร็อกซีรับคำขอของคุณ พยายามเปิดการเชื่อมต่อไปข้างหน้าแล้วได้รับการตัดขาด การปฏิเสธ หรือคำตอบที่อ่านไม่ได้ สำหรับพร็อกซีมือถือ สาเหตุทั่วไปคือ: โมเด็มกำลังสลับ IP address หรือลงทะเบียนใหม่ในเครือข่ายผู้ให้บริการ; เว็บไซต์เป้าหมายตัดการเชื่อมต่อ; ฝั่งพร็อกซีไม่สามารถแก้ชื่อโดเมนของเว็บไซต์ได้; ช่องสัญญาณมีภาระมากเกินไปจากจำนวนสตรีมพร้อมกันมากเกินไป; เว็บไซต์ไม่พร้อมใช้งานสำหรับทุกคน

คำแนะนำ

  1. บันทึกเวลาที่ 502 ปรากฏอย่างแม่นยำพร้อมวินาที สิ่งนี้สำคัญสำหรับข้อถัดไป
  2. เปิดประวัติการเปลี่ยน IP ของช่องสัญญาณนี้ในบัญชี หรือนึกว่าคุณเปิดการหมุนอัตโนมัติตามกำหนดเวลาหรือไม่ ถ้าการหมุนทำงานในวินาทีเดียวกับข้อผิดพลาด คุณเจอพฤติกรรมปกติ: ในระหว่างการสลับที่อยู่ คำขอจะได้ 502 สองถึงสิบวินาที วิธีแก้คือทำคำขอซ้ำหลังหยุดพัก
  3. รอสิบวินาทีและทำคำสั่ง curl จากขั้นตอนที่ 1 ซ้ำ ถ้าคำตอบกลายเป็น 200 บันทึกในบันทึก «502 ในขณะหมุน» และไปตั้งค่าการลองใหม่ในขั้นตอนที่ 6
  4. ถ้า 502 เกิดซ้ำอย่างต่อเนื่อง ให้ตรวจสอบเว็บไซต์อื่นผ่านพร็อกซีเดิม ถ้าเปิดได้ ปัญหาอยู่ที่ทิศทาง ถ้าเปิดไม่ได้ ปัญหาอยู่ที่ช่องสัญญาณ
  5. สำหรับปัญหาทิศทาง: เปิดเว็บไซต์เป้าหมายโดยตรงโดยไม่มีพร็อกซี ถ้าเข้าถึงโดยตรงไม่ได้หรือส่ง 5xx พร็อกซีไม่ใช่ตัวการ: เว็บไซต์ล่ม ถ้าโดยตรงทำงานได้ เว็บไซต์อาจตัดการเชื่อมต่อจากที่อยู่ของผู้ให้บริการรายนี้ เปลี่ยน IP ผ่านลิงก์ในบัญชีและทำซ้ำ ถ้าไม่ช่วย ให้ลองช่องสัญญาณของผู้ให้บริการหรือภูมิภาคอื่น
  6. สำหรับปัญหาช่องสัญญาณ: ตรวจสอบสถานะอุปกรณ์ในบัญชี ผู้ให้บริการหลายรายมีตัวบ่งชี้สถานะโมเด็ม สถานะสีแดงหรือเหลืองหมายความว่าช่องสัญญาณกำลังกู้คืน และเหลือแค่รอหรือสลับไปใช้สำรอง
  7. ตรวจสอบภาระ ดูในซอฟต์แวร์ของคุณว่ามีกี่สตรีมพร้อมกันที่ผ่านช่องสัญญาณนี้ ช่องสัญญาณมือถือมีแบนด์วิดท์จำกัด และเมื่อมีการเชื่อมต่อแบบขนานหลายสิบ พร็อกซีจะเริ่มปฏิเสธคำขอบางส่วนด้วย 502 ลดการทำงานแบบขนานลงครึ่งหนึ่งและทดสอบซ้ำ
  8. ตรวจสอบว่าเกี่ยวกับ DNS หรือไม่ ทำคำขอไปยังเว็บไซต์ด้วย IP address แทนโดเมน ถ้าเว็บไซต์อนุญาต หรือเปลี่ยนไปใช้สกีมา socks5h ที่พร็อกซีแก้ชื่อ และเปรียบเทียบผล ถ้าด้วยชื่อได้ 502 แต่ด้วย IP ทำงานได้ ปัญหาอยู่ที่การแก้ชื่อฝั่งพร็อกซี แจ้งผู้ให้บริการชื่อโดเมนที่แน่นอน
  9. ถ้าไม่มีอะไรช่วยได้ใน 15 นาที ให้รวบรวมเอาต์พุต curl -v เวลา โฮสต์ช่องสัญญาณ โดเมนเป้าหมาย และส่งไปยังฝ่ายสนับสนุนของผู้ให้บริการ ข้อมูลที่รวบรวมอย่างถูกต้องลดเวลาการแก้จากหนึ่งวันเหลือหนึ่งชั่วโมง

เคล็ดลับ: เมื่อทำงานกับการหมุนตามกำหนดเวลา ให้ซิงค์การหยุดพักในซอฟต์แวร์กับช่วงเวลาการเปลี่ยน IP ล่วงหน้า ถ้าที่อยู่เปลี่ยนทุก 5 นาที ให้ตัวเก็บข้อมูลหยุดพัก 15 วินาทีตอนต้นของทุกช่วงห้านาที จำนวน 502 จะลดลงเกือบเป็นศูนย์โดยไม่ต้องเขียนโค้ดซับซ้อนแม้แต่บรรทัดเดียว

ผลลัพธ์ที่คาดหวัง

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

ปัญหาที่อาจเกิดขึ้น

  • 502 มาสำหรับไฟล์ขนาดใหญ่เท่านั้น เว็บไซต์ปิดการเชื่อมต่อเนื่องจากความเร็วการส่งช้า ลดขนาดข้อมูลที่ขอ หรือใช้ช่องสัญญาณที่มีความครอบคลุมดีกว่า
  • 502 มาจากเว็บไซต์ ไม่ใช่พร็อกซี ตรวจสอบส่วนหัว: ถ้ามี Server ของเว็บไซต์และไม่มี Proxy-Agent นี่คือความล้มเหลวภายในของเว็บไซต์ ทำซ้ำภายหลัง
  • 502 สลับกับ 200 โดยไม่มีตรรกะที่ชัดเจน สัญญาณคลาสสิกของช่องสัญญาณมีภาระมากเกินไป ลดการทำงานแบบขนานจนได้ผลลัพธ์ที่เสถียร

การตรวจสอบ: คำขอสิบครั้งติดต่อกันโดยหยุดพักสองวินาทีผ่านช่องสัญญาณที่มีปัญหากับเว็บไซต์ที่เสถียรส่งกลับ 200 หรือคุณมีตั๋วสนับสนุนพร้อมข้อมูลทั้งหมด

ขั้นตอนที่ 4: ทำงานกับรหัส 504 Gateway Timeout

เป้าหมายของขั้นตอนนี้: เข้าใจว่าส่วนใดหลังพร็อกซีที่สูญเสียเวลา และลดสัดส่วน 504 ให้อยู่ในระดับที่ยอมรับได้ โดยไม่สับสนรหัสกับการหมดเวลาของไคลเอนต์

504 จากพร็อกซีหมายถึงอะไรกันแน่

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

คำแนะนำ

  1. ตรวจสอบขีดจำกัดการรอในซอฟต์แวร์ของคุณ ในโปรแกรมส่วนใหญ่เรียกว่า timeout, «เวลารอการตอบกลับ» หรือ «Read timeout» ถ้าน้อยกว่า 30 วินาที ให้ตั้ง 60 ชั่วคราว นี่เป็นขั้นตอนวินิจฉัย: คุณต้องรอให้ได้รหัสจากพร็อกซี
  2. วัดเวลาถึงการตอบกลับผ่านพร็อกซี ทำ: curl -sS -o /dev/null -w "%{http_code} %{time_connect} %{time_starttransfer} %{time_total}" -x http://user1:pass1@proxy.example.net:8080 https://example.com/ คีย์ -w แสดงตัวเลขสี่ตัว: รหัส, เวลาถึงการเชื่อมต่อ, เวลาถึงไบต์แรก และเวลารวมเป็นวินาที
  3. ทำคำสั่งเดิมโดยไม่มีคีย์ -x เปรียบเทียบเวลาถึงไบต์แรก ถ้าโดยตรงเว็บไซต์ตอบใน 0.4 วินาที แต่ผ่านพร็อกซี 8 วินาที ความล่าช้าในช่วง «พร็อกซี — เว็บไซต์» สูง และ 504 จะปรากฏเมื่อเครือข่ายมือถือสั่นคลอน
  4. ตรวจสอบว่า 504 ปรากฏในคำขอใด ทำคำขอด้วยวิธี HEAD ซึ่งไม่โหลดเนื้อหาหน้า: curl -I -x http://user1:pass1@proxy.example.net:8080 https://example.com/ ถ้า HEAD ผ่าน แต่ GET หน้าที่ได้ 504 ปัญหาอยู่ที่ขนาดหรือการสร้างหน้าที่ช้า ไม่ใช่การเชื่อมต่อเอง
  5. เปลี่ยน IP ของช่องสัญญาณผ่านลิงก์ในบัญชี เครือข่ายมือถือไม่สม่ำเสมอ: ที่อยู่หนึ่งอาจเชื่อมต่อกับสถานีฐานที่มีภาระมาก อีกที่หนึ่งไปยังสถานีว่าง ทำการวัดซ้ำ ถ้าเวลาลดลงหลายเท่า ให้เพิ่มกฎในซอฟต์แวร์: เมื่อ 504 ให้เปลี่ยน IP ก่อน แล้วทำคำขอซ้ำ
  6. ตรวจสอบความหนักของหน้าเป้าหมาย เว็บไซต์บางแห่งส่งการตอบกลับหลังจากการดำเนินการฝั่งเซิร์ฟเวอร์ที่ใช้เวลานาน ถ้าเป้าหมายของคุณคือข้อมูลเฉพาะ ลองเข้าถึงที่อยู่ที่เบากว่าบนเว็บไซต์เดียวกัน: API, เวอร์ชันมือถือ, หน้าที่ไม่มีพารามิเตอร์การเรียงลำดับ
  7. ถ้า 504 มาสำหรับโดเมนเดียวและผ่านช่องสัญญาณของผู้ให้บริการรายเดียวเท่านั้น บันทึกในบันทึกและกระจายงานกับโดเมนนี้ไปยังช่องสัญญาณของผู้ให้บริการรายอื่น
  8. คืนขีดจำกัดการรอในซอฟต์แวร์เป็นค่าที่ใช้งาน แต่ตอนนี้อย่างมีจิตสำนึก: ต้องมากกว่าเวลาตอบกลับทั่วไปผ่านพร็อกซีเล็กน้อยและน้อยกว่าที่คุณพร้อมรอในงาน สำหรับสถานการณ์ส่วนใหญ่คือ 30-45 วินาที

ข้อควรระวัง: อย่าตั้งขีดจำกัดการรอในซอฟต์แวร์เป็นหลายนาที «เผื่อไว้» และอย่าปล่อยไว้อย่างนั้นตลอดไป หนึ่งสตรีมที่ค้างจะบล็อกที่ในคิว และสตรีมที่ค้างสิบตัวจะสร้างภาพลวงตาว่าพร็อกซีไม่ทำงาน ทั้งที่ปัญหาอยู่ที่เว็บไซต์ช้าหนึ่งแห่ง

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

ผลลัพธ์ที่คาดหวัง

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

ปัญหาที่อาจเกิดขึ้น

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

การตรวจสอบ: ชุดคำขอ 20 ครั้งไปยังเว็บไซต์ที่ใช้งานได้แสดงเวลาถึงไบต์แรกในช่วงที่คาดเดาได้และมี 504 ไม่เกินหนึ่งถึงสองครั้ง และซอฟต์แวร์เมื่อได้ 504 จะเปลี่ยน IP และทำคำขอซ้ำ

ขั้นตอนที่ 5: แก้ไขข้อผิดพลาด tunnel failed

เป้าหมายของขั้นตอนนี้: เรียนรู้ที่จะอ่านตัวเลขข้างๆ วลี tunnel failed จับคู่กับสาเหตุจริง และแก้ไขการตั้งค่าโปรโตคอล พอร์ต และประเภทพร็อกซี

หน้าตาเป็นอย่างไรและหมายถึงอะไร

ใน curl ข้อความปรากฏว่า: «CONNECT tunnel failed, response 407» ในเบราว์เซอร์และโซลูชันต้านการตรวจจับอาจเป็นวลี «Proxy tunnel failed», «Unable to establish tunnel» หรือ «Tunnel connection failed» ร่วมกันคือ: ไคลเอนต์ส่งคำสั่ง CONNECT แต่พร็อกซีตอบอย่างอื่นที่ไม่ใช่ 200 ตัวเลขข้างๆ คือรหัสนั้น และการทำงานกับมันลดลงมาที่ขั้นตอนก่อนหน้าบวกกับกรณีพิเศษบางอย่างที่ปรากฏเฉพาะในขั้นทันเนล

คำแนะนำ

  1. รัน curl ด้วยคีย์ -v ไปยังที่อยู่ HTTPS และหาบรรทัดที่มี tunnel failed บันทึกตัวเลขหลังคำว่า response
  2. ถ้าเป็น 407 ให้กลับไปขั้นตอนที่ 2 ต่างกันเพียงอย่างเดียว: ตรวจสอบว่าซอฟต์แวร์ส่งการยืนยันตัวตนในขั้น CONNECT ในโปรแกรมบางเวอร์ชันเก่า ตัวเลือก «การยืนยันตัวตนพร็อกซี» มีผลเฉพาะคำขอ HTTP แต่ทันเนลออกไปโดยไม่มีรหัสผ่าน
  3. ถ้าเป็น 502 หรือ 504 ให้กลับไปขั้นตอนที่ 3 และ 4 พร็อกซีไม่สามารถเปิดการเชื่อมต่อกับพอร์ต 443 ของเว็บไซต์หรือไม่ได้รับคำตอบ
  4. ถ้าเป็น 403 พร็อกซีปฏิเสธเปิดทันเนลไปยังพอร์ตหรือโฮสต์ที่ระบุ ตรวจสอบว่าคุณเชื่อมต่อกับพอร์ตใด พร็อกซีมือถือมักอนุญาตทันเนลไปยัง 443 และพอร์ตทั่วไปบางพอร์ต ถ้าบริการของคุณใช้พอร์ตที่ไม่ได้มาตรฐาน ให้สอบถามในบัญชีหรือกับผู้ให้บริการว่าอนุญาตหรือไม่
  5. ถ้าเป็น 400 พร็อกซีไม่เข้าใจคำสั่ง สาเหตุที่พบบ่อยที่สุดคือคุณระบุ SOCKS5-พร็อกซีเป็น HTTP หรือกลับกัน เปิดบัญชีและดูว่ามีโปรโตคอลและพอร์ตใดที่ออกให้ ผู้ให้บริการหลายรายมีพอร์ตต่างกันสำหรับ HTTP และ SOCKS5 ของช่องสัญญาณเดียวกัน
  6. แก้ไขสกีมาในคำสั่ง สำหรับ SOCKS5 ใช้: curl -v -x socks5h://user1:pass1@proxy.example.net:1080 https://example.com/ ตัวอักษร h ใน socks5h หมายความว่าพร็อกซีแก้ชื่อโดเมน ไม่ใช่คอมพิวเตอร์ของคุณ สำหรับพร็อกซีมือถือเป็นตัวเลือกที่ดีกว่า
  7. ถ้าคุณใช้เบราว์เซอร์ต้านการตรวจจับ เปิดการตั้งค่าพร็อกซีของโปรไฟล์และหารายการแบบเลื่อนลงประเภท: HTTP, HTTPS, SOCKS5 เลือกที่ระบุในบัญชีและตรวจสอบพอร์ต หลังบันทึก ให้รีสตาร์ทโปรไฟล์ทั้งหมด ไม่ใช่แค่รีเฟรชแท็บ
  8. ถ้าไม่มีตัวเลขข้างๆ tunnel failed และมีแค่วลี ให้เปิดการบันทึกแบบละเอียดในซอฟต์แวร์หรือทำซ้ำสถานการณ์ผ่าน curl เพื่อให้ได้รหัส
  9. ตรวจสอบว่าซอฟต์แวร์ของคุณพยายามสร้างการเชื่อมต่อ TLS กับพร็อกซีเองหรือไม่ โปรแกรมบางตัวเมื่อเลือกประเภท «HTTPS» จะเข้ารหัสไม่เพียงแค่ทราฟฟิกไปยังเว็บไซต์ แต่รวมถึงการเชื่อมต่อกับพร็อกซีด้วย ถ้าพร็อกซีไม่รองรับ คุณจะได้ tunnel failed หรือข้อผิดพลาด handshake เปลี่ยนเป็นประเภท «HTTP» สำหรับการเชื่อมต่อกับพร็อกซี: ทราฟฟิกไปยังเว็บไซต์ยังคงเข้ารหัสภายในทันเนล
  10. ทดสอบซ้ำและยืนยันว่า CONNECT ได้ 200 และหน้าโหลดได้

เคล็ดลับ: ทำคำขอทดสอบสั้นๆ สองครั้งเป็นส่วนหนึ่งของกิจวัตรประจำวัน: หนึ่งไปยังที่อยู่ผ่าน HTTP อีกอันไปยังที่อยู่เดียวกันผ่าน HTTPS ถ้าอันแรกผ่านแต่อันที่สองล้มเหลวด้วย tunnel failed คุณเข้าใจในวินาทีเดียวว่าปัญหาอยู่ที่ทันเนล ไม่ใช่การยืนยันตัวตนหรือช่องสัญญาณ

ผลลัพธ์ที่คาดหวัง

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

ปัญหาที่อาจเกิดขึ้น

  • ทันเนลสร้างขึ้น แต่จากนั้นมีข้อผิดพลาดใบรับรอง นี่ไม่ใช่เลเยอร์พร็อกซี: เว็บไซต์หรือชุดใบรับรองของระบบคุณ ตรวจสอบวันที่และเวลาบนคอมพิวเตอร์
  • ทำงานใน curl แต่ไม่ทำงานในซอฟต์แวร์ด้วยข้อมูลเดียวกัน ซอฟต์แวร์ใช้สกีมาอื่นหรือเพิ่มคำนำหน้าของตัวเอง ศึกษาเอกสารเกี่ยวกับรูปแบบสตริงพร็อกซี
  • tunnel failed เฉพาะเว็บไซต์เดียว เว็บไซต์ใช้พอร์ตที่ไม่ได้มาตรฐาน กลับไปที่หัวข้อเกี่ยวกับ 403

การตรวจสอบ: คำขอ HTTPS ผ่าน curl และผ่านซอฟต์แวร์ที่ใช้งานให้ 200 ที่ CONNECT ประเภทและพอร์ตของทุกช่องสัญญาณบันทึกในตารางแล้ว

ขั้นตอนที่ 6: ตั้งค่าการตอบสนองที่ถูกต้องของซอฟต์แวร์ต่อแต่ละรหัส

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

หลักการ: ไม่ใช่ทุกข้อผิดพลาดเหมือนกัน

การทำคำขอซ้ำเมื่อ 407 ไร้ประโยชน์: รหัสผ่านจะไม่ถูกต้องเพียงเพราะลองใหม่ การทำซ้ำเมื่อ 502 ในขณะหมุนจำเป็น: ห้าวินาทีต่อมาทุกอย่างจะทำงาน การทำซ้ำเมื่อ 504 ดีกว่าหลังเปลี่ยน IP กฎสามข้อนี้เป็นพื้นฐานของการจัดการข้อผิดพลาดที่ดี

คำแนะนำสำหรับซอฟต์แวร์สำเร็จรูป

  1. เปิดการตั้งค่าของตัวเก็บข้อมูลหรือตัวจัดการบัญชีและหาส่วนที่รับผิดชอบการลองใหม่ อาจชื่อ «Retries», «ความพยายามซ้ำ», «การจัดการข้อผิดพลาด»
  2. ตั้งจำนวนครั้งลองใหม่สำหรับ 5xx เป็น 3 และหยุดพักเริ่มต้นระหว่างเป็น 5 วินาทีเพิ่มเป็นสองเท่า: 5, 10, 20 วินาที การเพิ่มการหยุดพักแบบนี้เรียกว่า exponential backoff และไม่ให้ซอฟต์แวร์ของคุณซ้ำเติมช่องสัญญาณที่มีภาระมากเกินไป
  3. ถ้าซอฟต์แวร์อนุญาตให้ระบุรายการรหัสสำหรับลองใหม่ ให้ระบุ 502 และ 504 อย่าใส่ 407
  4. หาการตั้งค่าการดำเนินการเมื่อ 407 ถ้าไม่มี ให้ตั้งจำนวนครั้งลองใหม่ในส่วนทั่วไปให้น้อยที่สุดและเปิดการแจ้งเตือนคำขอที่ล้มเหลว เป้าหมายของคุณคือเห็น 407 ในไม่กี่นาที ไม่ใช่หลังหยุดทำงานหนึ่งวัน
  5. หาช่องสำหรับลิงก์เปลี่ยน IP ถ้ามี วางลิงก์จากบัญชีสำหรับช่องสัญญาณที่เกี่ยวข้องและเปิดตัวเลือก «เปลี่ยน IP เมื่อเกิดข้อผิดพลาด» หรือ «หมุนเมื่อล้มเหลว»
  6. จำกัดจำนวนสตรีมพร้อมกันต่อหนึ่งช่องสัญญาณมือถือ เริ่มจาก 3-5 และเพิ่มขึ้นจนสัดส่วน 502 ต่ำกว่าหนึ่งเปอร์เซ็นต์
  7. เปิดบันทึกแบบละเอียดพร้อมบันทึกรหัสตอบกลับและส่วนหัว ตรวจสอบว่าในบันทึกเห็นความแตกต่างระหว่างรหัสจากพร็อกซีและรหัสจากเว็บไซต์: โปรแกรมหลายตัวแสดงในคอลัมน์แยก «Proxy status»
  8. บันทึกการตั้งค่า รีสตาร์ทซอฟต์แวร์ และทำชุดทดสอบ 50 คำขอ

คำแนะนำสำหรับสคริปต์ของคุณเอง

ถ้าคุณเขียนโค้ด ตรรกะเดียวกัน ใน pseudocode ด้วย Python กับไลบรารี requests มีหน้าตาดังนี้:

proxies = {"http": "socks5h://user1:pass1@proxy.example.net:1080", "https": "socks5h://user1:pass1@proxy.example.net:1080"} for attempt in range(3): r = session.get(url, proxies=proxies, timeout=45) if r.status_code == 407: alert("auth failed") break if r.status_code in (502, 504): rotate_ip() sleep(5 * 2 ** attempt) continue break

สังเกตสามจุด หนึ่ง: เมื่อ 407 เราออกจากลูปทันทีและส่งการแจ้งเตือน สอง: เมื่อ 502 และ 504 เราเปลี่ยน IP ก่อน แล้วรอการหยุดพักที่เพิ่มขึ้น สาม: ค่า timeout เลือกให้รอจนได้รหัสจากพร็อกซี ไม่ตัดการเชื่อมต่อก่อน

ข้อควรระวัง: ในไลบรารีบางตัว ข้อผิดพลาดในขั้น CONNECT มาไม่ใช่เป็นการตอบกลับที่มีรหัส แต่เป็นข้อยกเว้นที่มีข้อความรวม tunnel failed และตัวเลข จับข้อยกเว้นเช่นนี้แยกและแยกรหัสจากข้อความ ไม่เช่นนั้นตรรกะการลองใหม่ของคุณจะไม่ทำงาน

เคล็ดลับ: นับสัดส่วนรหัสต่อช่องสัญญาณต่อวันและแสดงในตารางง่ายๆ ช่องสัญญาณที่มี 5xx สูงกว่าตัวอื่นอย่างต่อเนื่อง ควรตรวจสอบก่อน แม้ในทางเทคนิคมันจะทำงานอยู่

ผลลัพธ์ที่คาดหวัง

ซอฟต์แวร์ทำคำขอซ้ำอัตโนมัติเมื่อ 502 และ 504 ด้วยการหยุดพักที่เพิ่มขึ้นและเปลี่ยน IP แจ้งทันทีเมื่อ 407 จำกัดจำนวนสตรีม และเก็บบันทึกที่แยกรหัสพร็อกซีและเว็บไซต์

ปัญหาที่อาจเกิดขึ้น

  • ซอฟต์แวร์ลองใหม่แม้ 407 ทำให้พร็อกซีบล็อกที่อยู่ชั่วคราว ปิดการลองใหม่สำหรับ 4xx ทั้งหมดหรือลดจำนวนครั้งลองใหม่ทั้งหมดเหลือหนึ่ง
  • หลังเปิดการหมุนเมื่อเกิดข้อผิดพลาด IP เปลี่ยนบ่อยเกินไป กำหนดช่วงเวลาขั้นต่ำระหว่างการเปลี่ยน เช่น 60 วินาที เพื่อไม่ให้ชุด 502 หนึ่งชุดทำให้เกิดการหมุนห้าครั้งติดต่อกัน
  • บันทึกขยายเป็นกิกะไบต์ เขียนส่วนหัวเฉพาะการตอบกลับที่มีรหัสข้อผิดพลาด สำหรับ 200 บันทึกหนึ่งบรรทัด

การตรวจสอบ: ชุดทดสอบ 50 คำขอเสร็จสิ้นโดยไม่ต้องแทรกแซงด้วยมือ ในบันทึกเห็นการลองใหม่พร้อมหยุดพัก 5, 10, 20 วินาทีสำหรับ 5xx และเมื่อใส่รหัสผ่านผิด ซอฟต์แวร์หยุดและแสดงการแจ้งเตือน 407

การตรวจสอบผลลัพธ์: เช็กลิสต์และการทดสอบ

ไล่ตามรายการและทำเครื่องหมายทุกข้อ ถ้าอย่างน้อยหนึ่งข้อไม่สำเร็จ ให้กลับไปยังขั้นตอนที่เกี่ยวข้อง

เช็กลิสต์

  • คำสั่ง curl ด้วยคีย์ -v ทำงานได้ และคุณหาบรรทัดตอบกลับต่อ CONNECT และส่วนหัวบริการของพร็อกซีในเอาต์พุตได้
  • สำหรับแต่ละช่องสัญญาณ ในตารางบันทึกโฮสต์ พอร์ต ประเภทโปรโตคอล วิธียืนยันตัวตน และรหัสผ่านที่เข้ารหัส
  • เมื่อใช้การยืนยันตาม IP ที่อยู่ปัจจุบันของเครื่องคุณตรงกับที่อยู่ในบัญชี
  • คำขอ HTTPS ผ่านแต่ละช่องสัญญาณได้ 200 ที่ CONNECT
  • วัดเวลาถึงไบต์แรกทั่วไปผ่านแต่ละช่องสัญญาณ และขีดจำกัดการรอในซอฟต์แวร์สูงกว่าด้วยส่วนต่าง
  • ในซอฟต์แวร์ตั้งค่าการลองใหม่เฉพาะ 502 และ 504 ด้วยหยุดพัก 5, 10, 20 วินาทีและเปลี่ยน IP ก่อนลองใหม่
  • เมื่อ 407 ซอฟต์แวร์หยุดและแจ้งเตือน
  • จำนวนสตรีมต่อช่องสัญญาณถูกจำกัด และสัดส่วน 5xx ในชุดทดสอบต่ำกว่าหนึ่งเปอร์เซ็นต์
  • บันทึกเหตุการณ์ถูกเก็บและมีอย่างน้อยหนึ่งรายการที่วิเคราะห์ครบถ้วน

วิธีทดสอบ

  1. ใส่รหัสผ่านผิดโดยตั้งใจและรันคำขอหนึ่งครั้ง คาดหวัง: 407 ใน curl และการแจ้งเตือนในซอฟต์แวร์โดยไม่มีการลองใหม่หลายครั้ง
  2. คืนรหัสผ่านที่ถูกต้องและรัน 30 คำขอไปยังเว็บไซต์ที่เสถียรโดยหยุดพักหนึ่งวินาที คาดหวัง: ทั้งหมด 200 หรือไม่เกินหนึ่ง 5xx ที่ลองใหม่สำเร็จ
  3. ระหว่างชุด กดลิงก์เปลี่ยน IP ในบัญชี คาดหวัง: 502 หนึ่งถึงสองครั้งในบันทึก จากนั้นลองใหม่อัตโนมัติและชุดดำเนินต่อ
  4. ระบุประเภท SOCKS5 ในการตั้งค่าสำหรับช่องสัญญาณที่ออกเป็น HTTP และทำคำขอ คาดหวัง: tunnel failed หรือข้อผิดพลาดโปรโตคอลที่คุณรู้จักในวินาทีเดียว คืนประเภทที่ถูกต้อง

ตัวชี้วัดความสำเร็จ

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

ข้อผิดพลาดทั่วไปและวิธีแก้

ปัญหา: 407 หลังรีสตาร์ทเราเตอร์ทุกครั้ง

สาเหตุ: การยืนยันตาม IP แต่ผู้ให้บริการให้ที่อยู่แบบไดนามิก

วิธีแก้: เปลี่ยนไปใช้การยืนยันด้วยล็อกอินและรหัสผ่าน หรือเปิดทั้งสองวิธีพร้อมกัน ถ้าต้องใช้ IP จริงๆ ให้ขอที่อยู่แบบคงที่จากผู้ให้บริการ

ปัญหา: รหัสผ่านถูก แต่ 407 ในเบราว์เซอร์ ทั้งที่ curl ผ่าน

สาเหตุ: เบราว์เซอร์หรือโปรไฟล์เบราว์เซอร์ต้านการตรวจจับเก็บข้อมูลเก่าไว้ในแคช

วิธีแก้: บันทึกพร็อกซีใหม่ในการตั้งค่าของโปรไฟล์เฉพาะและรีสตาร์ทโปรไฟล์ ถ้าจำเป็นให้ล้างรหัสผ่านที่บันทึกไว้สำหรับโฮสต์พร็อกซี

ปัญหา: 502 ทุก N นาทีพอดี

สาเหตุ: ตรงกับช่วงเวลาการหมุน IP อัตโนมัติ

วิธีแก้: ซิงค์การหยุดพักของซอฟต์แวร์กับตารางการหมุน หรือเปลี่ยนไปใช้การเปลี่ยน IP ผ่านลิงก์ในจังหวะที่สะดวกระหว่างงาน

ปัญหา: 502 เมื่อมีสตรีมมาก เมื่อน้อยทุกอย่างดี

สาเหตุ: ช่องสัญญาณมือถือมีภาระมากเกินไป

วิธีแก้: ลดการทำงานแบบขนานเหลือ 3-5 สตรีมต่อช่องสัญญาณและกระจายภาระไปหลายช่องสัญญาณ

ปัญหา: 504 เฉพาะเว็บไซต์เดียว เว็บอื่นเร็ว

สาเหตุ: เว็บไซต์สร้างหน้าช้า或จำกัดที่อยู่ของผู้ให้บริการมือถือ

วิธีแก้: ใช้ที่อยู่ที่เบากว่าของเว็บไซต์ เปลี่ยน IP ก่อนลองใหม่ ถ้าปัญหาต่อเนื่อง ให้ย้ายงานกับเว็บไซต์นี้ไปยังช่องสัญญาณของผู้ให้บริการรายอื่น

ปัญหา: แทนที่จะได้ 504 กลับได้รับการตัดขาดโดยไม่มีรหัส

สาเหตุ: ขีดจำกัดการรอในซอฟต์แวร์น้อยกว่าขีดจำกัดภายในของพร็อกซี

วิธีแก้: เพิ่มขีดจำกัดในซอฟต์แวร์เป็นค่าที่คุณทันได้รับรหัส ปกติ 30-60 วินาที

ปัญหา: tunnel failed, response 400

สาเหตุ: ระบุพอร์ต SOCKS5 เป็น HTTP-พร็อกซีหรือกลับกัน

วิธีแก้: ตรวจสอบประเภทและพอร์ตกับบัญชี สำหรับ SOCKS5 ใช้สกีมา socks5h สำหรับ HTTP ใช้ http

ปัญหา: tunnel failed, response 403 ไปยังพอร์ตที่ไม่ได้มาตรฐาน

สาเหตุ: พร็อกซีไม่อนุญาตทันเนลไปยังพอร์ตนั้น

วิธีแก้: สอบถามรายการพอร์ตที่อนุญาตจากผู้ให้บริการและถ้าเป็นไปได้ให้กำหนดบริการเป้าหมายใหม่เป็นพอร์ต 443

ปัญหา: รหัส 502 หรือ 504 มาพร้อมส่วนหัว Server ของเว็บไซต์

สาเหตุ: นี่คือคำตอบของเว็บไซต์เอง ไม่ใช่เลเยอร์พร็อกซี: เว็บไซต์มีปัญหากับบริการภายในของตัวเอง

วิธีแก้: รอและทำซ้ำภายหลัง การเปลี่ยนพร็อกซีไม่ช่วย

ความสามารถเพิ่มเติมสำหรับผู้ใช้ขั้นสูง

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

การส่งส่วนหัวการยืนยันตัวตนด้วยมือ

บางครั้งมีประโยชน์ในการตรวจสอบว่าพร็อกซีตอบสนองต่อส่วนหัวเฉพาะอย่างไร เข้ารหัสคู่ล็อกอิน:รหัสผ่านเป็น Base64 ด้วยเครื่องมือในเครื่อง แล้วส่งส่วนหัวเอง: curl -v -x proxy.example.net:8080 -H "Proxy-Authorization: Basic dXNlcjE6cGFzczE=" http://example.com/ วิธีนี้ใช้ได้กับคำขอ HTTP ปกติและช่วยให้เข้าใจว่าพร็อกซีรับข้อมูลหรือไม่ โดยไม่ขึ้นกับว่าซอฟต์แวร์ของคุณสร้างมันอย่างไร สำหรับ CONNECT ใช้คีย์ --proxy-header แทน -H

การแก้ชื่อฝั่งพร็อกซี

สกีมา socks5h และ HTTP-ทันเนลส่งชื่อโดเมนไปยังพร็อกซีเซิร์ฟเวอร์ ไม่ได้แก้ในเครื่อง สิ่งนี้ให้ข้อได้เปรียบสองอย่าง: เว็บไซต์เห็นคำขอที่ออกมาจากเครือข่ายมือถือทั้งหมด และคุณหลีกเลี่ยงความไม่ตรงกันเมื่อ DNS ในเครื่องให้ที่อยู่หนึ่ง แต่เครือข่ายผู้ให้บริการให้อีกที่อยู่ ถ้าคุณเห็น 502 เฉพาะเมื่อแก้ชื่อในเครื่อง การเปลี่ยนเป็น socks5h มักแก้ปัญหาได้โดยไม่ต้องติดต่อผู้ให้บริการ

ระบบอัตโนมัติผ่าน API ของผู้ให้บริการ

mobileproxy.space มีอินเทอร์เฟซโปรแกรมสำหรับเปลี่ยน IP และรับสถานะช่องสัญญาณ ฝังการเรียกเปลี่ยน IP ในตัวจัดการ 504 และการตรวจสอบสถานะช่องสัญญาณในตัวจัดการ 502 ที่ต่อเนื่อง แล้วสคริปต์จะตัดสินใจเองว่าจะทำคำขอซ้ำผ่านช่องสัญญาณเดิมหรือสลับไปใช้สำรอง อัลกอริทึมง่ายๆ: 502 สามครั้งติดต่อกันในหนึ่งนาที — ขอสถานะ ถ้าช่องสัญญาณปกติ เปลี่ยน IP ถ้าไม่ปกติ ทำเครื่องหมายช่องสัญญาณใช้ไม่ได้ห้านาทีและไปยังช่องถัดไป

การแยกเมตริกพร็อกซีและเว็บไซต์

สร้างเมตริกแยกสองตัวในระบบมอนิเตอร์ริ่ง: รหัสที่มาพร้อมส่วนหัวพร็อกซี และรหัสที่มาโดยไม่มี เมตริกแรกบอกสุขภาพของโครงสร้างพร็อกซีของคุณ เมตริกที่สองบอกพฤติกรรมของเว็บไซต์เป้าหมาย ตราบใดที่ยังผสมกัน คุณจะมองหาข้อผิดพลาดพร็อกซีเซิร์ฟเวอร์ในที่ที่ไม่มี และกลับกัน

พูลช่องสัญญาณแบบมีน้ำหนัก

กำหนดน้ำหนักให้แต่ละช่องสัญญาณ ลดลงทุกครั้งที่ได้ 5xx และค่อยๆ ฟื้นคืนเมื่อเวลาผ่านไป กระจายคำขอตามสัดส่วนน้ำหนัก วิธีนี้ย้ายภาระจากผู้ให้บริการหรือภูมิภาคที่มีปัญหาโดยอัตโนมัติและคืนเมื่อช่องสัญญาณฟื้นคืน โดยไม่ต้องสลับด้วยมือแม้แต่ครั้งเดียว

การส่งออก HAR จากเบราว์เซอร์

สำหรับกรณีซับซ้อนในเบราว์เซอร์ต้านการตรวจจับ เปิดแท็บ Network ทำซ้ำข้อผิดพลาดและเลือก «Save all as HAR» ไฟล์มีส่วนหัวทั้งหมดของคำขอและการตอบกลับ รวมถึงขั้นตอนที่มองไม่เห็นในบันทึกปกติของโปรแกรม ก่อนส่งให้ฝ่ายสนับสนุน ให้ลบข้อมูล Proxy-Authorization และคุกกี้ออกจากไฟล์

การปรับขีดจำกัดการรอให้เหมาะสม

รวบรวมสถิติเวลาถึงไบต์แรกต่อช่องสัญญาณและทิศทางเป็นเวลาหนึ่งสัปดาห์ ตั้งขีดจำกัดการรอในซอฟต์แวร์ที่ระดับเปอร์เซ็นไทล์ 95 บวก 10 วินาที ขีดจำกัดนี้ไม่ค่อยตัดคำขอที่ยังมีชีวิตและปล่อยสตรีมอย่างรวดเร็วเมื่อเกิดการค้างจริง

FAQ: คำถามที่พบบ่อยเกี่ยวกับการวินิจฉัย

จะรู้ได้อย่างไรว่า 502 มาจากพร็อกซี ไม่ใช่เว็บไซต์?

ดูที่ส่วนหัวของการตอบกลับ ถ้ามี Proxy-Agent, Via หรือส่วนหัวบริการอื่นของพร็อกซีและไม่มี Set-Cookie และ Server ของเว็บไซต์ คำตอบมาจากพร็อกซี เพิ่มเติม: ถ้ารหัสมาในคำตอบต่อ CONNECT ทันที มันคือพร็อกซีแน่นอน

ควรทำคำขอซ้ำเมื่อ 407 ไหม?

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

ทำไมใน curl ทุกอย่างทำงาน แต่ในซอฟต์แวร์ของฉันไม่?

ส่วนใหญ่ซอฟต์แวร์สร้างสตริงพร็อกซีต่างออกไป ไม่เข้ารหัสอักขระพิเศษในรหัสผ่าน ใช้ประเภทโปรโตคอลอื่น หรือไม่ส่งการยืนยันตัวตนที่ CONNECT เปรียบเทียบสตริงที่แน่นอนจากการตั้งค่าซอฟต์แวร์กับคำสั่ง curl ที่ทำงานได้ทีละตัวอักษร

จะเขียนรหัสผ่านที่มีอักขระพิเศษอย่างไรให้ถูกต้อง?

ในสตริงที่อยู่ ให้เข้ารหัส: @ เป็น %40, : เป็น %3A, # เป็น %23, % เป็น %25, ช่องว่างเป็น %20 ในช่องล็อกอินและรหัสผ่านแยก ให้ป้อนรหัสผ่านตามที่เป็น ไม่ต้องเข้ารหัส

504 ต่างจากการหมดเวลาที่เขียนในบทความอื่นอย่างไร?

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

สามารถส่งกี่สตรีมผ่านหนึ่งช่องสัญญาณมือถือ?

ไม่มีตัวเลขสากล เริ่มจาก 3-5 และเพิ่มขึ้นจนสัดส่วน 502 ต่ำกว่าหนึ่งเปอร์เซ็นต์ สำหรับหน้าที่หนัก จำนวนจะน้อยลง สำหรับคำขอ API ที่เบา จำนวนจะมากขึ้น

ต้องเปลี่ยน IP ทุกครั้งที่เกิดข้อผิดพลาดไหม?

เมื่อ 504 และ 502 ที่ต่อเนื่อง — ใช่ นี่คือการกระทำแรก เมื่อ 407 — ไม่ การเปลี่ยน IP ไม่มีผลต่อการยืนยันตัวตน กำหนดช่วงเวลาขั้นต่ำระหว่างการเปลี่ยนเพื่อไม่ให้ชุดข้อผิดพลาดทำให้เกิดการหมุนถล่ม

ส่งอะไรให้ฝ่ายสนับสนุนเพื่อแก้ปัญหาเร็วขึ้น?

เอาต์พุต curl -v ทั้งหมดที่แทนรหัสผ่านด้วยเครื่องหมายดาว เวลาที่แน่นอนพร้อมวินาทีและเขตเวลา โฮสต์และพอร์ตช่องสัญญาณ โดเมนเป้าหมาย ประเภทการยืนยันตัวตน และผลของคำขอตรงโดยไม่มีพร็อกซี ด้วยชุดนี้ฝ่ายสนับสนุนมักตอบในข้อความแรก

ใช้ HTTPS สำหรับเชื่อมต่อกับพร็อกซีเองได้ไหม?

เฉพาะถ้าผู้ให้บริการรองรับอย่างชัดเจน ในกรณีส่วนใหญ่สำหรับพร็อกซีมือถือ การเชื่อมต่อกับพร็อกซีใช้ HTTP ปกติหรือ SOCKS5 และการเข้ารหัสทราฟฟิกไปยังเว็บไซต์มาจากทันเนล การเปิดการเข้ารหัสเพิ่มเติมกับพร็อกซีให้ tunnel failed หรือข้อผิดพลาด handshake

บทสรุป

คุณเดินทางจากบรรทัดสีแดงที่ไม่เข้าใจในบันทึกไปสู่ระบบการวินิจฉัยที่สมบูรณ์ ตอนนี้คุณระบุได้ว่าใครเป็นผู้ส่งคำตอบ อ่าน 407 เป็นสัญญาณให้ตรวจสอบข้อมูลรับรองและวิธียืนยันตัวตน 502 เป็นสัญญาณของความล้มเหลวหลังพร็อกซีหรือในขณะหมุน 504 เป็นรายงานซื่อสัตย์ของพร็อกซีเกี่ยวกับเว็บไซต์ที่ช้า และ tunnel failed เป็นตัวห่อหุ้มรหัสใดรหัสหนึ่งพร้อมเบาะแสเป็นตัวเลข ซอฟต์แวร์ของคุณไม่ลองใหม่อย่างไร้ความหมายและไม่ยอมแพ้เมื่อเกิดเหตุชั่วคราวอีกต่อไป

ทำอะไรต่อไป

  1. เก็บบันทึกเหตุการณ์อย่างน้อยหนึ่งเดือน ภายในสองสัปดาห์คุณจะสังเกตรูปแบบที่เกิดซ้ำและกำจัดสาเหตุของมัน
  2. ทบทวนสัดส่วนรหัสต่อช่องสัญญาณทุกสัปดาห์และกระจายภาระใหม่
  3. ทำให้การเปลี่ยน IP และการตรวจสอบสถานะเป็นอัตโนมัติผ่าน API ของผู้ให้บริการ เพื่อให้ 5xx ที่เป็นกิจวัตรแก้ได้โดยไม่ต้องมีคุณ
  4. ศึกษาเนื้อหาที่เกี่ยวข้องในบล็อกเกี่ยวกับการหมดเวลาเครือข่ายและพฤติกรรมของเว็บไซต์เป้าหมาย เพื่อปิดสองช่วงที่เหลือของเส้นทางคำขอ

จะพัฒนาไปไหนต่อ

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