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

การบล็อกและการเชื่อมต่อใหม่เป็นการตัดสินใจคนละเรื่อง

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

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

โปรไฟล์เดียวกันทำงานต่างกันในสองไคลเอนต์

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

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

การตั้งค่าแพลตฟอร์มที่ดูคล้ายกันไม่เท่ากัน

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

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

รันหนึ่งเหตุการณ์ต่อครั้งและบันทึกรหัส

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

ip link set tun0 down
curl -s -o /dev/null -w "%{http_code}\n" --max-time 5 https://example.com
ip -brief address show tun0

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

What I doWhat I watchEvidence to keep
Bring the tunnel down by handWhether a fresh request fails at onceThe HTTP code and the client state at that second
Choose Disconnect in the clientWhether ordinary access returns on purposeThe same request succeeding with no tunnel up
Quit the app, then rebootWhether the block outlives the clientA request made from a clean boot
Move from Wi-Fi to cellularWhether DNS and IPv6 follow the policyThe resolver answer, the route table and the code again

ข้อยกเว้น พอร์ทัลแขก และสิ่งที่การบล็อกทำไม่ได้

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

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

resolvectl query example.com
ss -tunp | grep -v tun0

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