VPN ของคุณทำงานลื่นไหลอยู่ที่บ้าน แต่พอเช็กอินเข้าโรงแรมเท่านั้นแหละ มันก็หมุนค้าง "กำลังเชื่อมต่อ" อยู่อย่างนั้น รอเท่าไหร่ก็ไม่ไปไหน จริง ๆ แล้วไม่มีอะไรพังเลย — คุณแค่บังเอิญมาเจอเน็ตเวิร์กประเภทที่โหดร้ายกับ VPN ที่สุดเท่าที่มี และแอป VPN จำนวนมากไม่เคยถูกออกแบบมาให้รับมือกับมัน
บน guest network มีสามอย่างที่พังแยกกันคนละเรื่อง แถมยังซ้อนทับกันด้วย บทความนี้จะเล่าว่าแต่ละอย่างทำอะไร ทำไมแอปที่มีโปรโตคอลเดียวถึงค้างเฉย ๆ แทนที่จะฟ้อง error และควรเช็กอะไรบ้างก่อนออกทริปครั้งหน้า
Captive portal มาก่อนเสมอ

หน้าล็อกอินที่ให้กรอกหมายเลขห้องแล้วติ๊กยอมรับเงื่อนไข นั่นแหละคือ captive portal ตราบใดที่ยังผ่านหน้านี้ไม่สำเร็จ เน็ตเวิร์กจะดักแทบทุกอย่างที่เครื่องคุณส่งออกไป — ทราฟฟิกไปไม่ถึงไหนทั้งนั้นนอกจากตัว portal เอง VPN ที่เริ่มเชื่อมต่อก่อนจะผ่าน portal จึงไม่มีทางออกเลย และเพราะเน็ตเวิร์กกลืน packet ทิ้งไปเงียบ ๆ แอปจำนวนมากก็เลยนั่ง retry วนไปเรื่อย ๆ แทนที่จะบอกคุณว่าเกิดอะไรขึ้น
ทางแก้อยู่ที่ลำดับขั้นตอน ไม่ใช่การตั้งค่า: ต่อ Wi-Fi ก่อน เปิดเบราว์เซอร์แล้วโหลดหน้าเว็บอะไรก็ได้ (เข้าเว็บแบบ http:// ธรรมดาจะบังคับให้ portal เด้งขึ้นมา ถ้ามันไม่โผล่มาเอง) ล็อกอินให้เสร็จเรียบร้อย — แล้วค่อยเชื่อมต่อ VPN ถ้า VPN พยายามต่ออยู่ก่อนแล้ว ให้ตัดการเชื่อมต่อแล้วต่อใหม่หลังจัดการ portal เสร็จ
Guest network ฆ่า UDP แบบเงียบ ๆ

พอผ่าน portal มาได้ ปัญหาข้อที่สองคือสิ่งที่มองไม่เห็น guest network ของโรงแรม คาเฟ่ และออฟฟิศจำนวนมากบล็อกหรือบีบทราฟฟิก UDP อย่างหนัก — เป็นวิธีคุมแบนด์วิดท์และการใช้งานผิดประเภทที่ทื่อ ๆ แต่เจอได้บ่อยมาก การท่องเว็บยังรู้สึกปกติดี เพราะ HTTPS บน TCP พอร์ต 443 คือสิ่งเดียวที่ทุกเน็ตเวิร์กจำเป็นต้องปล่อยผ่าน การเชื่อมต่อเลยดูเหมือนไม่มีอะไรผิดปกติ แต่โปรโตคอล VPN ยุคใหม่ที่เร็วที่สุด — WireGuard และดีไซน์ที่อิง QUIC อย่าง Hysteria2 — วิ่งบน UDP และ UDP นี่แหละคือสิ่งที่โดน drop พอดี
เน็ตเวิร์กองค์กรมักเพิ่มชั้นที่สามเข้ามาอีก: deep packet inspection อุปกรณ์ DPI จับลายนิ้วมือทราฟฟิกจาก "รูปทรง" ของมัน — แพตเทิร์นของ handshake ขนาด packet จังหวะเวลา — และแยกโปรโตคอล VPN ออกมาได้แม้จะวิ่งบนพอร์ตที่ไฟร์วอลล์อนุญาต มันคือการกรองคลาสเดียวกับที่ไฟร์วอลล์ระดับประเทศใช้ แค่ย่อส่วนลงมาอยู่ในออฟฟิศ
ทำไม "กำลังเชื่อมต่อ…" ไม่มีวันจบบนแอปที่มีแต่ WireGuard
WireGuard วิ่งบน UDP อย่างเดียวเท่านั้น — ตัวโปรโตคอลไม่มีโหมด TCP เลย บนเน็ตเวิร์กที่ drop UDP, packet handshake ของ WireGuard ออกจากเครื่องคุณแล้วก็หายวับไปเฉย ๆ ไม่มี reply กลับมา — และที่สำคัญกว่านั้นคือไม่มี error กลับมาด้วย เพราะ UDP ที่โดน drop นั้นดูเหมือนเซิร์ฟเวอร์ที่แค่ตอบช้าทุกประการ แอปก็เลย retry แล้ว retry อีก หน้าจอขึ้น "กำลังเชื่อมต่อ" ไปจนกว่าคุณจะยอมแพ้ไปเอง
นี่ไม่ใช่บั๊กของแอปตัวไหนเป็นพิเศษ ตัว WireGuard เองเป็นโปรโตคอลที่ยอดเยี่ยม — เล็ก เร็ว ใช้คริปโตกราฟียุคใหม่ มันเป็นการตัดสินใจเชิงโปรดักต์ต่างหาก: แอปที่สร้างอยู่บนโปรโตคอล UDP-only ตัวเดียว จะไม่เหลือไพ่ในมือเลยเมื่อ UDP ตาย
ทางออกคือประตูบานที่ทุกเน็ตเวิร์กต้องเปิดทิ้งไว้
TCP พอร์ต 443 คือบ้านของ HTTPS และไม่มี guest network ไหนบล็อกมันได้โดยไม่ทำให้เว็บพังสำหรับแขกทุกคน โปรโตคอล VPN ที่วิ่งบน TCP 443 จึงยังใช้ได้ในเน็ตเวิร์กที่บล็อกแค่ UDP ส่วน VLESS+Reality วิ่งบน TCP 443 และทราฟฟิกดูเหมือนเว็บ HTTPS ทั่วไป นั่นคือคำอธิบายโปรโตคอล และเราไม่อ้างผลบนเน็ตเวิร์กที่ใช้ DPI บล็อก VPN
อีกครึ่งหนึ่งของเรื่องคือ fallback ต้องเป็นอัตโนมัติ แอปของ TUKTUKVPN มองเรื่องนี้เป็นบันได: ใช้โปรโตคอล UDP ที่เร็วกว่าเป็นตัวเลือกแรกเมื่อเน็ตเวิร์กเปิดทางให้ และเมื่อ probe ฝั่ง UDP เงียบไม่มีเสียงตอบ มันจะถอยลงมาใช้ VLESS+Reality บน TCP 443 ให้เอง — ไม่ต้องเปิดเมนูเลือกโปรโตคอล ไม่ต้องไปไล่อ่านกระทู้ในฟอรัม ไม่ว่าคุณจะใช้ VPN เจ้าไหนอยู่ คำถามที่ควรถามก่อนเดินทางคือ "มัน fallback ไป TCP 443 ได้ด้วยตัวเองไหม"
เช็กลิสต์ของนักเดินทาง
จัดการ captive portal ให้จบก่อนเปิด VPN: ต่อเน็ตเวิร์ก ล็อกอินผ่านเบราว์เซอร์ แล้วค่อยกดเชื่อมต่อ ถ้า VPN ค้าง retry อยู่ก่อนแล้ว ให้ปิดแล้วเปิดใหม่
ถ้า tunnel ค้างอยู่ที่ "กำลังเชื่อมต่อ" ให้สงสัย UDP ก่อนอย่างอื่นทั้งหมด อย่าเพิ่งลบแอปแล้วลงใหม่ — สลับไปใช้โปรโตคอลที่วิ่งบน TCP 443 หรือใช้แอปที่ fallback ให้อัตโนมัติ
เช็กรายการโปรโตคอลของ VPN ที่ใช้ก่อนออกทริป ไม่ใช่มาไล่ดูระหว่างทริป ถ้ามันมีแค่ WireGuard หรือโปรโตคอล UDP-only ตัวอื่น สักวัน Wi-Fi โรงแรมจะทำคุณติดแหง็กแน่นอน
ใช้เน็ตมือถือเป็นเครื่องมือวินิจฉัย ถ้า VPN ต่อติดทันทีบน 4G/5G แต่ต่อไม่ติดบน Wi-Fi ตัวนั้น ปัญหาอยู่ที่เน็ตเวิร์ก และไม่มีการตั้งค่าในแอปไหนไปแก้ไฟร์วอลล์ของเขาได้
และไม่ว่ายังไงก็ให้ถือว่าเน็ตเวิร์กนั้นเชื่อถือไม่ได้ไว้ก่อน tunnel ที่เข้ารหัสช่วยปกป้องทราฟฟิกของคุณบน Wi-Fi ที่ไม่เป็นมิตรก็จริง แต่พื้นฐานยังต้องทำเหมือนเดิม: อัปเดตอุปกรณ์ให้เป็นเวอร์ชันล่าสุดอยู่เสมอ และระวัง portal ที่ขอข้อมูลส่วนตัวมากเกินกว่าเหตุผลที่ควรจะเป็น
