VPN หมดเวลาเชื่อมต่อ: DNS การขนส่ง การเจรจา หรือการเข้าสู่ระบบ
การหมดเวลาหมายถึงเพียงกำหนดเวลาหนึ่งผ่านไปแล้ว เปรียบเทียบสี่ขั้นตอน การแปลงชื่อ การขนส่ง การเจรจา และการเข้าสู่ระบบ เพื่อดูว่าขั้นตอนใดเสร็จสิ้นเป็นลำดับสุดท้าย
“การเชื่อมต่อหมดเวลา” เป็นข้อผิดพลาดที่คลุมเครือที่สุดที่ไคลเอนต์ VPN พิมพ์ออกมาได้ หมายความว่าการทำงานหนึ่งครั้งพลาดกำหนดเวลา และทุกขั้นตอนตั้งแต่การแปลงชื่อจนถึงการตอบกลับการเข้าสู่ระบบมีกำหนดเวลา ไคลเอนต์ที่แสดงเฉพาะข้อความสุดท้ายทำให้ขั้นตอนดูเหมือนกัน ผู้คนจึงเพิ่มเวลา เปลี่ยนพอร์ต และติดตั้งโปรไฟล์ใหม่ ตามลำดับนั้น โดยไม่เรียนรู้อะไรเลย การเปรียบเทียบขั้นตอนเร็วกว่า: แต่ละขั้นตอนล้มเหลวคนละที่ และแต่ละความล้มเหลวทิ้งหลักฐานต่างชนิดกัน
สี่ขั้นตอน สี่ความล้มเหลวที่ต่างกัน
ลำดับคงที่แม้ไคลเอนต์จะซ่อนไว้: ชื่อต้องถูกแปลง ต้องสร้างการขนส่งไปยังที่อยู่ที่ได้ โปรโตคอลต้องเจรจาพารามิเตอร์และคีย์ และบัญชีต้องได้รับการพิสูจน์ตัวตน คู่มือ การแก้ไขปัญหาการเชื่อมต่อ ของ OpenVPN ทำตามลำดับเดียวกันสำหรับไคลเอนต์ของตน และตัวอื่นก็ทำตามอย่างใกล้ชิด การหมดเวลาในขั้นตอนที่สองกับในขั้นตอนที่สี่ไม่มีอะไรเหมือนกันนอกจากคำบนหน้าจอ
| Stage | Looks like | What it does not prove |
|---|---|---|
| Name resolution | fails in under a second, before any contact | nothing about the server being up |
| Transport | waits the full timeout, then gives up | nothing about the VPN service behind the port |
| Negotiation | connects, then stalls at handshake | nothing about credentials |
| Login | a reply arrives and is rejected or hangs on a prompt | nothing about reachability |
อ่านบันทึกหาบรรทัดสุดท้ายที่บ่งชี้ความคืบหน้า ไม่ใช่บรรทัดสุดท้ายก่อนเกิดข้อผิดพลาด ไคลเอนต์ส่วนใหญ่พิมพ์สิ่งที่เช่น ที่อยู่ที่แปลงแล้ว ซ็อกเก็ตที่สร้างแล้ว การจับมือที่เริ่มแล้ว หรือคำขอพิสูจน์ตัวตน และขั้นตอนที่ตามหลังบรรทัดนั้นคือขั้นตอนที่หมดเวลา
การแปลงชื่อล้มเหลวก่อนมีการติดต่อใด ๆ
ถ้าปลายทางไม่เคยถูกแปลง ไคลเอนต์ก็ไม่มีอะไรให้เชื่อมต่อ และไม่มีการทำงานของการขนส่งเกิดขึ้น ความล้มเหลวนั้นมักเกิดขึ้นทันทีไม่ใช่การหมดเวลาเต็ม และนั่นคือวิธีที่ถูกที่สุดในการแยกจากส่วนที่เหลือ ทดสอบชื่อด้วยตัวแปลงของระบบและตัวแปลงที่สอง แล้วเปรียบเทียบคำตอบทั้งสองก่อนสรุปว่าเซิร์ฟเวอร์ล่ม
ที่อยู่เก่าที่คัดลอกจากโพสต์ฟอรัมเป็นสาเหตุทั่วไปของการหมดเวลาที่ดูเหมือนปัญหาเซิร์ฟเวอร์ เพราะที่อยู่นั้นตอนนี้เป็นของอย่างอื่นหรือไม่มีอะไรเลย ใช้โปรไฟล์ปัจจุบันของผู้ให้บริการแทนการแทนที่ที่อยู่ที่เคยใช้ได้ การไม่มีคำตอบ ping ไม่ใช่หลักฐานทั้งสองทาง: ปลายทางจำนวนมากทิ้ง ICMP แต่ยังให้บริการได้ดีมาก
การตั้งค่าการขนส่งรอแพ็กเก็ตที่จะไม่มา
เมื่อ DNS ปกติดีแต่ไคลเอนต์ยังเผาเวลาทั้งหมด ชั้นการขนส่งคือผู้ต้องสงสัย บน TCP คุณทดสอบพอร์ตได้โดยตรง; Test-NetConnection บน Windows หรือ nc -vz บน Linux บอกว่ามีอะไรยอมรับการเชื่อมต่อหรือไม่ และนั่นมีประโยชน์กว่า ping บน UDP ทดสอบแบบเดียวกันไม่ได้ เพราะชั้นนั้นไม่มีการจับมือให้เสร็จสิ้น และความไม่สมมาตรนี้ทำให้เกิดข้อสรุปผิดมากมาย
สิ่งที่การทดสอบ TCP พิสูจน์ได้มีจำกัด: บริการที่ยอมรับพอร์ต 443 ไม่จำเป็นต้องเป็นผู้ฟัง VPN และปลายทางที่มีแต่ UDP ไม่มีพอร์ต TCP ให้ยอมรับอะไร การเขียนโปรไฟล์ใหม่จาก UDP เป็น TCP ไม่ได้สร้างผู้ฟังที่อีกฝั่ง แต่เปลี่ยนเฉพาะสิ่งที่ไคลเอนต์ของคุณรออยู่ ถ้าเครือข่ายกรองโปรโตคอล การเปลี่ยนแปลงก็ทำให้เกิดการหมดเวลาต่างออกไปในขั้นตอนเดิม
พอร์ทัลแบบ captive สมควรได้รับการตรวจสอบของตนเองในขั้นตอนนี้ จนกว่าพอร์ทัลจะอนุญาตอุปกรณ์ ทราฟฟิกขาออกจะไปที่พอร์ทัลและความพยายามสร้างอุโมงค์ก็เพียงค้างอยู่ ทำให้พอร์ทัลเสร็จในเบราว์เซอร์ก่อน แล้วลองอีกครั้ง และอย่าเปลี่ยนโปรไฟล์ในขณะที่พอร์ทัลยังค้างอยู่
การเจรจาและการเข้าสู่ระบบหมายความว่าเซิร์ฟเวอร์ตอบแล้ว
เมื่ออุโมงค์ไปถึงเซิร์ฟเวอร์ ไคลเอนต์เริ่มการจับมือและลักษณะของข้อผิดพลาดเปลี่ยนไป การหยุดที่นี่เกี่ยวกับความเข้ากันได้ ไม่ใช่การเข้าถึง: เวอร์ชันโปรโตคอลที่ไม่ตรงกัน การตั้งค่าการเข้ารหัสหรือช่องข้อมูลที่อีกฝั่งไม่ยอมรับ หรือโปรไฟล์ที่คาดหวังคุณสมบัติที่เซิร์ฟเวอร์ไม่ได้ให้ OpenVPN ย้ายค่าเริ่มต้นการเจรจาระหว่างเวอร์ชันหลักบ่อยพอที่โปรไฟล์ที่เขียนสำหรับรุ่นหนึ่งจะไปถึงเซิร์ฟเวอร์และยังยกไม่ขึ้น
การพิสูจน์ตัวตนเป็นขั้นตอนสุดท้ายและอ่านผิดได้ง่ายที่สุด การปฏิเสธอย่างชัดเจนคือคำตอบ ซึ่งหมายความว่าเส้นทางทำงานและปัญหาคือตัวตน ใบรับรอง หรือสถานะบัญชี การเข้าสู่ระบบครั้งเดียวผ่านเบราว์เซอร์เป็นกรณีที่สาม: ไคลเอนต์รอการกระทำที่คุณยังไม่ได้ทำ หรือเบราว์เซอร์ที่เปิดไม่ได้ และจะไม่มีอะไรมาถึงจนกว่าคุณจะทำขั้นตอนนั้นเสร็จ
เปรียบเทียบหลักฐานก่อนเปลี่ยนการลองใหม่
รักษาอุปกรณ์และโปรไฟล์ให้คงที่และเปลี่ยนทีละอย่าง เริ่มจากเครือข่าย ถ้าโปรไฟล์เดียวกันเชื่อมต่อผ่านฮอตสปอตโทรศัพท์และหมดเวลาบน Wi-Fi ของโรงแรม ตัวแปรคือเส้นทางไม่ใช่เซิร์ฟเวอร์ ถ้าล้มเหลวทุกที่ ตัวแปรคือโปรไฟล์หรือปลายทาง ถ้าล้มเหลวเฉพาะเวลาหนึ่งของวัน บันทึกเวลาประทับและเปรียบเทียบกับเหตุการณ์ฝั่งเซิร์ฟเวอร์ก่อนสันนิษฐานอะไรเกี่ยวกับภาระ
สำหรับบริการที่คุณดูแล การเปรียบเทียบที่ชี้ขาดคือความพยายามนั้นมาถึงหรือไม่ การเชื่อมต่อที่ไปถึงผู้ฟังแล้วหยุดอยู่เป็นของขั้นตอนการเจรจา ส่วนที่ไม่มีวันปรากฏในมุมมองของผู้ฟังเป็นปัญหาการขนส่งหรือการแปลงชื่อ และการปรับการลองใหม่ไม่ว่าจะมากเพียงใดก็ไม่ทำให้มันขยับ บันทึกของเซิร์ฟเวอร์ยังแยกการเข้าสู่ระบบที่ถูกปฏิเสธออกจากการหลุดแบบเงียบ ซึ่งเป็นความต่างระหว่างการแก้ไขตัวตนกับการแก้ไขไฟร์วอลล์
บันทึกเวอร์ชันไคลเอนต์ ชื่อโปรไฟล์ เวลาของความพยายามพร้อมเขตเวลา และข้อผิดพลาดที่มีประโยชน์ข้อแรกแทนบรรทัดสุดท้ายของการตัดการเชื่อมต่อ ลบกุญแจและวัสดุที่พกพาข้อมูลรับรองก่อนแบ่งปันข้อความที่ตัดตอนมา จากนั้นแก้ไขอย่างมีความหมายหนึ่งครั้งแล้วลองใหม่ เพราะกำหนดเวลาที่นานขึ้นช่วยได้เฉพาะการทำงานช้าที่มีเอกสารรองรับ และไม่ช่วยอะไรกับที่อยู่ผิดหรือพอร์ตที่ถูกบล็อก