NAT Traversal ใน VPN ทำงานอย่างไร
NAT traversal คือวิธีที่อุโมงค์ VPN ผ่านเราเตอร์บ้านและเครือข่ายผู้ให้บริการที่ซ่อนอุปกรณ์ไว้ มาดูแนวคิด ชนิดของ NAT และสิ่งที่ต้องเช็กเมื่อเชื่อมไม่ติด
อ่าน 10 นาทีอัปเดตเมื่อ 15 ต.ค. 2569โดย XPASS Editorial Team

คนส่วนใหญ่ไม่เคยนึกถึง NAT จนกว่าการเชื่อมต่อจะไม่ยอมทำงาน เราเตอร์ที่บ้าน เครือข่ายมือถือ และออฟฟิศล้วนแชร์ IP สาธารณะจำนวนน้อยให้อุปกรณ์จำนวนมาก ด้วยการแปลงที่อยู่เครือข่าย (NAT) เรื่องนี้มองไม่เห็นเลยเวลาท่องเว็บ แต่จะเห็นชัดเมื่อคุณพยายามสร้างอุโมงค์ตรงระหว่างอุปกรณ์สองเครื่อง ตั้งบริการจากที่บ้าน หรือสงสัยว่าทำไม VPN ออกอินเทอร์เน็ตได้แต่เข้าถึงกล่องเก็บไฟล์ของตัวเองไม่ได้
บทความนี้อธิบายแนวคิดเชิงปฏิบัติของ NAT traversal ใน VPN คือ NAT ทำอะไร ทำไมจึงขวางการเชื่อมต่อตรง เทคนิคที่ใช้ผ่านมันสำหรับอุโมงค์ที่ถูกต้อง และวิธีไล่แก้ปัญหา เป็นเรื่องเครือข่ายทั่วไป ไม่ได้เกี่ยวกับการหลบกฎเครือข่ายของใคร หากยังไม่แน่ใจว่าที่อยู่สาธารณะคืออะไร เริ่มจาก IP สาธารณะคืออะไร
NAT ทำอะไรจริง ๆ
ที่อยู่ IPv4 มีน้อย บ้านและออฟฟิศจึงใช้ที่อยู่ส่วนตัวภายใน ตามที่อธิบายใน RFC 1918 (เช่นที่อยู่ขึ้นต้นด้วย 192.168) ที่อยู่เหล่านี้ใช้บนอินเทอร์เน็ตสาธารณะไม่ได้ เราเตอร์นั่งอยู่ระหว่างสองโลกและทำหน้าที่แปล
เมื่อแล็ปท็อปที่ 192.168.1.20 เปิดการเชื่อมต่อไปยังเว็บไซต์ เราเตอร์จะ
- แทนที่ที่อยู่ต้นทางด้วยที่อยู่สาธารณะของตัวเอง
- เลือกพอร์ตสาธารณะที่ว่างสำหรับบทสนทนานี้
- จดลงตาราง "ที่อยู่ส่วนตัวกับพอร์ต X คือพอร์ตสาธารณะ Y กำลังคุยกับเว็บนั้น"
- เขียนแพ็กเก็ตคำตอบใหม่ให้ไปถึงแล็ปท็อป
ตารางนั้นคือ NAT mapping และเป็นหัวใจของเรื่อง mapping มีอยู่ก็เพราะแล็ปท็อปพูดก่อน ถ้าคนแปลกหน้าส่งแพ็กเก็ตมาที่ IP สาธารณะของคุณและไม่มีแถวที่ตรงกัน เราเตอร์ไม่รู้ว่ามันเป็นของเครื่องไหน จึงทิ้งไป นี่คือเหตุที่ NAT รู้สึกเหมือนการป้องกัน ทั้งที่ออกแบบมาเพื่อประหยัดที่อยู่ ไม่ใช่เพื่อกันผู้โจมตี

