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

พกพาครอบคลุมสัญญาสามอย่างที่ต่างกัน และมีเพียงอย่างเดียวที่ฟรี

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

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

ค้นหาตัวช่วยที่มีสิทธิ์พิเศษซึ่งไคลเอนต์จะเรียก

แทบไม่มีไคลเอนต์ VPN ใดย้ายแพ็กเก็ตด้วยตัวเอง บน Windows เส้นทางข้อมูลผ่านตัวกรอง WFP และ Base Filtering Engine บน macOS ผ่านผู้ให้บริการ NetworkExtension ที่ผู้ใช้อนุมัติในการตั้งค่าระบบ และบน Linux ผ่านอุปกรณ์ tun พร้อมสแต็กเส้นทาง ไฟล์ไบนารีที่คุณคัดลอกมาเป็นพื้นผิวควบคุมสำหรับองค์ประกอบเหล่านั้น ไม่ใช่สิ่งทดแทน ควรถามว่าไคลเอนต์คาดหวังองค์ประกอบใด แล้วยืนยันว่าติดตั้งอยู่ กำลังทำงาน และบัญชีของคุณใช้งานได้

Linux เป็นที่ที่ง่ายที่สุดในการพิสูจน์ข้อนี้ เพราะการตรวจสอบคือการเรียกใช้ระบบเพียงครั้งเดียว การเปิด /dev/net/tun และขออุปกรณ์จากเคอร์เนลต้องใช้ CAP_NET_ADMIN และ เอกสารของเคอร์เนลเกี่ยวกับ TUN/TAP ระบุทั้งกฎความเป็นเจ้าของและความสามารถ เรียกใช้การตรวจสอบด้วยบัญชีที่จะเปิดไคลเอนต์ ไม่ใช่ในฐานะ root

ls -l /dev/net/tun
ip tuntap add dev vpntest mode tun
ip link delete vpntest

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

ทดสอบการเปลี่ยนแปลงเส้นทางและตัวแก้ไขชื่อก่อนการเชื่อมต่อครั้งแรก

อุโมงค์แบบแยกส่วนทำให้การเชื่อมต่อกลายเป็นการตัดสินใจเรื่องเส้นทาง ขณะที่อุโมงค์แบบเต็มทำให้มันกลายเป็นการแทนที่เส้นทางเริ่มต้น ทั้งสองอย่างเป็นการเขียนลงในสแต็กเครือข่ายของโฮสต์ และทั้งสองอย่างล้มเหลวสำหรับบัญชีที่ไม่มีสิทธิ์พิเศษ แม้ไคลเอนต์จะเริ่มต้นอย่างสะอาด ตัวแก้ไขชื่อคือการเขียนครั้งที่สาม และบนโฮสต์ systemd มักเป็นตัวที่พังเป็นตัวสุดท้าย ลำดับนี้สำคัญเมื่อคุณตัดสินใจว่าจะลงทุนติดตั้งแบบยกระดับสิทธิ์ที่ไหน

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

ip route add 10.20.0.0/16 dev vpntest
ip route del 10.20.0.0/16
resolvectl query intranet.example.internal

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

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

ตัดสินใจว่าอะไรต้องอยู่รอดหลังจบเซสชัน

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

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

ip -brief addr show
ip route show table main
resolvectl status

อะไรก็ตามที่มีอยู่ในการจับภาพครั้งที่สองและไม่มีในการจับภาพครั้งแรกต้องมีเจ้าของ ไม่ว่าไคลเอนต์จะลบมันตอนออก หรือคุณลบมันด้วยคำสั่งเดิมที่สร้างมันขึ้นมา และการลบนั้นเป็นของการบันทึกการติดตั้งใช้งาน ไม่ใช่ความทรงจำของใครบางคนเกี่ยวกับสิ่งที่เกิดขึ้น บน Windows การอ่านที่เทียบเท่าคือ Get-NetAdapter, Get-NetRoute และ Get-DnsClientServerAddress ซึ่งไม่ต้องยกระดับสิทธิ์แต่แสดงสิ่งที่ตกค้างเหมือนกัน

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