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

สี่ขั้นตอน สี่ความล้มเหลวที่ต่างกัน

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

StageLooks likeWhat it does not prove
Name resolutionfails in under a second, before any contactnothing about the server being up
Transportwaits the full timeout, then gives upnothing about the VPN service behind the port
Negotiationconnects, then stalls at handshakenothing about credentials
Logina reply arrives and is rejected or hangs on a promptnothing 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 ของโรงแรม ตัวแปรคือเส้นทางไม่ใช่เซิร์ฟเวอร์ ถ้าล้มเหลวทุกที่ ตัวแปรคือโปรไฟล์หรือปลายทาง ถ้าล้มเหลวเฉพาะเวลาหนึ่งของวัน บันทึกเวลาประทับและเปรียบเทียบกับเหตุการณ์ฝั่งเซิร์ฟเวอร์ก่อนสันนิษฐานอะไรเกี่ยวกับภาระ

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

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

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