ทำไม NAT ขวางอุโมงค์ตรง
VPN แบบไคลเอนต์ไปเกตเวย์ธรรมดาไม่มีปัญหากับ NAT มือถือส่งแพ็กเก็ตแรกออกไปหาเกตเวย์ เราเตอร์สร้าง mapping และคำตอบของเกตเวย์ไหลกลับผ่านมัน เกตเวย์มี IP สาธารณะและพอร์ตที่รออยู่ จึงไม่ต้องถูกค้นหา
ปัญหาเกิดเมื่อไม่มีฝั่งใดติดต่อได้จากสาธารณะ
- แล็ปท็อปสองเครื่องในสองบ้านต้องการลิงก์เข้ารหัสตรงถึงกัน
- คนทำงานทางไกลต้องการเข้าถึงเครื่องที่บ้านซึ่งอยู่หลังเราเตอร์
- เกมหรือแอปโทรต้องการเส้นทางตรงระหว่างผู้เล่นสองคน
ทั้งสองฝั่งส่งออกได้ แต่ไม่มีใครรับแพ็กเก็ตแรกที่ไม่มีใครเรียก ต่างฝ่ายรอให้อีกฝั่งพูดก่อน NAT traversal คือกล่องเครื่องมือสำหรับทลายทางตันนี้
เทคนิคหลัก
การค้นหาที่อยู่ของตัวเอง
อุปกรณ์ต้องรู้ก่อนว่าตัวเองดูเป็นอย่างไรจากภายนอก ตัวช่วยบนอินเทอร์เน็ตสาธารณะตอบคำถามง่าย ๆ ว่า "แพ็กเก็ตนี้มาจากที่อยู่และพอร์ตอะไร" อุปกรณ์จะรู้ เช่น ว่าเราเตอร์ปรากฏเป็น IP และพอร์ตสาธารณะค่าใด นี่คือจุดประสงค์ของโปรโตคอลอย่าง STUN และเครื่องมืออุโมงค์จำนวนมากทำสิ่งคล้ายกันผ่านบริการประสานงานของตน
Hole punching
เมื่อรู้ที่อยู่และพอร์ตสาธารณะของแต่ละฝั่ง อุปกรณ์ทั้งสองส่งแพ็กเก็ตหากันในเวลาใกล้เคียงกัน แพ็กเก็ตขาออกของ A สร้าง mapping บนเราเตอร์ของ A ที่รอคำตอบจาก B และ B ทำเช่นเดียวกัน เมื่อแพ็กเก็ตของ A ถึงเราเตอร์ของ B จะมี mapping ที่ถูกสร้างโดยแพ็กเก็ตขาออกของ B เองอยู่แล้ว มันจึงถูกปล่อยเข้า "รู" คือคู่ของ mapping ที่ตรงกันซึ่งเปิดจากด้านใน
ตัวอย่างพร้อมเวลา เวลา 14:00:00 แล็ปท็อปทั้งสองรู้ที่อยู่สาธารณะของกันและกัน เวลา 14:00:01 ต่างส่งแพ็กเก็ตเล็ก ๆ แพ็กเก็ตแรกอาจถูกทิ้งเพราะ mapping ฝั่งตรงข้ามยังไม่พร้อม แต่ความพยายามครั้งที่สองหรือสามไม่นานหลังจากนั้นจะถูกรับ ถึง 14:00:03 อุโมงค์เข้ารหัสก็เริ่มการจับมือได้
Keepalive
mapping ไม่อยู่ตลอดไป เราเตอร์ลบแถวที่ว่างงานหลังประมาณครึ่งนาทีถึงไม่กี่นาที ขึ้นกับอุปกรณ์และโปรโตคอล แพ็กเก็ตเล็ก ๆ ที่ส่งทุก 15 ถึง 30 วินาทีรักษา mapping ไว้ได้ นี่คือเหตุที่เครื่องมืออุโมงค์มีการตั้งค่า keepalive และสำคัญที่สุดกับอุปกรณ์ที่ต้องติดต่อได้ในขณะที่เงียบอยู่
รีเลย์
เมื่อ hole punching ล้มเหลว รีเลย์คือทางสำรอง รีเลย์เป็นเครื่องสาธารณะที่ทั้งสองฝั่งต่อออกไปหาได้ มันส่งต่อแพ็กเก็ตที่เข้ารหัสแล้วระหว่างทั้งสอง ทำงานได้เกือบทุกที่ แต่ต้องแลกด้วยการอ้อมเพิ่มหนึ่งช่วง ความหน่วงสูงขึ้น และขีดความสามารถของรีเลย์ รีเลย์ไม่ควรอ่านเนื้อหาได้ แต่เห็นปริมาณและจังหวะของทราฟฟิก
การแมปพอร์ตบนเราเตอร์ของคุณเอง
ถ้าคุณควบคุมเราเตอร์ ก็สร้าง mapping ด้วยมือได้ เรียกว่า port forwarding หรือให้เราเตอร์ทำอัตโนมัติด้วย UPnP หรือสิ่งคล้ายกัน วิธีนี้เปิดประตูตายตัวจากอินเทอร์เน็ตไปยังอุปกรณ์ ง่ายแต่เปิดบริการให้ทุกคนที่รู้ที่อยู่ จึงต้องระวัง บทความ Port forwarding กับ VPN อธิบายการใช้งานและความเสี่ยง
ชนิดของ NAT และสิ่งที่อนุญาต
พฤติกรรมของ NAT ต่างกันไปตามอุปกรณ์ ชื่อเรียกต่างกัน แต่แนวคิดคือเราเตอร์ใช้ mapping ซ้ำอย่างไร
| พฤติกรรม | ทำอะไร | ผลต่อ traversal |
|---|---|---|
| Mapping ไม่ขึ้นกับปลายทาง | ใช้พอร์ตสาธารณะเดิมกับทุกปลายทาง | hole punching ทำงานดี |
| Mapping ขึ้นกับที่อยู่หรือพอร์ตปลายทาง | ใช้พอร์ตสาธารณะต่างกันตามปลายทาง | hole punching มักล้มเหลว เพราะพอร์ตที่เรียนรู้ใช้ไม่ได้แล้ว |
| Open หรือ full cone | ใครก็ติดต่อพอร์ตที่แมปไว้ได้ | ง่าย แต่หายาก |
| Restricted | รับเฉพาะคำตอบจากที่อยู่ที่คุณติดต่อไป | ใช้ได้กับรูปแบบ hole punch |
| Carrier-grade NAT (CGNAT) | ผู้ให้บริการแชร์ IP สาธารณะเดียวให้ลูกค้าหลายราย | มักไม่มีเส้นทางตรงและเปิดพอร์ตไม่ได้ |
เครื่องเกมคอนโซลมักแสดงเป็น "Open" "Moderate" หรือ "Strict" ดูมุมมองของนักเล่นเกมและสิ่งที่ VPN เปลี่ยนได้ใน VPN กับชนิด NAT
สถานการณ์ตัวอย่าง
เซิร์ฟเวอร์ที่บ้านกับแล็ปท็อประหว่างเดินทาง สมศักดิ์มีกล่องเก็บไฟล์เล็ก ๆ ที่บ้าน เราเตอร์ที่บ้านมี IP สาธารณะแบบปกติ เขาจึงตั้งเส้นทางแคบ ๆ หนึ่งเส้นและอุโมงค์ที่มี keepalive แล็ปท็อปเชื่อมจากโรงแรมโดยส่งออกไปก่อน และกล่องตอบกลับผ่าน mapping เดียวกัน ไม่มีพอร์ตเกินความจำเป็นถูกเปิด
บ้านที่ใช้ IP ร่วมกับผู้ให้บริการ อินเทอร์เน็ตบ้านของอลิน่าใช้ CGNAT ดังนั้น IP "สาธารณะ" ของเราเตอร์เธอจริง ๆ เป็นที่อยู่ส่วนตัวจากมุมของผู้ให้บริการ การเปิดพอร์ตบนเราเตอร์ของเธอไม่มีผล เพราะอุปกรณ์ของผู้ให้บริการอยู่ด้านหน้า ทางเลือกของเธอคืออุโมงค์แบบใช้รีเลย์ ซึ่งใช้ได้เพราะอุปกรณ์ที่บ้านเชื่อมต่อออก หรือถามผู้ให้บริการเรื่อง IP สาธารณะ คำอธิบายใน VPN กับ CGNAT บอกวิธีสังเกต ช่วงที่อยู่แบบแชร์นี้ถูกสงวนไว้ใน RFC 6598
อุปกรณ์สองเครื่องหลังเราเตอร์เข้มงวด เพื่อนสองคนอยากมีลิงก์ตรงระหว่างแล็ปท็อป แต่เราเตอร์ทั้งสองใช้พอร์ตต่างกันตามปลายทาง hole punching ล้มเหลว เครื่องมือของพวกเขาจึงถอยไปใช้รีเลย์ เขาสังเกตว่า ping สูงกว่าที่คาด และยอมรับได้สำหรับการแชร์ไฟล์ แต่ถ้าจะเล่นเกมก็คงมองหาทางเลือกอื่น
IPv6 อยู่ตรงไหน
IPv6 ให้ที่อยู่มากจนทุกอุปกรณ์มี IP สาธารณะของตัวเองได้ ซึ่งลดเหตุผลที่ต้องมี NAT ในทางทฤษฎี อุปกรณ์ IPv6 สองเครื่องติดต่อกันตรง ๆ ได้ แต่ในทางปฏิบัติเราเตอร์ที่บ้านยังเปิดไฟร์วอลล์ที่บล็อกแพ็กเก็ตขาเข้าที่ไม่มีใครเรียกเป็นค่าเริ่มต้น แพ็กเก็ตแรกจากภายนอกจึงถูกทิ้งเหมือนกรณี NAT แนวคิด traversal ข้างต้นยังใช้ได้ คือทั้งสองฝั่งส่งออกเพื่อให้ไฟร์วอลล์แต่ละตัวอนุญาตคำตอบของอีกฝั่ง และ keepalive รักษาการอนุญาตนั้นไว้
บทเรียนเชิงปฏิบัติคือ "ไม่มี NAT" ไม่ได้แปลว่า "ติดต่อได้" ให้ตรวจว่าผู้ให้บริการแจก IPv6 ไหม ไฟร์วอลล์ของเราเตอร์ให้อนุญาตเฉพาะอุปกรณ์ได้หรือไม่ และเครื่องมืออุโมงค์ใช้มันหรือเปล่า ถ้าคุณใช้ VPN ด้วย ให้ทดสอบว่าทราฟฟิก IPv6 วิ่งผ่านอุโมงค์ ไม่รั่วออกข้าง ๆ วิธีตรวจอธิบายใน IP รั่วไหลคืออะไร

