ทำไมป้ายชื่อประเทศของ VPN ไม่ใช่ที่อยู่ที่คุณออกจาก
ช่องหนึ่งในรายการ ที่อยู่ที่ถูกกำหนดเส้นทาง และความเห็นของแอปอาจไม่ตรงกันก็ได้ ระบุว่าคุณกำลังอ่านอันไหนก่อนจะบอกว่าทางออกถูกติดป้ายผิด
คุณเลือกประเทศ เชื่อมต่อ แล้วเว็บไซต์ก็ทักทายคุณในอีกประเทศหนึ่ง ป้ายในรายการไม่เคยสัญญาอะไรเกี่ยวกับที่อยู่ที่คุณจะออกไปเลย: มันคือช่องที่ใครบางคนเผยแพร่ มาจากวิธีที่คุณไม่เคยเห็น การถือว่าช่องนั้นเป็นที่อยู่คือจุดที่ความสับสนเริ่มต้น
มีสามสิ่งแยกกันที่ถือค่าประเทศ และมันอาจไม่ตรงกันโดยไม่มีใครโกหก การแยกแยะสิ่งเหล่านั้นทำให้ความไม่ตรงกันวินิจฉัยได้แทนที่จะเป็นเรื่องลึกลับ
สามสิ่งที่แตกต่างกันถือป้ายชื่อประเทศ
อย่างแรกคือช่องของไดเรกทอรีเอง ซึ่งอาจเป็นการรายงานโดยผู้ให้บริการเอง อนุมานจากฐานข้อมูลที่อยู่ หรือคัดลอกมาเฉย ๆ ตอนสร้างรายการ อย่างที่สองคือที่อยู่เอง ซึ่งเป็นของเครือข่ายที่ประกาศมัน และนั่นคือสิ่งที่การค้นหาตำแหน่งทางภูมิศาสตร์ตอบโดยใช้ข้อมูลแผนที่ที่เผยแพร่ในรูปแบบที่อธิบายไว้ใน RFC 8805 อย่างที่สามคือสิ่งที่แอปตัดสินใจจะแสดง ซึ่งอาจมาจากฐานข้อมูลอื่น การตั้งค่าบัญชี หรือสิทธิ์ที่คุณให้บนอุปกรณ์ มีเพียงอย่างที่สองเท่านั้นที่เป็นข้อเท็จจริงของเครือข่าย และแม้แต่อันนั้นก็เป็นการค้นหาไม่ใช่การสังเกต
ความสอดคล้องระหว่างสามสิ่งนั้นจะเป็นเรื่องน่าพอใจและไม่มีที่ไหนบังคับ ความไม่ตรงกันเป็นหลักฐานว่ามันถูกอนุมานมาต่างกัน ไม่มากไปกว่านั้น
ตรวจที่อยู่ ไม่ใช่ธง
คำถามที่มีประโยชน์คือที่อยู่สาธารณะใดที่ทราฟฟิกของคุณออกไปจริง ๆ คำถามนี้ตอบได้จากไคลเอนต์ และไม่ขึ้นกับช่องใด ๆ ในรายการ เปรียบเทียบคำตอบกับคำนำหน้าที่คุณคาดไว้และกับสิ่งที่การค้นหาตำแหน่งทางภูมิศาสตร์บอกเกี่ยวกับมัน โดยแยกผลลัพธ์ทั้งสองไว้ในบันทึกของคุณ ช่องว่างระหว่างประเทศที่คาดไว้กับการค้นหาคือคำถามเรื่องเส้นทางหรือฐานข้อมูล ส่วนช่องว่างระหว่างการค้นหากับความเห็นของแอปก็เป็นคำถามเรื่องฐานข้อมูลอีกครั้ง
ทำการตรวจสองครั้งหากบริการมีทางออกหลายทางในภูมิภาคนั้น กลุ่มที่อยู่อาจแจกที่อยู่ต่างกันในการเชื่อมต่อที่ต่อเนื่องกัน และตัวอย่างหนึ่งก็อธิบายได้เพียงหนึ่งในนั้น
ความใกล้บนแผนที่ไม่ใช่ความใกล้ในเครือข่าย
ประเทศที่อยู่ใกล้อาจเป็นเส้นทางที่ยาวกว่าประเทศที่อยู่ไกล เพราะเส้นทางไฟเบอร์ไม่ได้เดินตามพรมแดน การเลือกโหนดตามความหน่วงหมายถึงการวัดปลายทางที่คุณสนใจ ไม่ใช่เลือกธงที่ใกล้ที่สุด ตรรกะเดียวกันใช้กับความจุ เพราะทางออกที่ภาระเบาสองประเทศห่างอาจชนะทางออกที่อิ่มตัวข้าง ๆ วัดก่อน ตัดสินทีหลัง และจดชั่วโมงไว้เพราะตัวเลขทั้งสองเปลี่ยน
ตำแหน่งยังไม่บอกอะไรเกี่ยวกับการเก็บรักษาหรือใครเป็นผู้ดำเนินการปลายทาง สิ่งเหล่านั้นต้องมีหลักฐานของตัวเอง ซึ่งคอลัมน์ประเทศเก็บไว้ไม่ได้
ยืนยันที่อยู่ทางออกด้วยตัวคุณเอง
ถามไคลเอนต์และบริการภายนอกว่าที่อยู่ของคุณหน้าตาเป็นอย่างไร แล้วถามตารางเส้นทางในเครื่องว่าเส้นทางนั้นถูกเลือกอย่างไร คำสั่งด้านล่างทำทั้งสามอย่าง และอย่างที่สามคือสิ่งที่คนมักข้าม เปลี่ยนชื่ออินเทอร์เฟซเป็นอุปกรณ์อุโมงค์ของคุณเอง
curl -sS https://api.ipify.org; echo
curl -sS --interface tun0 https://api.ipify.org; echo
ip route get 1.1.1.1
ip -6 addr show dev tun0
สองบรรทัดแรกควรตรงกัน และเมื่อไม่ตรง เส้นทางที่คุณคิดว่ามีอยู่ไม่ใช่เส้นทางที่พาทราฟฟิกของคุณไป การค้นหาเส้นทางระบุอินเทอร์เฟซและที่อยู่ต้นทางที่เคอร์เนลจะใช้สำหรับปลายทาง และนั่นคือกลไกเบื้องหลังที่อยู่ทางออก บรรทัด IPv6 สำคัญเพราะเครื่องหนึ่งอาจมีอุโมงค์สำหรับตระกูลหนึ่งและเส้นทางตรงสำหรับอีกตระกูลหนึ่ง ป้ายชื่อประเทศไม่ได้ครอบคลุมกรณีใด ๆ เหล่านั้นด้วยตัวมันเอง
เขียนที่อยู่ที่สังเกตได้ ความเห็นของฐานข้อมูล และการแสดงผลของแอปเป็นบันทึกแยกสามฉบับ จากนั้นความไม่ตรงกันครั้งถัดไปที่คุณพบจะระบุสาเหตุได้ง่าย