พร็อกซีเซิร์ฟเวอร์ไม่ตอบสนอง: การวินิจฉัยแบบทีละขั้นตอนสำหรับไทม์เอาต์ พอร์ต และไฟร์วอลล์
บทความ
- บทนำ: สิ่งที่คุณจะได้รับจากคู่มือนี้
- การเตรียมการเบื้องต้น: เครื่องมือและข้อมูล
- แนวคิดพื้นฐาน: เกิดอะไรขึ้นเมื่อพร็อกซีไม่ตอบสนอง
- ขั้นตอนที่ 1: ระบุว่าการเชื่อมต่อขาดตรงไหน
- ขั้นตอนที่ 2: ตรวจสอบที่อยู่และพอร์ตพร็อกซี
- ขั้นตอนที่ 3: จัดการไทม์เอาต์ในซอฟต์แวร์ของคุณ
- ขั้นตอนที่ 4: ตรวจสอบไฟร์วอลล์และแอนตี้ไวรัสบนอุปกรณ์ของคุณ
- ขั้นตอนที่ 5: ตรวจสอบเราเตอร์ เครือข่ายองค์กร และผู้ให้บริการ
- ขั้นตอนที่ 6: ตรวจสอบการตั้งค่าฝั่งพร็อกซี
- ตรวจสอบผลลัพธ์: เช็คลิสต์การเชื่อมต่อที่เสถียร
- ข้อผิดพลาดทั่วไปและวิธีแก้ไข
- ความสามารถเพิ่มเติมสำหรับผู้ใช้ขั้นสูง
- Faq: คำถามที่พบบ่อยเกี่ยวกับการวินิจฉัย
- บทสรุป
บทนำ: สิ่งที่คุณจะได้รับจากคู่มือนี้
สถานการณ์นี้คุ้นเคยสำหรับทุกคนที่ทำงานกับพร็อกซี: เมื่อวานทุกอย่างเร็วปรู๊ดปร๊าด แต่วันนี้เบราว์เซอร์หมุนวงล้อโหลดไม่หยุด สคริปต์ดึงข้อมูลค้างตั้งแต่คำขอแรก เบราว์เซอร์แอนตี้ดีเทกต์แจ้งว่าพร็อกซีเซิร์ฟเวอร์ไม่ตอบสนอง ไม่มีข้อความที่เข้าใจได้ มีแค่การรอคอยและความเงียบ คุณอาจอยากเขียนหาฝ่ายสนับสนุนหรือเปลี่ยนผู้ให้บริการทันที แต่ในกรณีส่วนใหญ่สาเหตุอยู่ฝั่งของคุณและแก้ไขได้ในสิบนาที
คู่มือปฏิบัติเล่มนี้จะช่วยให้คุณเดินทางจาก "ไม่มีอะไรทำงานเลย" ไปสู่ "การเชื่อมต่อเสถียร" โดยไม่ต้องเดาสุ่ม เราจะวิเคราะห์สาเหตุเครือข่ายที่พบบ่อยที่สุดสามประการ: ไทม์เอาต์ พอร์ตที่ปิดหรือผิด และไฟร์วอลล์ คุณจะได้เรียนรู้วิธีระบุว่าสายโซ่ระหว่างคอมพิวเตอร์ของคุณกับพร็อกซีขาดตรงจุดใด และจะได้ชุดคำสั่งที่แสดงต้นตอของปัญหาได้ภายในหนึ่งนาที
ขอบเขตสำคัญ: ที่นี่เราพูดถึงเฉพาะสาเหตุเครือข่าย เมื่อการเชื่อมต่อไม่เกิดขึ้นเลยหรือค้าง สถานการณ์ที่พร็อกซีตอบสนองแต่ส่งคืนรหัสข้อผิดพลาดเช่น 407 หรือ 502 เป็นหัวข้อแยกต่างหาก และเราไม่ครอบคลุมในที่นี้ หากคุณเห็นรหัส HTTP ที่เฉพาะเจาะจงในการตอบกลับ นั่นหมายความว่าพร็อกซียังมีชีวิตอยู่ และกรณีของคุณไม่ใช่บทความนี้
คู่มือนี้เหมาะกับใคร
- นักการตลาดและผู้เชี่ยวชาญ SMM ที่ดูแลหลายบัญชีผ่านพร็อกซีมือถือและพบว่าเบราว์เซอร์เชื่อมต่อไม่ได้
- นักทำอาร์บิทราจที่ลิงก์ของพวกเขาหยุดทำงานกะทันหัน และบัญชีโฆษณาไม่เปิดผ่านพร็อกซี
- นักพัฒนาที่สคริปต์ Python, Node.js หรือ Go ได้รับไทม์เอาต์แทนการตอบกลับ
- เจ้าของธุรกิจที่ตั้งค่าพร็อกซีให้พนักงานและอยากเข้าใจว่าทำไมของคนหนึ่งทำงานได้ แต่อีกคนไม่
สิ่งที่ต้องรู้ล่วงหน้า
แทบไม่ต้องมีอะไรพิเศษ แค่สามารถเปิดคอมมานด์ไลน์หรือเทอร์มินัล คัดลอกคำสั่ง และอ่านสิ่งที่พวกมันแสดงผลได้ก็พอ เราจะอธิบายคำศัพท์ทุกคำระหว่างทาง หากคุณไม่เคยเปิดเทอร์มินัล ไม่ต้องกังวล: ทุกขั้นตอนอธิบายละเอียดถึงระดับ "กดปุ่มนี้ พิมพ์ข้อความนี้"
ต้องใช้เวลานานเท่าไหร่
การวินิจฉัยครบทุกขั้นตอนใช้เวลา 30 ถึง 60 นาที ส่วนใหญ่มักพบปัญหาที่ขั้นตอนแรกหรือขั้นตอนที่สอง และคุณจะใช้เวลาเพียง 10-15 นาที ส่วนขั้นสูงตอนท้ายสามารถศึกษาแยกได้เมื่อการเชื่อมต่อพื้นฐานกลับมาทำงานแล้ว
การเตรียมการเบื้องต้น: เครื่องมือและข้อมูล
ก่อนเริ่มต้น รวบรวมทุกสิ่งที่จำเป็นไว้ในที่เดียว สิ่งนี้จะประหยัดเวลาและหลีกเลี่ยงการวิ่งไปมาระหว่างแท็บในจังหวะที่ไม่เหมาะสมที่สุด
ข้อมูลพร็อกซีของคุณ
เปิดแดชบอร์ดของผู้ให้บริการและจดพารามิเตอร์ต่อไปนี้ลงในไฟล์ข้อความ พวกมันจะถูกใช้แทบทุกขั้นตอน
- ที่อยู่เซิร์ฟเวอร์ (host) นี่อาจเป็นชื่อโดเมนเช่น proxy.example.net หรือที่อยู่ IP เช่น 185.10.20.30
- พอร์ต สำหรับการเชื่อมต่อ HTTP สำหรับพร็อกซีมือถือมักเป็นตัวเลขห้าหลัก เช่น 30001 หรือ 51234
- พอร์ตสำหรับ SOCKS5 หากผู้ให้บริการให้แยกต่างหาก บางครั้งอาจต่างจากพอร์ต HTTP หนึ่งหน่วยหรือหลายพัน
- ชื่อผู้ใช้และรหัสผ่าน สำหรับการยืนยันตัวตน หากคุณใช้การยืนยันตัวตนด้วยข้อมูลประจำตัว
- รายการ IP ที่อนุญาต หากคุณเปิดใช้การยืนยันตัวตนด้วยที่อยู่ IP ตรวจสอบว่ามีที่อยู่ใดระบุไว้
- ลิงก์สำหรับเปลี่ยน IP และข้อมูลเกี่ยวกับโหมดการหมุน: ตามกำหนดเวลา ตามลิงก์ หรือทุกคำขอ
เคล็ดลับ: บันทึกข้อมูลนี้ไม่เพียงแต่ในตัวจัดการรหัสผ่าน แต่ยังบันทึกในไฟล์ข้อความธรรมดาในระหว่างการวินิจฉัย คุณจะวางข้อมูลเหล่านี้ลงในคำสั่งหลายสิบครั้ง และการสลับหน้าต่างไปมาไม่หยุดจะทำให้เหนื่อย
เครื่องมือที่มีอยู่แล้วในระบบของคุณ
ข่าวดี: เกือบทุกสิ่งที่จำเป็นถูกติดตั้งมาพร้อมกับระบบปฏิบัติการ ไม่ต้องซื้ออะไรเพิ่ม
- Windows 10 และ 11: PowerShell (ค้นหาผ่านเมนู Start) และคอมมานด์ไลน์ cmd ใน PowerShell มีคำสั่ง Test-NetConnection ที่จะทดแทนยูทิลิตี้แยกต่างๆ
- macOS: แอปพลิเคชัน Terminal (Programs, โฟลเดอร์ Utilities) ยูทิลิตี้ nc และ curl ติดตั้งมาแล้ว
- Linux (Ubuntu, Debian, Fedora): เทอร์มินัลใดก็ได้ อาจต้องติดตั้งแพ็กเกจ curl, netcat และ mtr ผ่านตัวจัดการแพ็กเกจของระบบ
สิ่งที่ควรติดตั้งเพิ่มเติม
- curl สำหรับ Windows ใน Windows 10 เวอร์ชัน 1803 ขึ้นไป และใน Windows 11 มี curl อยู่แล้ว ตรวจสอบ: เปิด cmd และพิมพ์ curl --version หากเห็นหมายเลขเวอร์ชัน ทุกอย่างเรียบร้อย
- อุปกรณ์ที่สอง สำหรับเปรียบเทียบ: สมาร์ทโฟน แล็ปท็อปเครื่องที่สอง หรือเครื่องเสมือน นี่ไม่ใช่โปรแกรม แต่เป็นเครื่องมือที่มีประโยชน์มากซึ่งเราจะพูดถึงในขั้นตอนแรก
- การเข้าถึงการตั้งค่าเราเตอร์: ที่อยู่แผงควบคุม (ส่วนใหญ่ 192.168.0.1 หรือ 192.168.1.1) และรหัสผ่านผู้ดูแลระบบ จะต้องใช้ในขั้นตอนที่ห้า
การสำรองข้อมูลก่อนเริ่ม
เราจะเปลี่ยนการตั้งค่าไฟร์วอลล์และอาจเปลี่ยนเราเตอร์ ก่อนทำเช่นนั้น ให้ทำสองสิ่งเพื่อให้สามารถกลับสู่สถานะเดิมได้เสมอ
- ใน Windows สร้างจุดคืนค่าระบบ: เปิดการค้นหา พิมพ์ "สร้างจุดคืนค่าระบบ" กดปุ่มสร้าง และตั้งชื่อที่เข้าใจได้ เช่น "ก่อนตั้งค่าพร็อกซี"
- ส่งออกกฎไฟร์วอลล์ Windows ปัจจุบัน เปิด PowerShell ในฐานะผู้ดูแลระบบและเรียกใช้คำสั่ง netsh advfirewall export "C:/firewall-backup.wfw" ไฟล์จะปรากฏที่รากของไดรฟ์ C
- ในแผงควบคุมเราเตอร์ หาส่วนเช่น "ระบบ" "การบำรุงรักษา" หรือ "การสำรองข้อมูล" และบันทึกไฟล์การกำหนดค่าลงคอมพิวเตอร์
ข้อควรระวัง: อย่าปิดไฟร์วอลล์ทั้งหมด "เผื่อไว้" และอย่าปล่อยให้ปิดอยู่ ในระหว่างการวินิจฉัย เราจะปิดการป้องกันสูงสุดสองนาทีเพื่อทดสอบสมมติฐาน จากนั้นคืนค่าทุกอย่างกลับและสร้างกฎเฉพาะเจาะจง
แนวคิดพื้นฐาน: เกิดอะไรขึ้นเมื่อพร็อกซีไม่ตอบสนอง
เพื่อให้การวินิจฉัยมีความหมาย ไม่ใช่การเดาสุ่มแบบไร้ทิศทาง สิ่งสำคัญคือการเข้าใจว่าโครงสร้างการเชื่อมต่อเป็นอย่างไร จากนั้นแต่ละขั้นตอนของคู่มือจะตรวจสอบส่วนหนึ่งของสายโซ่นี้
เส้นทางของคำขอจากคุณถึงเว็บไซต์
เมื่อคุณทำงานผ่านพร็อกซีมือถือ คำขอจะผ่านเส้นทางดังนี้ ก่อนอื่นแอปพลิเคชันของคุณ (เบราว์เซอร์ สคริปต์ แอนตี้ดีเทกต์) ส่งข้อมูลไปยังระบบปฏิบัติการ ระบบจะส่งผ่านไฟร์วอลล์ของตัวเองและส่งต่อไปยังเราเตอร์ เราเตอร์ส่งทราฟฟิกไปยังผู้ให้บริการอินเทอร์เน็ตของคุณ ผู้ให้บริการส่งแพ็กเก็ตไปยังเซิร์ฟเวอร์พร็อกซี เซิร์ฟเวอร์พร็อกซีส่งต่อคำขอผ่านโมเด็มมือถือที่มีซิมการ์ดไปยังเครือข่ายของผู้ให้บริการมือถือ และจากนั้นคำขอจึงออกไปยังเว็บไซต์เป้าหมาย การตอบกลับเดินตามเส้นทางเดิมในลำดับย้อนกลับ
การขาดการเชื่อมต่อสามารถเกิดขึ้นได้ทุกจุดในเส้นทางนี้ วลี "พร็อกซีเซิร์ฟเวอร์ไม่ตอบสนอง" จริงๆ แล้วหมายถึงเพียงสิ่งเดียว: การตอบกลับไม่ถึงแอปพลิเคชันของคุณภายในเวลาที่กำหนด และสิ่งที่จะต้องค้นหาคือมันหายไปที่ไหน
พอร์ต: ประตูสู่เซิร์ฟเวอร์
เซิร์ฟเวอร์ใดก็ตามมีที่อยู่ IP เดียว แต่มีพอร์ตมากมาย หมายเลขตั้งแต่ 1 ถึง 65535 ลองนึกภาพตึกหลายชั้นที่มีที่อยู่เดียวและมีห้องนับพัน บริการพร็อกซี "อาศัยอยู่" ในห้องเฉพาะ นั่นคือฟังที่พอร์ตเฉพาะ หากคุณเคาะประตูห้องอื่น จะไม่มีใครเปิด และคุณจะรอจนกว่าไทม์เอาต์จะหมด ทั้งที่เซิร์ฟเวอร์ทำงานสมบูรณ์แบบ
พอร์ตสามารถเปิด ปิด และถูกกรอง พอร์ตเปิด ตอบรับเมื่อพยายามเชื่อมต่อ พอร์ตปิด ตอบปฏิเสธทันที และคุณจะได้รับข้อผิดพลาดทันทีเช่น "connection refused" พอร์ตที่ถูกกรอง เงียบ: แพ็กเก็ตของคุณถูกทิ้งระหว่างทาง และคุณไม่ได้รับอะไรเลย การกรองนี่เองที่ให้ภาพคลาสสิกของการค้างโดยไม่มีการตอบสนอง และผู้ร้ายมักเป็นไฟร์วอลล์บางตัว
ไทม์เอาต์: รอนานแค่ไหนก่อนยอมแพ้
ไทม์เอาต์คือขีดจำกัดการรอ หลังจากนั้นแอปพลิเคชันจะหยุดพยายามและรายงานข้อผิดพลาด ไทม์เอาต์มีหลายประเภท และไม่ควรสับสน
- ไทม์เอาต์การเชื่อมต่อ (connect timeout) รอนานแค่ไหนจนกว่าเซิร์ฟเวอร์จะตกลงสร้างการเชื่อมต่อ หากหมดเวลานี้ หมายความว่าคุณไม่สามารถเข้าถึงพอร์ตพร็อกซีได้เลย
- ไทม์เอาต์การอ่าน (read timeout) รอนานแค่ไหนสำหรับข้อมูลหลังจากการเชื่อมต่อถูกสร้างขึ้น หากหมดเวลานี้ หมายความว่าพร็อกซียอมรับคุณแล้ว แต่เว็บไซต์เป้าหมายหรือเครือข่ายมือถือตอบช้าเกินไป
- ไทม์เอาต์รวม ของคำขอ ขีดจำกัดบนสำหรับทั้งหมดรวมกัน
พร็อกซีมือถือทำงานผ่านเครือข่ายมือถือ ซึ่งความหน่วงสูงกว่าพร็อกซีดาต้าเซ็นเตอร์ตามธรรมชาติ หากซอฟต์แวร์ของคุณตั้งไทม์เอาต์ไว้ 5 วินาที มันอาจหลุดบนพร็อกซีมือถือที่ทำงานสมบูรณ์เพียงเพราะการตอบกลับมาถึงวินาทีที่หก
ไฟร์วอลล์: ตัวกรองที่ตัดสินใจว่าจะปล่อยอะไรผ่าน
ไฟร์วอลล์คือโปรแกรมหรืออุปกรณ์ที่ตรวจสอบแพ็กเก็ตเครือข่ายและตัดสินใจว่าจะปล่อยหรือทิ้ง ในสายโซ่ของคุณอาจมีไฟร์วอลล์สามหรือสี่ตัว: ที่ฝังใน Windows หรือ macOS ในโปรแกรมแอนตี้ไวรัส บนเราเตอร์ และของผู้ดูแลระบบองค์กร ตัวใดตัวหนึ่งสามารถทิ้งแพ็กเก็ตไปยังพอร์ตที่ไม่มาตรฐานได้อย่างเงียบๆ และคุณจะเห็นเพียงการค้าง
การยืนยันตัวตนด้วย IP: ไฟร์วอลล์ล่องหนฝั่งพร็อกซี
ผู้ให้บริการพร็อกซีมือถือหลายรายมีโหมดที่ใช้รายการที่อยู่ IP ที่อนุญาตแทนชื่อผู้ใช้และรหัสผ่าน เซิร์ฟเวอร์จะยอมรับการเชื่อมต่อเฉพาะจากที่อยู่ในรายการ และอาจเพิกเฉยต่อความพยายามอื่นๆ หาก IP บ้านของคุณเปลี่ยนไป (ซึ่งเกิดขึ้นเมื่อรีสตาร์ทเราเตอร์กับผู้ให้บริการส่วนใหญ่) พร็อกซีจะไม่รู้จักคุณอีกต่อไป ภายนอกดูเหมือนพอร์ตถูกบล็อกทุกประการ
ตอนนี้เมื่อภาพชัดเจนแล้ว เรามาฝึกปฏิบัติกัน แต่ละขั้นตอนต่อไปนี้จะตรวจสอบส่วนหนึ่งของสายโซ่ และไม่ล้างข้อสงสัยออกไป ก็จะพบผู้ร้าย
ขั้นตอนที่ 1: ระบุว่าการเชื่อมต่อขาดตรงไหน
เป้าหมายของขั้นตอนนี้: เข้าใจภายในห้านาทีว่าปัญหาอยู่ฝั่งคุณ ฝั่งเครือข่าย หรือฝั่งพร็อกซี นี่คือขั้นตอนที่สำคัญที่สุด เพราะจะตัดความเป็นไปได้ครึ่งหนึ่งออกไปทันที
ตรวจสอบอินเทอร์เน็ตโดยไม่ใช้พร็อกซี
- เปิดเบราว์เซอร์และปิดพร็อกซีชั่วคราวในการตั้งค่า ใน Chrome นี่คือ Settings ส่วน System รายการ "Open your computer's proxy settings" ในเบราว์เซอร์แอนตี้ดีเทกต์ สร้างโปรไฟล์ที่ไม่มีพร็อกซีหรือเลือกโหมด "ไม่มีพร็อกซี" ในการตั้งค่าโปรไฟล์
- เปิดเว็บไซต์ใหญ่ๆ เช่นหน้าค้นหา มันควรโหลดภายในหนึ่งถึงสองวินาที
- หากเว็บไซต์ไม่เปิดแม้ไม่มีพร็อกซี ปัญหาไม่ใช่พร็อกซี รีสตาร์ทเราเตอร์ ตรวจสอบสายหรือ Wi-Fi แล้วกลับมาที่คู่มือนี้ภายหลัง
ตรวจสอบพร็อกซีจากอุปกรณ์อื่น
- หยิบสมาร์ทโฟนและปิด Wi-Fi เพื่อให้ทำงานผ่านอินเทอร์เน็ตมือถือ วิธีนี้คุณจะอยู่ในเครือข่ายที่แตกต่างไปเลย ผ่านเราเตอร์และผู้ให้บริการของคุณ
- ติดตั้งเบราว์เซอร์ใดก็ได้ที่รองรับพร็อกซีบนโทรศัพท์ หรือใช้การตั้งค่าระบบ: บน Android ในคุณสมบัติจุดเชื่อมต่อทำได้ผ่าน APN แต่ที่ง่ายกว่าคือติดตั้งแอปพลิเคชันเบราว์เซอร์ที่ป้อนพร็อกซีด้วยตนเอง
- ป้อนที่อยู่ พอร์ต ชื่อผู้ใช้และรหัสผ่านของพร็อกซีของคุณ และเปิดเว็บไซต์ใดก็ได้ที่แสดง IP ของคุณ
- หากพร็อกซีทำงานจากโทรศัพท์ แสดงว่าพร็อกซีเองยังมีชีวิต และปัญหาอยู่ระหว่างคอมพิวเตอร์ของคุณกับอินเทอร์เน็ต: ไฟร์วอลล์ เราเตอร์ หรือการตั้งค่าซอฟต์แวร์ ไปที่ขั้นตอนที่ 2, 3, 4 และ 5
- หากจากโทรศัพท์ก็ไม่ทำงาน ปัญหาอยู่ที่พร็อกซีเองหรือการตั้งค่าการยืนยันตัวตน ไปที่ขั้นตอนที่ 6 แล้วติดต่อฝ่ายสนับสนุน
เคล็ดลับ: หากไม่มีอุปกรณ์ที่สอง ลองเชื่อมต่อคอมพิวเตอร์กับจุดเชื่อมต่อมือถือจากโทรศัพท์ การเปลี่ยนเครือข่ายจะให้ผลเช่นเดียวกับการตรวจสอบจากอุปกรณ์อื่น
ตรวจสอบสถานะพร็อกซีในแดชบอร์ด
- เข้าสู่แดชบอร์ดของผู้ให้บริการพร็อกซีมือถือ
- หาการ์ดพร็อกซีของคุณและดูตัวบ่งชี้สถานะ ผู้ให้บริการส่วนใหญ่จะแสดงว่าโมเด็มออนไลน์หรือไม่ และกิจกรรมล่าสุดเมื่อไหร่
- หากตัวบ่งชี้แสดงว่าพร็อกซีปิดอยู่หรือโมเด็มออฟไลน์ ไม่ต้องวินิจฉัยต่อ: สาเหตุอยู่ฝั่งอุปกรณ์ และฝ่ายสนับสนุนจะแก้ไขให้
การตรวจสอบ: เมื่อสิ้นสุดขั้นตอนนี้ คุณควรมีคำตอบสำหรับคำถามหนึ่งข้อ: พร็อกซีทำงานได้จากที่ใดที่หนึ่งหรือไม่ทำงานจากที่ไหนเลย บันทึกข้อสรุปนี้ มันจะกำหนดว่าขั้นตอนใดต่อไปจะสำคัญที่สุด
ปัญหาที่อาจเกิดขึ้นในขั้นตอนนี้
บางครั้งพร็อกซีทำงานจากโทรศัพท์ แต่หยุดทำงานในนาทีถัดไป นี่อาจเป็นการหมุน IP บนพร็อกซีหรือเครือข่ายมือถือที่ไม่เสถียรของโมเด็ม ทำการทดสอบซ้ำสองสามครั้งโดยเว้นระยะหนึ่งนาที เพื่อไม่ให้ได้ข้อสรุปผิดจากการลองครั้งเดียว
ขั้นตอนที่ 2: ตรวจสอบที่อยู่และพอร์ตพร็อกซี
เป้าหมายของขั้นตอนนี้: ยืนยันว่าพอร์ตพร็อกซีเปิดและเข้าถึงได้จากคอมพิวเตอร์ของคุณ นี่คือการตรวจสอบสำคัญ: หากพอร์ตไม่ตอบสนอง สิ่งอื่นก็ไม่มีความหมาย
ทำไม ping จึงไม่เพียงพอ
ความคิดแรกของหลายคนคือ ping เซิร์ฟเวอร์ แต่ ping ตรวจสอบเฉพาะการเข้าถึงที่อยู่ IP ผ่านโปรโตคอล ICMP ไม่ใช่การเปิดพอร์ตเฉพาะ เซิร์ฟเวอร์พร็อกซีหลายแห่งไม่ตอบ ping เพื่อความปลอดภัย ดังนั้น ping ที่สำเร็จไม่ได้รับประกันอะไร และ ping ที่ไม่สำเร็จก็ไม่มีความหมาย เราต้องการการตรวจสอบพอร์ต TCP โดยเฉพาะ
ตรวจสอบพอร์ตใน Windows
- กดปุ่ม Windows พิมพ์ PowerShell และเปิดมัน
- พิมพ์คำสั่งโดยแทนที่ที่อยู่และพอร์ตของคุณ:
Test-NetConnection -ComputerName proxy.example.net -Port 30001 - กด Enter และรอ คำสั่งอาจใช้เวลาถึง 20 วินาที
- หาบรรทัด TcpTestSucceeded ในผลลัพธ์ ค่า True หมายความว่าพอร์ตเปิดและรับการเชื่อมต่อ ค่า False หมายความว่าไม่สามารถเข้าถึงพอร์ตได้
- สังเกตบรรทัด PingSucceeded หากเป็น False แต่ TcpTestSucceeded เป็น True ทุกอย่างเรียบร้อย: เซิร์ฟเวอร์เพียงไม่ตอบ ping
ตรวจสอบพอร์ตใน macOS และ Linux
- เปิด Terminal
- พิมพ์คำสั่ง:
nc -zv proxy.example.net 30001 - คีย์ -z บอกยูทิลิตี้ไม่ให้ส่งข้อมูล เพียงตรวจสอบการเชื่อมต่อ คีย์ -v เปิดการแสดงผลโดยละเอียด
- คำตอบเช่น succeeded หรือ Connection to ... port 30001 succeeded! หมายถึงสำเร็จ คำตอบ Connection refused หมายถึงพอร์ตปิดและเซิร์ฟเวอร์ปฏิเสธทันที หากคำสั่งค้างโดยไม่ตอบ แล้วเขียน timed out แสดงว่าพอร์ตถูกกรองที่ไหนสักแห่งตามเส้นทาง
ตรวจสอบผ่าน curl บนระบบใดก็ได้
curl ไม่เพียงตรวจสอบพอร์ต แต่ยังส่งคำขอผ่านพร็อกซีได้ทันที นี่คือระดับการตรวจสอบถัดไป
- พิมพ์คำสั่งโดยแทนที่ข้อมูลของคุณ:
curl -x http://login:password@proxy.example.net:30001 --connect-timeout 15 -v https://api.ipify.org - คีย์ -x กำหนดพร็อกซี คีย์ -v แสดงทุกขั้นตอนการเชื่อมต่อ คีย์ --connect-timeout จำกัดการรอสร้างการเชื่อมต่อไว้ที่ 15 วินาที
- อ่านผลลัพธ์จากบนลงล่าง บรรทัด Connected to proxy.example.net หมายความว่าพอร์ตเปิด บรรทัด CONNECT api.ipify.org:443 แสดงว่า curl ขอให้พร็อกซีสร้างทันเนล หากหลังจากนั้นได้รับการตอบกลับ 200 และท้ายที่สุดคุณเห็นที่อยู่ IP พร็อกซีทำงานเต็มที่
- หากผลลัพธ์หยุดที่บรรทัด Trying 185.10.20.30:30001... และหลังจาก 15 วินาทีปรากฏ Connection timed out แสดงว่าพอร์ตไม่สามารถเข้าถึงได้จากคอมพิวเตอร์ของคุณ
เคล็ดลับ: หากในรหัสผ่านมีอักขระพิเศษเช่น @ หรือ # curl อาจตีความที่อยู่ผิด ใช้คีย์แยก -U สำหรับข้อมูลประจำตัว: curl -x http://proxy.example.net:30001 -U login:password ... วิธีนี้รหัสผ่านจะไม่ปะปนกับที่อยู่
ตรวจสอบโปรโตคอลและพอร์ต SOCKS5
ข้อผิดพลาดที่พบบ่อย: ระบุพอร์ต HTTP ในขณะที่ซอฟต์แวร์คาดหวัง SOCKS5 หรือในทางกลับกัน การเชื่อมต่อจะถูกสร้างขึ้น แต่ข้อมูลจะไม่ผ่าน และแอปพลิเคชันอาจแสดงไทม์เอาต์
- ตรวจสอบในแดชบอร์ดของผู้ให้บริการว่ามีพอร์ตใดสำหรับ HTTP และ SOCKS5
- ทำการทดสอบผ่าน curl ด้วยโปรโตคอล SOCKS5:
curl -x socks5://login:password@proxy.example.net:30002 --connect-timeout 15 https://api.ipify.org - ตรวจสอบให้แน่ใจว่าในแอปพลิเคชันของคุณเลือกโปรโตคอลเดียวกันกับที่ใช้ในคำสั่ง curl ที่สำเร็จ
การตรวจสอบ: หลังขั้นตอนนี้ คุณจะรู้แน่นอนหนึ่งในสามอย่าง: พอร์ตเปิดและพร็อกซีตอบผ่าน curl (ปัญหาอยู่ในการตั้งค่าแอปพลิเคชัน ไปขั้นตอนที่ 3); พอร์ตเปิด แต่คำขอผ่านพร็อกซีค้าง (ปัญหาการยืนยันตัวตนหรือฝั่งพร็อกซี ขั้นตอนที่ 6); พอร์ตไม่ตอบสนอง (ปัญหาไฟร์วอลล์หรือเครือข่าย ขั้นตอนที่ 4 และ 5)
ปัญหาที่อาจเกิดขึ้นในขั้นตอนนี้
หาก Test-NetConnection แสดงข้อผิดพลาดการแปลงชื่อ หมายความว่าคอมพิวเตอร์ไม่สามารถแปลงชื่อโดเมนเป็นที่อยู่ IP ได้ ลองใช้ที่อยู่ IP จากแดชบอร์ดแทนชื่อ หากใช้ IP ได้แต่ชื่อไม่ได้ คุณมีปัญหา DNS: เปลี่ยนเซิร์ฟเวอร์ DNS ในการตั้งค่าอะแดปเตอร์เครือข่ายเป็นแบบสาธารณะและลองใหม่
ขั้นตอนที่ 3: จัดการไทม์เอาต์ในซอฟต์แวร์ของคุณ
เป้าหมายของขั้นตอนนี้: ยืนยันว่าแอปพลิเคชันให้เวลาพร็อกซีมือถือเพียงพอในการตอบสนอง และเรียนรู้แยกความแตกต่างระหว่างไทม์เอาต์การเชื่อมต่อกับไทม์เอาต์การอ่าน
วัดเวลาตอบสนองจริง
- เรียกใช้คำสั่ง curl พร้อมแสดงเวลาทำงาน:
ใน Windows ใช้ NUL แทน /dev/nullcurl -x http://login:password@proxy.example.net:30001 -o /dev/null -s -w "connect: %{time_connect}s total: %{time_total}s" https://api.ipify.org - ค่า connect แสดงว่าใช้เวลานานแค่ไหนในการสร้างการเชื่อมต่อ TCP กับพร็อกซี ปกติสำหรับพร็อกซีมือถือ: 0.05 ถึง 0.5 วินาที
- ค่า total แสดงเวลาทั้งหมดของคำขอ สำหรับพร็อกซีมือถือ ปกติจะเห็น 1-4 วินาที และในชั่วโมงเร่งด่วนของเครือข่ายมือถืออาจถึง 6-8 วินาที
- ทำคำสั่งซ้ำห้าครั้งและบันทึกความแปรปรวน หาก connect ต่ำอย่างสม่ำเสมอ แต่ total บางครั้งกระโดดถึง 10 วินาที ซอฟต์แวร์ของคุณต้องพร้อมรับความหน่วงเช่นนี้
ตั้งค่าไทม์เอาต์ในเครื่องมือยอดนิยม
Python และไลบรารี requests
พารามิเตอร์ timeout รับทูเพิลสองค่า: ไทม์เอาต์การเชื่อมต่อและไทม์เอาต์การอ่าน ค่าแนะนำสำหรับพร็อกซีมือถือ: 10 วินาทีสำหรับการเชื่อมต่อ และ 30 วินาทีสำหรับการอ่าน
proxies = {"http": "http://login:password@proxy.example.net:30001", "https": "http://login:password@proxy.example.net:30001"}
response = requests.get("https://api.ipify.org", proxies=proxies, timeout=(10, 30))หากคุณระบุตัวเลขตัวเดียว เช่น timeout=5 มันจะใช้กับทั้งสองไทม์เอาต์ และนี่คือสาเหตุที่พบบ่อยของข้อความเท็จว่าพร็อกซีเซิร์ฟเวอร์ไม่ตอบสนอง
Node.js และ axios
ใน axios พารามิเตอร์ timeout มีเพียงตัวเดียวและเป็นแบบรวม ตั้งไว้ไม่น้อยกว่า 30000 มิลลิวินาที สำหรับพร็อกซีให้ใช้เอเจนต์ เช่นจากแพ็กเกจ https-proxy-agent และส่งไปยังพารามิเตอร์ httpsAgent
เบราว์เซอร์แอนตี้ดีเทกต์
- เปิดการตั้งค่าโปรไฟล์ ส่วนพร็อกซี
- หาปุ่มตรวจสอบการเชื่อมต่อ มีอยู่แทบทุกแอนตี้ดีเทกต์สมัยใหม่
- สังเกตว่าผลลัพธ์มาถึงในเวลากี่วินาที หากการตรวจสอบใช้เวลามากกว่า 10 วินาทีและสิ้นสุดด้วยความล้มเหลว ในขณะที่ curl ทำงานได้ ให้ดูที่การตั้งค่าทั่วไปของเบราว์เซอร์ในพารามิเตอร์ไทม์เอาต์พร็อกซีและเพิ่มค่า
- ตรวจสอบให้แน่ใจว่าในช่องโปรโตคอลเลือก HTTP หรือ SOCKS5 ตามพอร์ตที่ผ่านการตรวจสอบในขั้นตอนที่ 2
เครื่องมือสำหรับดึงข้อมูลและทำงานอัตโนมัติ
ใน Scrapy พารามิเตอร์ DOWNLOAD_TIMEOUT รับผิดชอบ โดยค่าเริ่มต้น 180 วินาที และแทบไม่เคยเป็นปัญหา ใน Puppeteer และ Playwright ไทม์เอาต์การนำทางค่าเริ่มต้น 30 วินาที แต่เมื่อทำงานผ่านเครือข่ายมือถือที่ช้า หน้าหนักๆ อาจมาไม่ทัน: เพิ่มเป็น 60 วินาทีผ่านพารามิเตอร์ timeout ในเมธอด goto
เคล็ดลับ: อย่าตั้งไทม์เอาต์สูงเกินไป 30-60 วินาทีสำหรับการอ่านเป็นขีดจำกัดที่สมเหตุสมผล หากตั้งไว้ 300 วินาที สคริปต์ของคุณจะค้างเป็นชั่วโมงบนการเชื่อมต่อที่ตายแล้ว แทนที่จะลองใหม่อย่างรวดเร็ว
แยกความแตกต่างระหว่างไทม์เอาต์การเชื่อมต่อกับไทม์เอาต์การอ่าน
สิ่งนี้สำคัญเพราะรักษาแตกต่างกัน
- ไทม์เอาต์การเชื่อมต่อ ใน curl ดูเหมือน "Connection timed out after 15001 milliseconds" ทันทีหลังบรรทัด Trying ใน Python requests นี่คือข้อยกเว้น ConnectTimeout การรักษา: ขั้นตอนที่ 4, 5 และ 6 เพราะคุณไม่สามารถเข้าถึงพอร์ตได้
- ไทม์เอาต์การอ่าน ใน curl ดูเหมือน "Operation timed out after 30000 milliseconds with 0 bytes received" หลังบรรทัด Connected ใน Python นี่คือ ReadTimeout การรักษา: เพิ่มไทม์เอาต์การอ่าน ตรวจสอบว่ามีการหมุน IP บนพร็อกซีในขณะนั้นหรือไม่ และตรวจสอบว่าเว็บไซต์เป้าหมายเข้าถึงได้จริง
การตรวจสอบ: หลังขั้นตอนนี้ เวลาตอบสนองพร็อกซีผ่าน curl อยู่ในไทม์เอาต์ของแอปพลิเคชันอย่างน้อยสองเท่า หาก curl ตอบใน 3 วินาที ในซอฟต์แวร์ควรตั้งไว้ไม่น้อยกว่า 10 วินาทีสำหรับการอ่าน
ขั้นตอนที่ 4: ตรวจสอบไฟร์วอลล์และแอนตี้ไวรัสบนอุปกรณ์ของคุณ
เป้าหมายของขั้นตอนนี้: ยืนยันว่าซอฟต์แวร์ป้องกันบนคอมพิวเตอร์ไม่บล็อกการเชื่อมต่อขาออกไปยังพอร์ตพร็อกซี และสร้างกฎอนุญาตเฉพาะเจาะจงหากจำเป็น
ทดสอบด่วน: ปิดชั่วคราว
ก่อนที่จะเจาะลึกในกฎ มาทดสอบสมมติฐานด้วยวิธีที่ง่ายที่สุด ปิดการป้องกันหนึ่งนาที ทำการทดสอบพอร์ตซ้ำ แล้วเปิดกลับ
- ใน Windows เปิดการค้นหา พิมพ์ "Windows Defender Firewall" และเปิดมัน
- ทางซ้ายคลิก "Turn Windows Defender Firewall on or off"
- สำหรับโปรไฟล์เครือข่ายที่ใช้งานอยู่ (มักเป็น Private หรือ Public network) เลือก "Turn off" และกด OK
- ทำ Test-NetConnection จากขั้นตอนที่ 2 ทันที
- คืนสวิตช์กลับเป็น "Turn on" และกด OK ทันที
ข้อควรระวัง: อย่าทำงานโดยปิดไฟร์วอลล์นานกว่าที่จำเป็นสำหรับการตรวจสอบครั้งเดียว คำสั่งหนึ่งใช้เวลาไม่กี่วินาที แต่ระบบที่เปิดโล่งในเครือข่ายเป็นความเสี่ยงจริง หากลืมเปิดกลับ Windows จะเตือนด้วยการแจ้งเตือน แต่ไม่ควรพึ่งสิ่งนี้
หากปิดไฟร์วอลล์แล้วพอร์ตเข้าถึงได้ พบผู้ร้ายแล้ว หากไม่ ให้ตรวจสอบแอนตี้ไวรัสด้วยวิธีเดียวกัน: ผลิตภัณฑ์ส่วนใหญ่มีรายการ "หยุดการป้องกัน 5 นาที" ในเมนูบริบทของไอคอนในถาดระบบ ทำการทดสอบพอร์ตซ้ำและคืนการป้องกัน
สร้างกฎอนุญาตในไฟร์วอลล์ Windows
การปิดไฟร์วอลล์ถาวรทำไม่ได้ ให้สร้างกฎที่อนุญาตแอปพลิเคชันของคุณเชื่อมต่อขาออกแทน
- เปิด "Windows Defender Firewall" และคลิก "Advanced settings" ทางซ้าย หน้าต่างการตั้งค่าขั้นสูงจะเปิดขึ้น
- ในคอลัมน์ซ้ายเลือก "Outbound Rules"
- ในคอลัมน์ขวาคลิก "New Rule"
- เลือกประเภท "Program" และกด Next
- เลือก "This program path" และผ่านปุ่ม Browse ระบุไฟล์เรียกใช้งานของแอปพลิเคชัน: เบราว์เซอร์ แอนตี้ดีเทกต์ หรืออินเทอร์พรีเตอร์ Python กด Next
- เลือก "Allow the connection" และกด Next
- ติ๊กทั้งสามโปรไฟล์: Domain, Private, Public กด Next
- ตั้งชื่อกฎที่เข้าใจได้ เช่น "Allow proxy for antidetect browser" และกด Finish
ทางเลือกอื่นหากมีแอปพลิเคชันหลายตัว: สร้างกฎประเภท "Port" เลือกโปรโตคอล TCP ระบุ远端พอร์ตพร็อกซีเฉพาะ และอนุญาตสำหรับทุกโปรแกรม ในข้อสี่เลือก "Customize" ในส่วน "Protocol and Ports" ระบุ TCP และในช่อง "Remote port" ป้อนหมายเลขพอร์ตพร็อกซี
ตรวจสอบว่ามีกฎบล็อกหรือไม่
บางครั้งปัญหาไม่ใช่การขาดการอนุญาต แต่เป็นการมีข้อห้ามที่สร้างโดยแอนตี้ไวรัสหรือนโยบายองค์กร
- ในหน้าต่างการตั้งค่าขั้นสูงเดียวกัน เปิด "Outbound Rules"
- คลิกที่หัวคอลัมน์ "Action" เพื่อจัดเรียงรายการ กฎที่มีการกระทำ "Block" จะอยู่ใกล้กัน
- ตรวจสอบพวกมัน หากเห็นกฎที่บล็อกแอปพลิเคชันของคุณหรือช่วงพอร์ตที่พอร์ตพร็อกซีอยู่ ให้คลิกขวาและเลือก "Disable Rule"
- ทำการทดสอบพอร์ตซ้ำ
ไฟร์วอลล์ใน macOS
- เปิด System Settings ส่วน Network แล้ว Firewall
- หากไฟร์วอลล์เปิดอยู่ คลิก Options
- ตรวจสอบว่าแอปพลิเคชันของคุณในรายการมีสถานะ "Allow incoming connections" แม้ว่าเราสนใจการเชื่อมต่อขาออก แอปพลิเคชันบางตัวเปิดพอร์ตท้องถิ่นเพื่อทำงานกับพร็อกซี
- ยกเลิกติ๊ก "Block all incoming connections" หากมีการติ๊กไว้ และทำการทดสอบซ้ำ
ตรวจสอบยูทิลิตี้ของบุคคลที่สามเช่น Little Snitch หรือ LuLu แยกต่างหาก: พวกมันควบคุมทราฟฟิกขาออกโดยเฉพาะ และอาจเคยจำการปฏิเสธของคุณต่อคำขออนุญาต ค้นหาแอปพลิเคชันของคุณในรายการกฎและอนุญาตการเชื่อมต่อไปยังที่อยู่พร็อกซี
ไฟร์วอลล์ใน Linux
- ตรวจสอบสถานะ ufw ด้วยคำสั่ง sudo ufw status verbose สังเกตบรรทัด Default: หาก outgoing ระบุ deny การเชื่อมต่อขาออกถูกบล็อกตามค่าเริ่มต้น
- อนุญาตการเชื่อมต่อขาออกไปยังพอร์ตพร็อกซี:
sudo ufw allow out to 185.10.20.30 port 30001 proto tcp - หากใช้ iptables โดยตรง ดูกฎด้วยคำสั่ง sudo iptables -L OUTPUT -n -v และหาบรรทัดที่มี DROP หรือ REJECT ที่ทราฟฟิกของคุณอยู่ภายใต้
- บนเซิร์ฟเวอร์ที่มี Docker จำไว้ว่าคอนเทนเนอร์ใช้ระบบย่อยเครือข่ายแยก ตรวจสอบการเข้าถึงพอร์ตจากภายในคอนเทนเนอร์ ไม่ใช่แค่จากโฮสต์
เคล็ดลับ: บันทึกเวลาที่แน่นอนเมื่อคุณเปลี่ยนกฎไฟร์วอลล์ หากอาทิตย์ถัดไปมีอะไรเสีย คุณจะจำได้อย่างรวดเร็วว่าการเปลี่ยนแปลงใดอาจเป็นสาเหตุ และย้อนกลับผ่านไฟล์ที่ส่งออกในขั้นตอนการเตรียมการ
การตรวจสอบ: หลังขั้นตอนนี้ Test-NetConnection หรือ nc แสดงการเชื่อมต่อสำเร็จโดยเปิดไฟร์วอลล์และแอนตี้ไวรัสอยู่ หากพอร์ตยังเข้าถึงไม่ได้ และเมื่อปิดการป้องกันก็ยังไม่เปิด ปัญหาอยู่สูงขึ้น ที่ระดับเราเตอร์หรือเครือข่าย ไปที่ขั้นตอนที่ 5
ขั้นตอนที่ 5: ตรวจสอบเราเตอร์ เครือข่ายองค์กร และผู้ให้บริการ
เป้าหมายของขั้นตอนนี้: ตรวจสอบว่าอุปกรณ์ระหว่างคอมพิวเตอร์กับเซิร์ฟเวอร์พร็อกซีทิ้งทราฟฟิกของคุณหรือไม่ และแก้ไขการตั้งค่าเราเตอร์หรือเปลี่ยนเครือข่ายหากจำเป็น
ดูว่าแพ็กเก็ตหายไปตรงไหน
ยูทิลิตี้ติดตามเส้นทางแสดงรายการโหนดที่แพ็กเก็ตผ่านไปยังเซิร์ฟเวอร์ หากแพ็กเก็ตไปถึงโหนดหนึ่งแล้วหายไปหลังจากนั้น คุณจะเห็นว่าโหนดนั้นเป็นของใคร: เราเตอร์ของคุณ ผู้ให้บริการ หรือไกลออกไป
- ใน Windows เปิด cmd และเรียกใช้ tracert 185.10.20.30 โดยแทนที่ IP พร็อกซี
- ใน macOS เรียกใช้ traceroute 185.10.20.30 ใน Linux ใช้ mtr -n 185.10.20.30 จะดีกว่า: มันแสดงสถิติแบบเรียลไทม์และการสูญเสียที่แต่ละโหนด
- บรรทัดแรกคือเราเตอร์ของคุณ บรรทัดที่สองและสามมักเป็นอุปกรณ์ของผู้ให้บริการ ต่อไปเป็นโหนดโครงข่ายหลัก และสุดท้ายเซิร์ฟเวอร์พร็อกซี
- หากได้รับคำตอบจากทุกโหนดยกเว้นตัวสุดท้าย นี่เป็นเรื่องปกติ: เซิร์ฟเวอร์พร็อกซีมักไม่ตอบคำขอเหล่านี้ ดูการสูญเสียในเส้นทางตรงกลาง
- หากเครื่องหมายดาวเริ่มต้นทันทีหลังโหนดแรก เราเตอร์หรือผู้ให้บริการของคุณไม่ปล่อยทราฟฟิกไปยังที่อยู่นี้
จำไว้: การติดตามเส้นทางใช้ ICMP หรือ UDP ไม่ใช่ TCP ไปยังพอร์ตที่ต้องการ ดังนั้นมันแสดงการเข้าถึงเส้นทางโดยรวม ไม่ใช่การเปิดพอร์ต นี่เป็นเครื่องมือเสริม ไม่ใช่การทดแทนการตรวจสอบจากขั้นตอนที่ 2
ตรวจสอบเราเตอร์
- เปิดเบราว์เซอร์และป้อนที่อยู่เราเตอร์ในแถบที่อยู่ มักเป็น 192.168.0.1 หรือ 192.168.1.1 ชื่อผู้ใช้และรหัสผ่านพิมพ์อยู่บนสติกเกอร์ด้านล่างอุปกรณ์ หากคุณไม่เปลี่ยน
- หาส่วนที่มีชื่อเช่น "Security" "Firewall" "Filtering" หรือ "Parental Control"
- ดูว่ามีการกรองตามพอร์ตหรือ URL เปิดอยู่หรือไม่ เราเตอร์บางตัวมีโปรไฟล์ที่ตั้งไว้ล่วงหน้าเช่น "High security level" ที่บล็อกทุกอย่างยกเว้นพอร์ต 80 และ 443 เปลี่ยนเป็นระดับมาตรฐาน
- ตรวจสอบส่วน "Access Control" หรือ "Schedule": อาจมีกฎที่จำกัดอินเทอร์เน็ตสำหรับอุปกรณ์ของคุณในบางชั่วโมง
- หาการตั้งค่า SPI Firewall หรือ "DoS protection" บางครั้งการป้องกันที่ก้าวร้าวเกินไปจะมองการเชื่อมต่อแบบขนานจำนวนมากไปยังที่อยู่เดียวว่าเป็นการโจมตีและเริ่มตัดทิ้ง หากคุณมีเธรดดึงข้อมูลหลายสิบ ลองปิดการป้องกันนี้ชั่วคราวและทำการทดสอบซ้ำ
- บันทึกการเปลี่ยนแปลงและรีสตาร์ทเราเตอร์หากจำเป็น
ข้อควรระวัง: อย่าเปลี่ยนการตั้งค่าเราเตอร์ที่คุณไม่เข้าใจ โดยเฉพาะในส่วน WAN และ DHCP ข้อผิดพลาดที่นั่นจะทำให้ทั้งบ้านหรือออฟฟิศไม่มีอินเทอร์เน็ต หากไม่แน่ใจ ให้สำรองข้อมูลการกำหนดค่าตามที่อธิบายในการเตรียมการ และเปลี่ยนเพียงพารามิเตอร์เดียวในแต่ละครั้ง
ตรวจสอบ MTU
MTU คือขนาดสูงสุดของแพ็กเก็ตข้อมูลหนึ่ง หากตั้งค่าไม่ถูกต้อง คำขอเล็กๆ จะผ่าน แต่การตอบกลับขนาดใหญ่จะหายไป อาการเฉพาะ: การเชื่อมต่อกับพร็อกซีถูกสร้างขึ้น หน้าเว็บเล็กเปิดได้ แต่หน้าใหญ่ค้าง
- ใน Windows เรียกใช้ใน cmd: ping -f -l 1472 8.8.8.8 หากแพ็กเก็ตผ่าน MTU 1500 เป็นปกติ หากเขียน "requires fragmentation" ให้ลดตัวเลขทีละ 10 จนกว่าจะผ่าน
- หาการตั้งค่า MTU ในเราเตอร์ (มักในส่วน WAN หรือ Internet) และตั้งค่าที่พบบวก 28
- ค่าทั่วไป: 1500 สำหรับการเชื่อมต่อเคเบิลปกติ, 1492 สำหรับ PPPoE, 1400-1450 สำหรับช่องมือถือและดาวเทียมบางแห่ง
เครือข่ายองค์กรและ Wi-Fi สาธารณะ
หากคุณทำงานในออฟฟิศ โคเวิร์กกิ้ง หรือโรงแรม เกือบแน่นอนว่ามีเกตเวย์องค์กรที่มีไฟร์วอลล์ของตัวเองอยู่ระหว่างคุณกับอินเทอร์เน็ต เกตเวย์เหล่านี้มักอนุญาตเฉพาะพอร์ต 80 และ 443 และตัดทุกอย่างอื่น พอร์ตห้าหลักของพร็อกซีมือถือจึงไม่ผ่าน
- เชื่อมต่อกับจุดเชื่อมต่อมือถือจากโทรศัพท์และทำการทดสอบพอร์ตซ้ำ หากทำงานได้ เกตเวย์องค์กรเป็นตัวการ
- ติดต่อผู้ดูแลระบบด้วยคำขอเฉพาะ: อนุญาตการเชื่อมต่อ TCP ขาออกไปยัง IP และพอร์ตที่ระบุ ยิ่งคำขอเฉพาะเจาะจง ยิ่งทำได้เร็ว
- สอบถามผู้ให้บริการพร็อกซีว่าสามารถให้พอร์ตจากช่วงมาตรฐานเช่น 443 หรือ 8080 ได้หรือไม่ ผู้ให้บริการหลายรายตั้งค่านี้ได้
ผู้ให้บริการที่บ้าน
ผู้ให้บริการที่บ้านแทบไม่บล็อกพอร์ตขาออก แต่บางรายตัดช่วงที่รู้จักที่เกี่ยวข้องกับทอร์เรนต์หรือเซิร์ฟเวอร์อีเมล หากหลังการตรวจสอบทั้งหมดพอร์ตไม่ตอบจากเครือข่ายบ้าน แต่ตอบผ่านอินเทอร์เน็ตมือถือ ให้โทรหาฝ่ายสนับสนุนผู้ให้บริการและถามตรงๆ ว่าพวกเขากรองการเชื่อมต่อขาออกไปยังพอร์ตที่ระบุหรือไม่
เคล็ดลับ: บันทึกผลลัพธ์การติดตามเส้นทางและการตรวจสอบพอร์ตจากเครือข่ายของคุณและจากเครือข่ายมือถือไว้ในไฟล์เดียว เมื่อจะเขียนถึงผู้ให้บริการหรือผู้ดูแลระบบ ให้แนบผลลัพธ์ทั้งสอง สิ่งนี้จะลดบทสนทนาจากหนึ่งอาทิตย์เหลือหนึ่งวัน
การตรวจสอบ: พอร์ตพร็อกซีเข้าถึงได้จากเครือข่ายของคุณด้วยคำสั่งจากขั้นตอนที่ 2 การติดตามเส้นทางไม่แสดงการสูญเสียที่โหนดของผู้ให้บริการ และ ping ด้วยแฟล็ก -f ผ่านที่ขนาด 1472 หากตรงทั้งสามเงื่อนไข แต่พร็อกซียังไม่ตอบสนอง ปัญหาอยู่ในการตั้งค่าของมันเอง เรามาที่ขั้นตอนที่ 6
ขั้นตอนที่ 6: ตรวจสอบการตั้งค่าฝั่งพร็อกซี
เป้าหมายของขั้นตอนนี้: ยืนยันว่าเซิร์ฟเวอร์พร็อกซียอมรับคุณโดยเฉพาะ: IP ของคุณอยู่ในรายการที่อนุญาต โมเด็มออนไลน์ การหมุนไม่ตรงกับคำขอของคุณ และไม่เกินขีดจำกัดการเชื่อมต่อ
ตรวจสอบการยืนยันตัวตนด้วย IP
นี่คือสาเหตุที่พบบ่อยที่สุด เมื่อพร็อกซีทำงานจากโทรศัพท์แต่ไม่ทำงานจากคอมพิวเตอร์ หรือทำงานเมื่อวานแต่วันนี้ไม่ทำงาน
- ค้นหา IP ภายนอกปัจจุบันของคุณ เปิดเว็บไซต์ที่แสดง IP โดยไม่ใช้พร็อกซี หรือเรียกใช้ curl https://api.ipify.org ในเทอร์มินัล
- เปิดแดชบอร์ดของผู้ให้บริการพร็อกซี ส่วนการตั้งค่าการยืนยันตัวตน
- เปรียบเทียบที่อยู่ในรายการที่อนุญาตกับที่อยู่ปัจจุบันของคุณ หากแตกต่าง นี่คือสาเหตุ: ผู้ให้บริการของคุณออกที่อยู่ใหม่หลังรีสตาร์ทเราเตอร์หรือตามกำหนดเวลา
- อัปเดตที่อยู่ในรายการที่อนุญาตหรือเปลี่ยนไปใช้การยืนยันตัวตนด้วยชื่อผู้ใช้และรหัสผ่าน ทางเลือกที่สองเชื่อถือได้มากกว่าหาก IP ภายนอกของคุณเปลี่ยน
- รอหนึ่งถึงสองนาที: การตั้งค่าบนเซิร์ฟเวอร์พร็อกซีใช้เวลาไม่ทันที
- ทำการทดสอบผ่าน curl จากขั้นตอนที่ 2 ซ้ำ
เคล็ดลับ: หากคุณทำงานจากบ้านด้วย IP แบบไดนามิก การยืนยันตัวตนด้วยชื่อผู้ใช้และรหัสผ่านจะแก้ปัญหานี้ให้คุณตลอดไป รายการที่อนุญาตสะดวกสำหรับเซิร์ฟเวอร์ที่มีที่อยู่คงที่ ไม่ใช่สำหรับคอมพิวเตอร์ที่บ้าน
ตรวจสอบสถานะโมเด็มและการหมุน
- ในแดชบอร์ด หาข้อมูลเกี่ยวกับ IP พร็อกซีปัจจุบันและเวลาที่เปลี่ยนล่าสุด
- หากคุณตั้งการหมุนอัตโนมัติทุกไม่กี่นาที ให้สังเกต: ในช่วงที่ IP เปลี่ยน โมเด็มจะเชื่อมต่อใหม่กับเครือข่ายมือถือ และ 5-20 วินาทีพร็อกซีจะไม่ตอบสนองจริง นี่เป็นพฤติกรรมปกติ ไม่ใช่การเสีย
- หากคำขอของคุณเจอไทม์เอาต์เป็นประจำในจังหวะการหมุน ให้เพิ่มช่วงการหมุนหรือเปลี่ยนไปใช้การเปลี่ยน IP ตามลิงก์ เพื่อควบคุมจังหวะการเชื่อมต่อใหม่ด้วยตัวเอง
- ลองบังคับเปลี่ยน IP ผ่านลิงก์จากแดชบอร์ด หากหลังการเปลี่ยนพร็อกซีทำงานได้ ปัญหาอยู่ที่ IP เฉพาะหรือการเชื่อมต่อของโมเด็มที่ค้าง
ตรวจสอบขีดจำกัดการเชื่อมต่อพร้อมกัน
พร็อกซีมือถือมีข้อจำกัดจำนวนการเชื่อมต่อแบบขนานจากพอร์ตเดียว หากตัวดึงข้อมูลของคุณเปิดหนึ่งร้อยเธรด แต่ขีดจำกัดห้าสิบ การเชื่อมต่อส่วนเกินจะรอในคิวและหลุดตามไทม์เอาต์
- ตรวจสอบขีดจำกัดในคำอธิบายแพ็กเกจหรือในแดชบอร์ด
- ปิดแอปพลิเคชันทั้งหมดที่ใช้พร็อกซีและทำคำขอเดี่ยวผ่าน curl หากคำขอเดี่ยวผ่าน แต่ภายใต้โหลดเริ่มมีไทม์เอาต์ คุณกำลังชนขีดจำกัด
- ลดจำนวนเธรดในการตั้งค่าตัวดึงข้อมูลหรือแอนตี้ดีเทกต์ให้ต่ำกว่าขีดจำกัด สำหรับพร็อกซีมือถือ จุดเริ่มต้นที่สมเหตุสมผล: 5-10 การเชื่อมต่อขนานต่อพอร์ต
ตรวจสอบเขตเวลาและเครือข่ายมือถือ
โมเด็มพร็อกซีตั้งอยู่ทางกายภาพในเมืองเฉพาะและเชื่อมต่อกับผู้ให้บริการเฉพาะ ในชั่วโมงเย็นเมื่อเครือข่ายมือถือแออัด ความหน่วงเพิ่มขึ้นหลายเท่า หากไทม์เอาต์ปรากฏเฉพาะ 19.00 ถึง 23.00 ตามเวลาเขตภูมิภาคพร็อกซี นี่คือเครือข่ายมือถือ ไม่ใช่การกำหนดค่าของคุณ วิธีแก้: เพิ่มไทม์เอาต์ในช่วงเวลานี้หรือกระจายโหลดไปยังชั่วโมงอื่น
การตรวจสอบ: IP ปัจจุบันของคุณตรงกับรายการที่อนุญาตหรือใช้การยืนยันตัวตนด้วยรหัสผ่าน โมเด็มในแดชบอร์ดแสดงสถานะ "ออนไลน์" คำขอเดี่ยวผ่าน curl ผ่าน และจำนวนเธรดในซอฟต์แวร์ไม่เกินขีดจำกัด หากทั้งหมดนี้ทำแล้ว แต่พร็อกซีเซิร์ฟเวอร์ยังไม่ตอบสนอง ถึงเวลาเขียนถึงฝ่ายสนับสนุนผู้ให้บริการพร้อมแนบผลลัพธ์ทั้งหกขั้นตอน
ตรวจสอบผลลัพธ์: เช็คลิสต์การเชื่อมต่อที่เสถียร
คุณผ่านทุกขั้นตอนแล้ว ตอนนี้มาตรวจสอบว่าผลลัพธ์ที่ได้มาไม่ใช่เรื่องบังเอิญและไม่ใช่แค่นาทีเดียว ผ่านเช็คลิสต์และติ๊กทุกข้อ
เช็คลิสต์
- Test-NetConnection หรือ nc แสดงการเชื่อมต่อ TCP สำเร็จกับพอร์ตพร็อกซีโดยเปิดไฟร์วอลล์และแอนตี้ไวรัสอยู่
- curl ผ่านพร็อกซีคืนค่า IP ของผู้ให้บริการมือถือภายในไม่เกิน 5 วินาทีในห้าครั้งติดต่อกัน
- ไทม์เอาต์การเชื่อมต่อในซอฟต์แวร์ของคุณไม่น้อยกว่า 10 วินาที ไทม์เอาต์การอ่านไม่น้อยกว่า 30 วินาที
- โปรโตคอลในแอปพลิเคชัน (HTTP หรือ SOCKS5) ตรงกับพอร์ตที่ผ่านการตรวจสอบผ่าน curl
- ในไฟร์วอลล์มีกฎอนุญาตเฉพาะเจาะจง ไม่ใช่ปิดการป้องกันทั้งหมด
- IP ภายนอกของคุณตรงกับรายการที่อนุญาตหรือใช้การยืนยันตัวตนด้วยรหัสผ่าน
- จำนวนการเชื่อมต่อขนานในแอปพลิเคชันต่ำกว่าขีดจำกัดของแพ็กเกจ
- สำรองข้อมูลการตั้งค่าไฟร์วอลล์และเราเตอร์ไว้ในกรณีย้อนกลับ
การทดสอบโหลด
คำขอเดี่ยวเป็นเรื่องหนึ่ง แต่การทำงานจริงคือหลายสิบคำขอติดต่อกัน มาทำการทดสอบสั้นๆ
- เรียกใช้ในเทอร์มินัลลูป 20 คำขอ ใน macOS และ Linux:
ใน PowerShell ใช้ลูป 1..20 | ForEach-Object กับคำสั่ง curl เดียวกันข้างในfor i in $(seq 1 20); do curl -x http://login:password@proxy.example.net:30001 -s -o /dev/null -w "%{http_code} %{time_total}\n" https://api.ipify.org; done - ในผลลัพธ์คุณจะเห็น 20 บรรทัดที่มีรหัสตอบกลับและเวลา รหัสทั้งหมดควรเป็น 200 และเวลาไม่ควรเกิน 5-6 วินาที
- หากหนึ่งหรือสองคำขอจากยี่สิบใช้เวลามากกว่า ถือว่ายอมรับได้สำหรับเครือข่ายมือถือ หากทุกคำขอที่สามหมดเวลา กลับไปที่ขั้นตอนที่ 6 และตรวจสอบขีดจำกัดการเชื่อมต่อและการหมุน
ทดสอบในแอปพลิเคชันจริง
- เปิดโปรไฟล์เบราว์เซอร์แอนตี้ดีเทกต์ที่ตั้งค่าพร็อกซีและกดตรวจสอบการเชื่อมต่อ ผลลัพธ์ควรมาถึงใน 2-4 วินาทีและแสดง IP ของผู้ให้บริการมือถือ
- เปิดหน้าหนักๆ เช่นฟีดโซเชียลมีเดีย มันควรโหลดเสร็จใน 10-15 วินาที
- เปิดแท็บทิ้งไว้ 10 นาทีและรีเฟรชหน้า หากโหลดได้ การเชื่อมต่อทนต่อการหยุดชั่วคราวและไม่ขาดจากการไม่ใช้งาน
- สำหรับสคริปต์: เรียกใช้งานจริง 50-100 คำขอและดูเปอร์เซ็นต์ความสำเร็จ เป้าหมายความสำเร็จ: ไม่น้อยกว่า 95 เปอร์เซ็นต์โดยไม่มีการลองใหม่
ตัวชี้วัดความสำเร็จ: พอร์ตเข้าถึงได้ เวลาตอบสนองคาดเดาได้ แอปพลิเคชันไม่บ่นเรื่องไทม์เอาต์ใน 30 นาทีการทำงาน และคุณรู้แน่นอนว่าขั้นตอนใดจากหกขั้นตอนเป็นสาเหตุของปัญหา อย่างหลังมีค่ามาก: ครั้งต่อไปคุณจะเริ่มวินิจฉัยจากขั้นตอนนั้นเลย
ข้อผิดพลาดทั่วไปและวิธีแก้ไข
ที่นี่รวบรวมสถานการณ์ที่ผู้ใช้พร็อกซีมือถือพบบ่อยที่สุด รูปแบบ: สิ่งที่คุณเห็น ทำไมจึงเกิดขึ้น ต้องทำอย่างไร
พร็อกซีทำงานจากโทรศัพท์ แต่ไม่ทำงานจากคอมพิวเตอร์
สาเหตุ: ไฟร์วอลล์หรือแอนตี้ไวรัสบนคอมพิวเตอร์บล็อกการเชื่อมต่อขาออกไปยังพอร์ตที่ไม่มาตรฐาน หรือ IP บ้านของคุณไม่ตรงกับรายการที่อนุญาต ในขณะที่โทรศัพท์ยืนยันตัวตนด้วยวิธีอื่น
วิธีแก้: ทำการทดสอบด่วนโดยปิดไฟร์วอลล์จากขั้นตอนที่ 4 หากไม่ช่วย ให้ตรวจสอบ IP ภายนอกของคอมพิวเตอร์กับรายการที่อนุญาตตามคำแนะนำในขั้นตอนที่ 6
เชื่อมต่อได้ แต่หน้าเว็บไม่โหลด
สาเหตุ: คุณระบุพอร์ต HTTP ในขณะที่แอปพลิเคชันคาดหวัง SOCKS5 หรือในทางกลับกัน การเชื่อมต่อเปิดขึ้น แต่แอปพลิเคชันและพร็อกซีพูดภาษาต่างกัน และข้อมูลไม่ผ่าน
วิธีแก้: ตรวจสอบทั้งสองโปรโตคอลผ่าน curl ด้วยคีย์ http:// และ socks5:// และตั้งค่าในแอปพลิเคชันตามที่ทำงานได้
ทำงานได้หนึ่งอาทิตย์ แล้วหยุดโดยไม่มีการเปลี่ยนแปลงจากฝั่งคุณ
สาเหตุ: IP ภายนอกของผู้ให้บริการอินเทอร์เน็ตของคุณเปลี่ยน และในแดชบอร์ดพร็อกซีตั้งการยืนยันตัวตนด้วย IP ทางเลือกที่สอง: การอัปเดตแอนตี้ไวรัสเพิ่มกฎบล็อกใหม่
วิธีแก้: อัปเดตรายการที่อนุญาตหรือเปลี่ยนไปใช้การยืนยันตัวตนด้วยรหัสผ่าน ตรวจสอบรายการกฎบล็อกในไฟร์วอลล์ตามคำแนะนำในขั้นตอนที่ 4
ไทม์เอาต์เฉพาะช่วงเย็น
สาเหตุ: ความแออัดของเครือข่ายมือถือในภูมิภาคที่ตั้งโมเด็มพร็อกซี นี่คือลักษณะของอินเทอร์เน็ตมือถือ ไม่ใช่การเสีย
วิธีแก้: เพิ่มไทม์เอาต์การอ่านเป็น 45-60 วินาทีในช่วงเย็น เพิ่มการลองใหม่ และย้ายงานหนักไปตอนเช้าหากเป็นไปได้
ทุกคำขอที่สิบหลุดตามไทม์เอาต์
สาเหตุ: คำขอตรงกับจังหวะการหมุน IP อัตโนมัติ หรือเกินขีดจำกัดการเชื่อมต่อขนาน
วิธีแก้: เปลี่ยนการหมุนเป็นการเปลี่ยนตามลิงก์และเรียกมันระหว่างชุดคำขอ ลดจำนวนเธรดเหลือ 5-10
ที่ออฟฟิศไม่ทำงาน ที่บ้านทำงาน
สาเหตุ: เกตเวย์องค์กรปล่อยเฉพาะพอร์ต 80 และ 443
วิธีแก้: ขอให้ผู้ดูแลระบบอนุญาต IP และพอร์ตเฉพาะ หรือขอพอร์ตจากช่วงมาตรฐานจากผู้ให้บริการพร็อกซี
Test-NetConnection แสดง True แต่เบราว์เซอร์ยังค้าง
สาเหตุ: พอร์ตเปิด แต่ในเบราว์เซอร์ตั้งพอร์ตอื่น ที่อยู่อื่น หรือมีการยกเว้นระบบที่ทำให้ทราฟฟิกเลี่ยงพร็อกซี นอกจากนี้ส่วนขยายสำหรับพร็อกซีอาจขัดแย้งกับการตั้งค่าระบบ
วิธีแก้: ตรวจสอบที่อยู่และพอร์ตในเบราว์เซอร์ทีละตัวอักษรกับที่คุณตรวจสอบด้วยคำสั่ง ปิดส่วนขยายทั้งหมดที่เกี่ยวข้องกับพร็อกซีและตั้งค่าพร็อกซีด้วยวิธีเดียว
หน้าเล็กเปิดได้ หน้าใหญ่ค้าง
สาเหตุ: MTU ผิดบนเราเตอร์หรือของผู้ให้บริการ แพ็กเก็ตขนาดใหญ่ไม่ผ่าน
วิธีแก้: หา MTU ด้วยคำสั่ง ping พร้อมแฟล็ก -f จากขั้นตอนที่ 5 และตั้งค่าในเราเตอร์
ความสามารถเพิ่มเติมสำหรับผู้ใช้ขั้นสูง
หากการเชื่อมต่อพื้นฐานกลับมาและคุณต้องการควบคุมมากขึ้น ส่วนนี้สำหรับคุณ ที่นี่มีเครื่องมือและแนวทางที่เปลี่ยนการวินิจฉัยครั้งเดียวให้เป็นการติดตามต่อเนื่อง
ดูแพ็กเก็ต: Wireshark และ tcpdump
เมื่อคำสั่งจากขั้นตอนหลักไม่ให้คำตอบที่ชัดเจน คุณสามารถดูทราฟฟิกเครือข่ายโดยตรง
- ใน Linux หรือ macOS เรียกใช้:
ใน Windows ติดตั้ง Wireshark และในตัวกรองการแสดงผลพิมพ์ ip.addr == 185.10.20.30 and tcp.port == 30001sudo tcpdump -i any host 185.10.20.30 and port 30001 -nn - เรียกใช้การทดสอบพอร์ตจากขั้นตอนที่ 2 และดูแพ็กเก็ตที่จับได้
- หากคุณเห็นแพ็กเก็ตขาออกที่มีแฟล็ก SYN แต่ไม่มี SYN-ACK ตอบกลับ แพ็กเก็ตของคุณออกไป แต่การตอบกลับไม่กลับมา การบล็อกอยู่ที่ไหนสักแห่งนอกคอมพิวเตอร์
- หากไม่มีแพ็กเก็ต SYN เลย ไฟร์วอลล์ท้องถิ่นทิ้งพวกมันก่อนออกสู่เครือข่าย
- หากตอบกลับด้วย RST พอร์ตบนเซิร์ฟเวอร์ปิดหรือเซิร์ฟเวอร์ปฏิเสธคุณโดยเฉพาะ
การลองใหม่อัตโนมัติด้วยการหน่วงเพิ่มขึ้น
เครือข่ายมือถือไม่เสถียรโดยธรรมชาติ แทนที่จะล้มเหลวที่ไทม์เอาต์แรก ให้ตั้งการลองใหม่ด้วยการหน่วงแบบเอกซ์โพเนนเชียล: ครั้งแรกใน 1 วินาที ครั้งที่สองใน 2 ครั้งที่สามใน 4 ใน Python ทำได้ผ่านอะแดปเตอร์กับคลาส Retry จาก urllib3 ใน Node.js ผ่านแพ็กเกจ axios-retry การลองใหม่สามครั้งด้วยรูปแบบนี้ขจัดไทม์เอาต์สุ่ม 90 เปอร์เซ็นต์โดยไม่สูญเสียข้อมูล
การเชื่อมต่อถาวรและพูล
การเชื่อมต่อ TCP ใหม่แต่ละครั้งผ่านพร็อกซีมือถือใช้เวลา 100-500 มิลลิวินาทีในการสร้าง หากสคริปต์ของคุณเปิดการเชื่อมต่อใหม่ทุกคำขอ คุณจะเสียเวลาและชนขีดจำกัดเร็วขึ้น ใช้เซสชัน: ใน Python requests.Session ใน Node.js เอเจนต์ที่มี keepAlive: true การเชื่อมต่อเดียวจะถูกนำกลับมาใช้สำหรับหลายสิบคำขอ
การติดตามการเข้าถึง
ตั้งการตรวจสอบง่ายๆ ทุกนาที: สคริปต์ส่งคำขอผ่านพร็อกซีและบันทึกเวลาตอบสนองและรหัส ในหนึ่งอาทิตย์คุณจะได้ภาพว่าพร็อกซีเร็วที่สุดในชั่วโมงใด และเมื่อเจอไทม์เอาต์ สิ่งนี้จะช่วยวางแผนโหลดและเห็นการเสื่อมถอยล่วงหน้า ไม่ใช่รู้จากงานที่พัง
*/1 * * * * curl -x http://login:password@proxy.example.net:30001 -s -o /dev/null -m 20 -w "$(date +%H:%M) %{http_code} %{time_total}\n" https://api.ipify.org >> /var/log/proxy-check.logDNS ผ่านพร็อกซี
ตามค่าเริ่มต้น แอปพลิเคชันบางตัวแปลงชื่อโดเมนในเครื่อง ไม่ใช่ผ่านพร็อกซี สิ่งนี้อาจนำไปสู่การรั่วไหลของข้อมูลและสถานการณ์ที่ DNS ท้องถิ่นส่งคืนที่อยู่ที่ไม่สามารถเข้าถึงได้จากเครือข่ายมือถือ ในการตั้งค่าเบราว์เซอร์และแอนตี้ดีเทกต์ มองหาตัวเลือก "DNS ผ่านพร็อกซี" หรือใช้โปรโตคอล socks5h แทน socks5 ใน curl และ Python: ตัวอักษร h หมายความว่าพร็อกซีเองจะแปลงชื่อ
เปลี่ยนพอร์ตเป็นมาตรฐาน
หากคุณทำงานจากเครือข่ายต่างๆ บ่อยครั้ง สอบถามผู้ให้บริการว่าสามารถกำหนดพอร์ตพร็อกซี 443 หรือ 8080 ได้หรือไม่ พอร์ตเหล่านี้เปิดเกือบทุกที่ และคุณไม่ต้องต่อสู้กับไฟร์วอลล์องค์กรทุกครั้ง
การตั้งค่าการหมุนอย่างละเอียด
สถานการณ์ขั้นสูง: เชื่อมโยงการเปลี่ยน IP กับตรรกะของแอปพลิเคชัน ก่อนเริ่มชุดคำขอใหม่ สคริปต์เรียกใช้ลิงก์เปลี่ยน IP รอ 10-15 วินาที ตรวจสอบผ่าน api.ipify.org ว่าที่อยู่เปลี่ยนจริง แล้วจึงเริ่มทำงาน วิธีนี้คุณจะขจัดไทม์เอาต์จากการที่คำขอตรงกับการหมุนโดยสิ้นเชิง
เคล็ดลับ: เพิ่มในล็อกของแต่ละคำขอไม่เพียงเวลา แต่ยังรวมถึง IP พร็อกซีปัจจุบัน เมื่อเดือนหน้าคุณจะวิเคราะห์ว่าทำไมตัวชี้วัดลดลง ความสัมพันธ์ระหว่าง IP เฉพาะกับไทม์เอาต์จะบอกทันทีว่าที่อยู่ใดของผู้ให้บริการมีปัญหา
FAQ: คำถามที่พบบ่อยเกี่ยวกับการวินิจฉัย
พร็อกซีเซิร์ฟเวอร์ไม่ตอบสนอง แต่ ping ผ่าน หมายความว่าอย่างไร?
Ping ตรวจสอบเฉพาะการเข้าถึง IP ผ่านโปรโตคอล ICMP ไม่ใช่การเปิดพอร์ต เซิร์ฟเวอร์อาจมีชีวิตและตอบ ping แต่พอร์ตพร็อกซีถูกกรองโดยไฟร์วอลล์หรือบริการบนพอร์ตนั้นไม่ได้ทำงาน ตรวจสอบพอร์ต TCP ด้วยคำสั่งจากขั้นตอนที่ 2 เสมอ
ควรรอนานแค่ไหนก่อนที่จะถือว่าพร็อกซีไม่ตอบสนอง?
สำหรับการสร้างการเชื่อมต่อกับพร็อกซีมือถือ ปกติไม่เกิน 1 วินาที ขีดจำกัด 10 วินาที สำหรับการรับข้อมูล ปกติไม่เกิน 5 วินาที ขีดจำกัด 30-45 วินาที หากการเชื่อมต่อไม่ถูกสร้างใน 10 วินาที การรอต่อไปก็ไร้ความหมาย: การตอบกลับจะไม่มา
ปิดไฟร์วอลล์แล้วทำงานได้เลยได้ไหม?
ไม่ได้ การปิดการป้องกันทำได้เฉพาะหนึ่งนาทีเพื่อทดสอบสมมติฐาน หลังจากนั้นสร้างกฎเฉพาะเจาะจงสำหรับแอปพลิเคชันหรือพอร์ตเฉพาะตามที่อธิบายในขั้นตอนที่ 4 และเปิดไฟร์วอลล์กลับ คอมพิวเตอร์ที่ไม่มีการป้องกันในเครือข่ายเป็นความเสี่ยงต่อบัญชีและข้อมูลของคุณ
ทำไมพร็อกซีทำงานในเบราว์เซอร์หนึ่งแต่ไม่ทำงานในอีกเบราว์เซอร์หนึ่ง?
มักเป็นเพราะเบราว์เซอร์หนึ่งใช้การตั้งค่าพร็อกซีของระบบ แต่อีกเบราว์เซอร์ใช้ของตัวเอง และตั้งค่าข้อมูลต่างกัน ทางเลือกที่สอง: ไฟร์วอลล์อนุญาตไฟล์เรียกใช้งานหนึ่งและไม่อนุญาตอีกไฟล์ ตรวจสอบการตั้งค่าของทั้งสองเบราว์เซอร์และรายการกฎไฟร์วอลล์
จะรู้ได้อย่างไรว่าปัญหาคือการหมุน IP ไม่ใช่การตั้งค่าของฉัน?
บันทึกเวลาของทุกไทม์เอาต์ภายในหนึ่งชั่วโมงและเปรียบเทียบกับช่วงการหมุนจากแดชบอร์ด หากไทม์เอาต์มาเป็นระยะเดียวกับการเปลี่ยน IP นี่คือการหมุน เปลี่ยนไปใช้การเปลี่ยนตามลิงก์ และปัญหาจะหายไป
จำเป็นต้องใช้เทอร์มินัลหรือไม่? มีเครื่องมือแบบกราฟิกไหม?
เทอร์มินัลเร็วกว่าและแม่นยำกว่า แต่มีทางเลือก ในเบราว์เซอร์แอนตี้ดีเทกต์มีการตรวจสอบพร็อกซีในตัวพร้อมแสดงเวลาตอบสนอง มีโปรแกรมเดสก์ท็อปสำหรับตรวจสอบรายการพร็อกซีพร้อมตัวบ่งชี้พอร์ตที่เปิด อย่างไรก็ตาม สำหรับการค้นหาสาเหตุเฉพาะของคุณ เทอร์มินัลไม่สามารถทดแทนได้: มันแสดงว่าการเชื่อมต่อหยุดที่ขั้นตอนใด
ทำอย่างไรหากผ่านทั้งหกขั้นตอนแล้วแต่ปัญหายังอยู่?
เขียนถึงฝ่ายสนับสนุนของผู้ให้บริการพร็อกซีและแนบ: ผลลัพธ์ Test-NetConnection หรือ nc, ผลลัพธ์ curl พร้อมคีย์ -v, ผลลัพธ์การติดตามเส้นทาง, IP ภายนอกของคุณ, เวลาที่ลอง และข้อมูลว่าพร็อกซีทำงานจากเครือข่ายอื่นหรือไม่ ด้วยข้อมูลเหล่านี้ ผู้เชี่ยวชาญจะหาสาเหตุได้ในคำตอบเดียว ไม่ใช่ห้าคำถามเพื่อขอข้อมูลเพิ่ม
ต้องรีสตาร์ทคอมพิวเตอร์หลังเปลี่ยนกฎไฟร์วอลล์หรือไม่?
ไม่ กฎไฟร์วอลล์ของ Windows, macOS และ Linux มีผลทันที การรีสตาร์ทจำเป็นเฉพาะเราเตอร์หลังเปลี่ยน MTU หรือโปรไฟล์ความปลอดภัย และก็ไม่ใช่ทุกโมเดล
สามารถใช้แนวทางเดียวกันกับพร็อกซีดาต้าเซ็นเตอร์ได้หรือไม่?
ได้ ขั้นตอนที่ 1 ถึง 5 ใช้ได้กับพร็อกซีทุกประเภท สิ่งที่แตกต่างคือขั้นตอนที่ 3: พร็อกซีดาต้าเซ็นเตอร์ตอบเร็วกว่า และสามารถตั้งไทม์เอาต์น้อยกว่า และขั้นตอนที่ 6: พร็อกซีดาต้าเซ็นเตอร์ไม่มีการหมุนผ่านการเชื่อมต่อโมเด็มใหม่ จึงไม่มีการหยุดชั่วขณะเมื่อเปลี่ยน IP
บทสรุป
มาสรุปกัน คุณได้เรียนรู้ที่จะไม่ตื่นตระหนกเมื่อมีข้อความว่าพร็อกซีเซิร์ฟเวอร์ไม่ตอบสนอง แต่จะวิเคราะห์สถานการณ์ตามสายโซ่ ก่อนอื่นคุณระบุว่าพร็อกซีทำงานจากที่ใดที่หนึ่งหรือไม่ จากนั้นตรวจสอบว่าพอร์ตเปิดจากอุปกรณ์ของคุณหรือไม่ จัดการไทม์เอาต์และเข้าใจความแตกต่างระหว่างไทม์เอาต์การเชื่อมต่อกับไทม์เอาต์การอ่าน ตรวจสอบไฟร์วอลล์และแอนตี้ไวรัสและสร้างกฎเฉพาะเจาะจงแทนการปิดการป้องกัน ศึกษาเราเตอร์ MTU และเกตเวย์องค์กร และสุดท้ายยืนยันว่าพร็อกซีเองยอมรับคุณโดยเฉพาะ: รายการที่อนุญาต โมเด็ม การหมุน ขีดจำกัด
ผลลัพธ์หลักไม่ใช่แค่การเชื่อมต่อกลับมา แต่คือคุณมีวิธีการ ตอนนี้ ครั้งต่อไปที่มีอะไรค้าง คุณจะไม่เดาและเปลี่ยนการตั้งค่าแบบสุ่ม คุณจะเปิดเทอร์มินัล ทำสองคำสั่ง และรู้ภายในหนึ่งนาทีว่าสายโซ่ขาดตรงส่วนไหน
ทำอะไรต่อไป
- บันทึกไฟล์ที่มีคำสั่งที่ใช้ได้และข้อมูลพร็อกซีของคุณไว้ในที่ที่สะดวก นี่คือชุดปฐมพยาบาลของคุณ
- เปลี่ยนการยืนยันตัวตนเป็นชื่อผู้ใช้และรหัสผ่าน หากยังใช้รายการที่อนุญาตจากคอมพิวเตอร์ที่บ้าน
- ตรวจสอบไทม์เอาต์ในทุกแอปพลิเคชันที่ทำงานผ่านพร็อกซีมือถือและปรับให้เป็นค่าที่แนะนำ
- ตั้งการติดตามทุกนาทีจากส่วนขั้นสูงอย่างน้อยบนพร็อกซีหนึ่งตัว เพื่อเห็นภาพความเสถียรจริงในหนึ่งอาทิตย์
จะพัฒนาต่อไปอย่างไร
ระดับถัดไปคือการจัดการความล้มเหลวอัตโนมัติ: การลองใหม่ด้วยการหน่วงเพิ่มขึ้น การหมุนที่ควบคุมได้ พูลการเชื่อมต่อ และการบันทึกทุกคำขอพร้อมเชื่อมโยงกับ IP เมื่อเชี่ยวชาญสิ่งนี้แล้ว คุณจะไม่สังเกตเห็นไทม์เอาต์เดี่ยวๆ อีกเลย: ระบบของคุณจะจัดการมันเอง และคุณจะเห็นเพียงตัวชี้วัดสุดท้าย ขอให้โชคดีในการทำงาน และขอให้พร็อกซีของคุณตอบสนองทุกครั้งในครั้งแรก