ไล่แก้เมื่ออุโมงค์เชื่อมไม่ติด
ไล่ตามลำดับ และเปลี่ยนทีละอย่าง
- ยืนยันเส้นทางพื้นฐาน อุปกรณ์เข้าอินเทอร์เน็ตได้หรือไม่ captive portal หรือเราเตอร์เสียบล็อกทุกอย่าง
- ตรวจ double NAT ถ้า "WAN address" ของเราเตอร์ขึ้นต้นด้วย 10, 192.168 หรือ 100.64 ถึง 100.127 แปลว่ามีตัวแปลงอยู่ต้นทางอีกชั้น การตั้งกล่องของผู้ให้บริการเป็นโหมดบริดจ์ ถ้าได้รับอนุญาต มักแก้ได้
- ดูโปรโตคอล อุโมงค์จำนวนมากใช้ UDP บางเครือข่ายทิ้ง ลองเครือข่ายอื่นเช่นเน็ตมือถือเพื่อทดสอบ
- เพิ่มหรือย่น keepalive ถ้าอุโมงค์ใช้ได้หนึ่งนาทีแล้วเงียบ แปลว่า mapping กำลังหมดอายุ
- ทบทวนการเปิดพอร์ต การส่งต่อไปยัง IP เก่าหรืออุปกรณ์ที่เปลี่ยนไปไม่ได้ผล ให้เครื่องเป้าหมายมีที่อยู่ภายในคงที่
- ตรวจ pass-through ของอุโมงค์บนเราเตอร์ เราเตอร์เก่าบางรุ่นจัดการแพ็กเก็ตอุโมงค์บางแบบผิด ดู VPN passthrough บนเราเตอร์
- ทดสอบขนาดแพ็กเก็ต ขนาดที่ไม่ตรงทำให้อุโมงค์ดูเหมือนเชื่อมแล้วแต่การโอนข้อมูลใหญ่ค้าง ปัญหา MTU ของ VPN อธิบายไว้
- รีสตาร์ตตามลำดับ ปิดไฟโมเด็ม แล้วเราเตอร์ แล้วอุปกรณ์ mapping จะถูกล้างและสร้างใหม่
ข้อจำกัดและนิสัยที่ดี
- traversal ไม่รับประกันเส้นทางตรง NAT เข้มงวดและ CGNAT อาจบังคับให้ใช้รีเลย์ ควรวางแผนรับความหน่วงที่เพิ่ม
- port forwarding คือประตูถาวร เปิดเฉพาะที่จำเป็น ไปยังเครื่องเดียว และอัปเดตเครื่องนั้นเสมอ
- NAT ไม่ใช่ฟีเจอร์ความปลอดภัย อุโมงค์ที่มีการยืนยันตัวตนและเข้ารหัสคือสิ่งที่ปกป้อง ไม่ใช่ตารางที่อยู่ของเราเตอร์
- VPN ไคลเอนต์ธรรมดาไม่ต้องใช้เรื่องส่วนใหญ่นี้ หากต้องการแค่ปกป้องมือถือบน Wi-Fi สาธารณะ การเชื่อมต่อปกติไปยังเกตเวย์ทำงานผ่าน NAT ได้โดยไม่ต้องทำพิเศษ
- ลบสิ่งที่ไม่ใช้แล้ว ลบ forward เก่า กุญแจเก่า และอุปกรณ์เก่าออกจากการตั้งค่า
สรุป
NAT แปลที่อยู่ส่วนตัวเป็น IP สาธารณะที่ใช้ร่วมกัน และปล่อยคำตอบเข้ามาเฉพาะบทสนทนาที่เริ่มจากด้านใน ซึ่งไม่เป็นไรสำหรับการเชื่อมต่อ VPN ปกติจากมือถือไปยังเกตเวย์ แต่ขวางลิงก์ตรงระหว่างอุปกรณ์สองเครื่องที่ต่างซ่อนอยู่หลังเราเตอร์ การค้นหาที่อยู่ hole punching keepalive รีเลย์ และการแมปพอร์ตอย่างระมัดระวังแก้ปัญหาได้ ส่วน CGNAT หรือ double NAT อธิบายกรณีดื้อส่วนใหญ่ เมื่ออุโมงค์ล้มเหลว ให้ตรวจเส้นทางพื้นฐาน มองหา double NAT ทดสอบเครือข่ายอื่น และย่น keepalive
ถ้าคุณแค่ต้องการปกป้องอุปกรณ์ของตัวเองบนเครือข่ายที่ใช้ร่วมกัน หน้าราคา แสดงวิธีทำงานของแพ็กเกจเติมเงิน และ หน้าดาวน์โหลด มีแอปฟรี
คำถามที่พบบ่อย
NAT traversal ใน VPN คืออะไร
คือชุดเทคนิคที่ให้อุปกรณ์สองเครื่องซึ่งอยู่หลังเราเตอร์ที่แปลงที่อยู่ สร้างอุโมงค์ถึงกันได้ เช่น ส่งแพ็กเก็ตพร้อมกันเพื่อให้เราเตอร์ทั้งสองเปิด mapping ส่งแพ็กเก็ตเล็ก ๆ รักษา mapping ไว้ และถอยไปใช้รีเลย์เมื่อเส้นทางตรงเป็นไปไม่ได้
ต้องใช้ NAT traversal ไหมเมื่อเชื่อมบริการ VPN จากมือถือ
โดยปกติไม่ต้องทำอะไรพิเศษ มือถือเริ่มการเชื่อมต่อออกไป เราเตอร์จำไว้และปล่อยคำตอบกลับเข้ามา traversal สำคัญกว่าเมื่ออุปกรณ์ต้องถูกติดต่อจากภายนอกก่อน เช่นเซิร์ฟเวอร์ที่บ้าน
NAT เหมือนไฟร์วอลล์หรือไม่
ไม่ NAT เขียนที่อยู่ใหม่เพื่อให้หลายอุปกรณ์แชร์ IP สาธารณะเดียว ผลข้างเคียงคือแพ็กเก็ตขาเข้าที่ไม่มีใครเรียกไม่รู้จะไปที่ไหน ดูเหมือนไฟร์วอลล์ แต่ NAT ไม่ได้ออกแบบเป็นเครื่องมือความปลอดภัย
double NAT คืออะไร ทำไมก่อปัญหา
คือมีเราเตอร์สองตัวต่อกันที่แปลงที่อยู่ซ้อนกัน เช่นกล่องของผู้ให้บริการกับเราเตอร์ของคุณ การเปิดพอร์ตและการเชื่อมต่อตรงต้องจัดการทั้งสองตัว ซึ่งฝั่งผู้ให้บริการมักทำไม่ได้
NAT traversal ทำให้เครือข่ายปลอดภัยน้อยลงหรือไม่
เทคนิคเหล่านี้เปิด mapping ชั่วคราวเฉพาะทราฟฟิกที่คุณเริ่มหรืออนุมัติ และตัวอุโมงค์เข้ารหัสและยืนยันตัวตน ความเสี่ยงจริงคือการเปิดพอร์ตถาวรและอุปกรณ์เก่าที่ถูกลืมในรายการอนุญาต
แหล่งอ้างอิง
เกี่ยวกับผู้เขียน

