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

อินเทอร์เฟซปรากฏขึ้นก่อนที่อะไรจะทำงาน

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

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

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

เส้นทางถูกติดตั้งโดยผู้ที่เป็นเจ้าของอุโมงค์

เส้นทางคือการเปลี่ยนแปลงที่สอง และความเป็นเจ้าของสำคัญกว่าเนื้อหา โปรไฟล์ NetworkManager ยูนิต systemd และไคลเอนต์ที่รันด้วยมือล้วนติดตั้งเส้นทางได้ และเมื่อสองในนั้นทำพร้อมกันจะเกิดตารางที่ไม่มีใครอธิบายได้ในภายหลัง

ip -br addr show
ip route show
ip -6 route show

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

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

ตัวแก้ไขชื่อเปลี่ยนมือ

DNS คือการเปลี่ยนแปลงที่สามและเป็นสิ่งที่มีแนวโน้มที่สุดที่จะถูกจัดการในที่ที่คุณไม่ได้ดู บนเดสก์ท็อป NetworkManager อาจส่งการตั้งค่าตัวแก้ไขชื่อตามการเชื่อมต่อ บนระบบที่ใช้ systemd-resolved การตั้งค่าจะถูกใช้ตามลิงก์ และ /etc/resolv.conf อาจเป็นสตับหรือลิงก์สัญลักษณ์ไม่ใช่ไฟล์ที่คุณควรแก้ไข

resolvectl status
readlink -f /etc/resolv.conf
cat /etc/resolv.conf

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

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

ผู้จัดการหนึ่งรายต่อการเชื่อมต่อ

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

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

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

สิ่งที่ต้องตรวจสอบเมื่อมันขึ้นแล้วแต่ไม่ทำงาน

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

nmcli connection show --active
nmcli device status
wg show

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

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

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