WireGuard Config Generator: สร้างไฟล์ wg0.conf ได้ทันทีในเบราว์เซอร์
WireGuard Config Generator ช่วยประกอบไฟล์ wg0.conf ทั้งบล็อก [Interface] และ [Peer] แบบพร้อมคัดลอก ทำงานทั้งหมดในเบราว์เซอร์ คีย์ของคุณไม่ถูกส่งไปที่ใด
Table of Contents
WireGuard ขึ้นชื่อเรื่องความเร็วและความเรียบง่ายของโปรโตคอล แต่การเขียนไฟล์ wg0.conf ด้วยมือครั้งแรก ๆ มักไม่ราบรื่นนัก — ฟิลด์ไหนควรอยู่ในบล็อก [Interface], public key ของ peer ควรวางไว้ตรงไหน, แล้ว AllowedIPs มันเป็นกฎ routing หรือเป็นกฎ access list กันแน่? แค่วางบรรทัดเดียวผิดที่ tunnel ก็ขึ้นได้ แต่ส่งข้อมูลไม่ได้แม้แต่แพ็กเก็ตเดียว ตัว WireGuard Config Generator ช่วยขจัดปัญหาเหล่านี้ ด้วยฟอร์มที่จัดโครงสร้างไว้ครบทั้งส่วน interface และแต่ละ peer จากนั้นประกอบออกมาเป็น config ที่พร้อมคัดลอกไปใช้ทันทีในไม่กี่วินาที
เนื่องจากเครื่องมือนี้ทำงานทั้งหมดในเบราว์เซอร์ ทุกอย่างที่คุณพิมพ์ลงไปจะไม่ถูกส่งหรือจัดเก็บที่ใดทั้งสิ้น ไม่ต้องสมัครบัญชี ไม่มีขั้นตอนอัปโหลด และไม่มีการประมวลผลฝั่งเซิร์ฟเวอร์ — private key และ address ที่คุณกรอกจะไม่ออกจากเครื่องของคุณเลย ซึ่งเป็นเรื่องสำคัญมากสำหรับเครื่องมือด้าน VPN เพราะไฟล์ config ของ WireGuard คือวัสดุเข้ารหัสลับที่ปกป้องเครือข่ายทั้งหมดของคุณพอดี
บทความนี้จะพาไล่ใช้เครื่องมือทีละขั้นตอน อธิบายว่าฟิลด์แต่ละตัวในบล็อก [Interface] และ [Peer] ทำหน้าที่อะไร พร้อมตัวอย่างการใช้งานจริง เช่น การเข้าถึง home lab จากนอกบ้าน การเชื่อมสำนักงานสองแห่งเข้าด้วยกัน และการทำให้ SSH สำหรับผู้ดูแลระบบปลอดภัยขึ้น
ทำไมต้องใช้ WireGuard Config Generator?
- ไม่มีข้อผิดพลาดด้าน syntax — ทุกฟิลด์มีที่ของตัวเอง คุณจึงลืมบรรทัด PublicKey หรือใส่ endpoint ผิดบล็อกไม่ได้
- เพิ่ม peer ได้หลายตัว — สร้างบล็อก [Peer] แยกกันได้เท่าที่ต้องการ แต่ละตัวมี public key, endpoint, AllowedIPs และ keepalive เป็นของตัวเอง
- ทำงานฝั่ง client ล้วน ๆ — คีย์ไม่ถูกส่งไปที่ใด ทุกอย่างถูกประมวลผลในเบราว์เซอร์ของคุณเท่านั้น
- ผลลัพธ์พร้อมใช้ทันที — ได้ไฟล์ wg0.conf ตามมาตรฐาน วางลง /etc/wireguard/ หรือนำเข้าแอปบนมือถือได้เลย
- แก้ไขได้ไว — เปลี่ยน address, ขยาย AllowedIPs หรือปรับ keepalive แล้ว generate ใหม่ได้ภายในไม่กี่วินาที
- ฟรี ไม่ต้องสมัครสมาชิก — เปิดหน้าเว็บแล้วเริ่มใช้ได้ทันที ไม่มีบัญชี ไม่มีลิมิต ไม่ต้องติดตั้งอะไร
คุณสมบัติหลัก
| คุณสมบัติ | ทำอะไรได้ |
|---|---|
| สร้างบล็อก [Interface] | ตั้งค่า address ของ tunnel, DNS, MTU, listen port และช่องสำหรับ private key |
| สร้างบล็อก [Peer] | รับค่า public key, endpoint, AllowedIPs และ persistent keepalive ของแต่ละ peer |
| รองรับหลาย peer | ประกอบบล็อก [Peer] แยกกันให้อุปกรณ์ทุกตัวใน tunnel |
| ผลลัพธ์พร้อมคัดลอก | ได้ไฟล์ wg0.conf ครบทั้งไฟล์ในรูปแบบที่ wg-quick ต้องการ |
| ประมวลผลในเบราว์เซอร์ | ประกอบไฟล์บนเครื่องคุณล้วน ๆ ไม่มีการอัปโหลดหรือบันทึกข้อมูล |
| แก้ไขแบบเรียลไทม์ | แก้ฟิลด์ใดก็ได้ แล้วผลลัพธ์จะถูกประกอบใหม่ทันที |
จุดที่น่าสนใจเพิ่มเติมมีดังนี้
- ช่อง private key เป็นเพียง placeholder โดยตั้งใจ คุณต้องสร้างคีย์บนเครื่องของตัวเองแล้ววางเข้ามาเอง เครื่องมือจะไม่คำนวณหรือส่งคีย์นั้นไปที่ใด
- บล็อก peer แต่ละอันเป็นอิสระจากกัน laptop, มือถือ และเราเตอร์ของสาขาจึงอยู่ใน config ของเซิร์ฟเวอร์เดียวกันได้ โดยมี AllowedIPs ไม่เหมือนกัน
- ลำดับผลลัพธ์เริ่มจากบล็อก [Interface] ตามด้วยบล็อก [Peer] แต่ละอัน ตรงตามที่ wg-quick คาดหวัง จึงนำไปใช้ได้ทันทีโดยไม่ต้องเก็บกวาด
วิธีใช้งาน WireGuard Config Generator
- กำหนด addressing ของ interface — เลือก subnet ของ tunnel ที่ไม่ชนกับ LAN ของคุณ ใส่ Address ของเครื่องนี้ (เช่น 10.0.0.1/24) เพิ่ม DNS ถ้าต้องการให้ client resolve ชื่อผ่าน tunnel และตั้ง ListenPort โดยทั่วไปนิยมใช้ 51820
- เพิ่ม peer พร้อมคีย์และ endpoint — สำหรับอุปกรณ์แต่ละตัว ให้วาง public key ลงไป แล้วตั้ง endpoint (host:port) ให้ถูกที่ ฝั่ง client จะชี้ไปที่เซิร์ฟเวอร์ ส่วน config ของเซิร์ฟเวอร์มักปล่อย endpoint ของ peer เอาไว้ว่าง
- ตั้ง AllowedIPs และ keepalive — กำหนดว่า peer แต่ละตัวส่งเครือข่ายไหนได้บ้าง และเพิ่ม PersistentKeepalive (ปกติ 25 วินาที) ให้ peer ที่อยู่หลัง NAT และต้องคงการเชื่อมต่อเอาไว้
- Generate config — เครื่องมือจะประกอบบล็อก [Interface] และบล็อก [Peer] เข้าด้วยกันเป็นไฟล์ wg0.conf ที่ถูกต้องให้ดูก่อนนำไปใช้
- คัดลอกไปที่ /etc/wireguard/ — วางผลลัพธ์ลงไฟล์ /etc/wireguard/wg0.conf บนเครื่องเป้าหมาย จำกัดสิทธิ์ด้วย chmod 600 แล้วสั่งเปิด tunnel ด้วย wg-quick up wg0
อธิบายฟิลด์ต่าง ๆ ใน Config ของ WireGuard
บทบาทของ Interface กับ Peer — บล็อก [Interface] บอกเรื่องของเครื่องนี้เอง ได้แก่ private key, address ใน tunnel และพอร์ตที่รอรับการเชื่อมต่อ ส่วนบล็อก [Peer] แต่ละอันบอกเรื่องของอีกฝั่ง ได้แก่ public key ของอีกฝั่ง วิธีเข้าถึง และเครือข่ายที่อยู่เบื้องหลัง config ของเซิร์ฟเวอร์จะมีหนึ่ง interface กับ peer หลายตัว ขณะที่ config ของ laptop มีหนึ่ง interface และมักมี peer เดียวคือเซิร์ฟเวอร์
Address และ DNS — Address คือการกำหนด IP ใน tunnel ให้กับ interface ควรเลือก private range เช่น 10.0.0.0/24 ที่ไม่ทับกับ LAN ปัจจุบัน ส่วน DNS ซึ่งตั้งฝั่ง client จะบอกระบบว่าเวลาอยู่ใน tunnel ให้ใช้ resolver ตัวไหน นั่นคือเหตุผลที่ hostname ภายในองค์กรเริ่ม resolve ได้หลังเปิด tunnel
AllowedIPs ทำหน้าที่สองอย่างพร้อมกัน — ขาออก AllowedIPs ทำงานเหมือนตาราง routing แพ็กเก็ตที่ปลายทางอยู่ในช่วงที่ระบุจะถูกดันเข้า tunnel ขาเข้ามันทำงานเหมือน access list เพราะ WireGuard จะรับแพ็กเก็ตจาก peer หนึ่งก็ต่อเมื่อ source IP ตรงกับ AllowedIPs ของ peer นั้นเท่านั้น ถ้าใส่ 0.0.0.0/0 จะให้ peer นั้นเป็น default route แต่ถ้าใส่แค่ 10.0.0.0/24 ทราฟฟิกอื่นทั้งหมดจะยังออกทางอินเทอร์เน็ตปกติ
PersistentKeepalive — NAT gateway จะทิ้ง mapping ที่ไม่ได้ใช้ไปเองเมื่อเวลาผ่านไป การตั้ง keepalive ไว้ที่ 25 วินาทีจะส่งแพ็กเก็ตเล็ก ๆ ที่ยืนยันตัวตนแล้วออกไปเพื่อคง mapping เอาไว้ จำเป็นมากสำหรับมือถือบนเครือข่ายมือถือหรือ laptop หลัง Wi-Fi โรงแรมที่ต้องยังคงถูกเซิร์ฟเวอร์ติดต่อกลับได้
การปรับ MTU — WireGuard ห่อแพ็กเก็ตทุกชิ้นด้วย header เพิ่ม ถ้าโอนไฟล์ใหญ่แล้วค้างแต่ไฟล์เล็กผ่านปกติ แปลว่า MTU สูงเกินไป ให้ลองลดเหลือ 1420 หรือ 1380 เครื่องมือนี้ตั้งค่า MTU แยกตาม config ได้ จึงปรับให้ client มือถือกับไฟเบอร์ใช้ค่าต่างกันได้
Split tunnel กับ full tunnel — split tunnel ส่งเฉพาะช่วงเครือข่ายที่เลือกเข้า VPN ส่วน full tunnel (0.0.0.0/0, ::/0) ส่งทุกอย่างผ่าน tunnel ความต่างทั้งหมดอยู่ที่ AllowedIPs ล้วน ๆ นั่นจึงเป็นเหตุผลที่เครื่องมือวางฟิลด์นี้ไว้ในตำแหน่งที่เด่นที่สุด
กรณีการใช้งานจริง
เข้าถึง Home Lab จากนอกบ้าน (Road Warrior)
บ้านของคุณมี NAS, hypervisor และบริการ self-hosted หลายตัวอยู่หลังเครือข่าย 192.168.1.0/24 ให้สร้าง config ฝั่งเซิร์ฟเวอร์โดยมีบล็อก [Peer] หนึ่งบล็อกต่อ laptop และมือถือแต่ละเครื่อง โดยอนุญาตเฉพาะ 192.168.1.0/24 เวลาออกไปทำงานข้างนอก อุปกรณ์ของคุณจะเข้าถึง lab เหมือนเสียบสายอยู่ที่บ้าน และ keepalive ช่วยให้เซสชันบนมือถือไม่หลุดกลางคัน
เชื่อมสองสำนักงานเข้าด้วยกันแบบ Site-to-Site
สำนักงาน A ใช้ 10.10.0.0/16 ส่วนสำนักงาน B ใช้ 10.20.0.0/16 config ของ gateway แต่ละฝั่งจะมี peer เดียวคือเราเตอร์ของอีกฝั่ง โดยใส่ช่วงเครือข่ายปลายทางไว้ใน AllowedIPs และตั้ง endpoint สาธารณะของอีกฝั่งเอาไว้ ทราฟฟิกระหว่างสองช่วงนี้จะวิ่งผ่าน tunnel ไปเองโดยอัตโนมัติ คนในออฟฟิศไม่ต้องรู้หรือตั้งค่าอะไรเพิ่มเลย
ทำ SSH สำหรับผู้ดูแลระบบให้ปลอดภัยขึ้น
เปิดพอร์ต SSH เฉพาะบนช่วง private เช่น 10.8.0.0/24 แทนการเปิดสู่อินเทอร์เน็ตสาธารณะ ผู้ดูแลแต่ละคนจะได้รับ config ที่ AllowedIPs ครอบคลุมแค่ช่วงผู้ดูแลนี้ ทำให้ SSH daemon และ dashboard ภายในเข้าไม่ได้เว้นแต่ tunnel จะเปิดอยู่ เป็นวิธี harden ที่แทบไม่เสียค่าใช้จ่ายแต่ได้ผลจริง
สร้าง Config แยกตามอุปกรณ์ (Per-Device)
ให้อุปกรณ์ทุกตัวมี keypair, บล็อก [Peer] และ IP ใน tunnel เป็นของตัวเอง เมื่อมือถือเครื่องหนึ่งหาย คุณแค่ลบบล็อกของเครื่องนั้นทิ้ง แล้วเครือข่ายส่วนที่เหลือยังทำงานปกติทุกอย่าง ไม่ต้องไล่เปลี่ยน credential ที่ใช้ร่วมกันทั้งระบบ
แนวปฏิบัติที่แนะนำ
- หนึ่งคีย์ต่อหนึ่งอุปกรณ์ — ห้ามใช้ keypair ซ้ำข้ามเครื่อง เพราะคีย์ที่แยกขายทำให้การเพิกถอน (revoke) เป็นเรื่องง่าย
- รักษา AllowedIPs ให้แคบในฝั่งเซิร์ฟเวอร์ — เซิร์ฟเวอร์ควรรับจาก peer แต่ละตัวเฉพาะ address ที่ตัวเองกำหนดให้เท่านั้น
- เก็บ private key ให้เป็นส่วนตัว — เครื่องมือนี้ทำงานฝั่ง client เพื่อให้ข้อมูลลับไม่ออกจากเบราว์เซอร์ แต่ไฟล์ที่ export แล้วก็ยังเป็นข้อมูลลับ ควร chmod 600 ไว้เสมอ
- ใช้ keepalive เฉพาะที่ NAT จำเป็น — client ที่คอยออกไปหาเซิร์ฟเวอร์สาธารณะไม่จำเป็นต้องใช้ ส่วนมือถือที่เดินทางบ่อยจะได้ประโยชน์ชัดเจน
- เลือก subnet ที่ไม่ชนกับที่อื่น — หลีกเลี่ยงช่วงที่นิยมใช้ในโรงแรมหรือออฟฟิศ ไม่อย่างนั้น tunnel จะพังทันทีที่เชื่อมต่อจากที่พวกนั้น
- รีโหลดอย่างระมัดระวัง — ใช้ wg-quick down wg0 ตามด้วย wg-quick up wg0 เพื่อปรับใช้ config ใหม่ และตรวจสอบผลด้วย wg show
เปิด WireGuard Config Generator กรอก interface เดียวกับ peer ไม่กี่ตัว แล้วคุณจะได้ไฟล์ wg0.conf ที่พร้อมนำไปใช้ภายในเวลาไม่ถึงนาที วางลง /etc/wireguard/ สั่ง wg-quick up wg0 แล้วยืนยัน handshake ด้วย wg show เครือข่ายเข้ารหัสลับของคุณก็พร้อมใช้งานทันที
เครื่องมือที่เกี่ยวข้องที่คุณอาจสนใจ:
- SSH Config Generator — สร้างไฟล์ ~/.ssh/config ที่จัดการต่อ host อย่างเป็นระเบียบ
- Subnet Calculator — วางแผนช่วง CIDR ที่ peer และเครือข่ายของคุณจะใช้
- Password Generator — สร้างรหัสผ่านที่แข็งแรงสำหรับบัญชีและ pre-shared key
ขอให้สนุกกับการสร้าง tunnel นะ!
คำถามที่พบบ่อย
ถ: WireGuard Config Generator ส่งคีย์ของฉันไปที่ไหนหรือเปล่า? ตอบ: ไม่ครับ เครื่องมือทำงานทั้งหมดในเบราว์เซอร์ คีย์ address และ endpoint ที่คุณกรอกจะไม่ออกจากเครื่องและไม่ถูกบันทึกไว้ที่ใดเลย
ถ: สร้าง config ที่มีหลาย peer ได้ไหม? ตอบ: ได้ครับ เพิ่มบล็อก [Peer] ให้แต่ละอุปกรณ์โดยมี public key, AllowedIPs และ keepalive ของตัวเอง แล้วเครื่องมือจะประกอบทุกอย่างเป็นไฟล์ wg0.conf เดียว
ถ: ยังต้องสร้างคู่คีย์เองอยู่ไหม? ตอบ: ใช่ครับ ให้รัน wg genkey บนเครื่องของคุณเองแล้ววาง public key เข้าเครื่องมือ ส่วนช่อง private key เป็นเพียงที่สำหรับวางคีย์ในเครื่องของคุณเท่านั้น
ถ: client ทั่วไปควรใส่ AllowedIPs ค่าอะไร? ตอบ: ถ้าใช้ split tunnel ให้ระบุเฉพาะเครือข่ายที่อยู่หลังเซิร์ฟเวอร์ เช่น 10.0.0.0/24 แต่ถ้าใช้ full tunnel ให้ใส่ 0.0.0.0/0, ::/0 เพื่อให้ทราฟฟิกทั้งหมดวิ่งผ่าน VPN ไปเลย