Bob Kanokphon Thongdee
- ผู้ก่อตั้ง XPASS VPN
- ผู้ร่วมก่อตั้ง eSIMonline.asia
- ประสบการณ์ด้านการตลาดออนไลน์มากกว่า 7 ปี
- ผู้ก่อตั้ง Cojourney Visa และ Cojourney Travel
ต้องใช้ VPN ช่วงเดินทางหรือช่วงงานยุ่ง?
XPASS ขายแพ็กเกจแบบเติมเงินตามจำนวนวัน จ่ายครั้งเดียว ไม่มีการต่ออายุอัตโนมัติ
ดูแพ็กเกจอ่านต่อ

คู่มือตามอุปกรณ์
ใช้ VPN เมื่ออินเทอร์เน็ตติด CGNAT ทำอย่างไร
CGNAT คือการที่ผู้ให้บริการใช้ IP สาธารณะตัวเดียวร่วมกันหลายบ้าน มาดูว่าทำไมแอป VPN ยังใช้ได้ อะไรที่ใช้ไม่ได้ และมีทางออกอะไรบ้าง
อ่าน 10 นาที

พื้นฐาน VPN
NAT Type เมื่อใช้ VPN มีผลต่อเกมอย่างไร
เมนูเกมแสดง NAT แบบ Open, Moderate หรือ Strict บทความนี้อธิบายความหมาย ผลของ VPN ต่อค่าเหล่านี้ และสิ่งที่กระทบความลื่นของเกมจริง ๆ
อ่าน 9 นาที

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

พื้นฐาน VPN
Public IP address คืออะไร
Public IP address คือที่อยู่ที่เว็บไซต์เห็นเมื่อคุณเชื่อมต่อ บทความนี้อธิบายว่ามีที่มาอย่างไร ต่างจาก private address ในบ้านอย่างไร และบอกอะไรได้หรือไม่ได้บ้าง
อ่าน 9 นาที

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