WireGuard VPN ตั้งค่าเซิร์ฟเวอร์เอง Network

WireGuard VPN ตั้งค่าเซิร์ฟเวอร์เอง

📅 2026-02-09 | โดย อ.บอม กิตติทัศน์ เจริญพนาสิทธิ์ — SiamCafe.net Since 1997

WireGuard VPN ตั้งค่าเซิร์ฟเวอร์เอง ฉบับ อ.บอม SiamCafe

WireGuard VPN: ทำไมต้องตั้งเอง? แล้วมันดียังไง?

น้องๆ เคยเจอปัญหาเน็ตห่วย อยากเล่นเกมลื่นๆ หรืออยากเข้าเว็บที่โดนบล็อกไหม? VPN ช่วยได้! แต่ VPN ฟรีๆ บางทีก็ไม่ค่อยเวิร์ค ช้า แถมไม่ปลอดภัยอีกต่างหาก สมัยผมทำร้านเน็ตเคยเจอเด็กโดนแฮ็ก account เกมเพราะใช้ VPN ฟรีนี่แหละ เลยอยากแนะนำให้ตั้ง VPN server เองไปเลย ปลอดภัยกว่าเยอะ

WireGuard เนี่ย เป็น VPN protocol ที่ใหม่และเร็วกว่าพวก OpenVPN หรือ IPsec เยอะมาก แถม configuration ก็ง่ายกว่าเยอะด้วยนะ ถ้าพร้อมแล้ว มาลุยกันเลย!

WireGuard คืออะไร ทำไมถึงดีกว่า VPN อื่นๆ?

WireGuard เป็น VPN protocol ที่เน้นความเร็ว ความปลอดภัย และความเรียบง่าย ในแง่ของความเร็ว WireGuard ใช้ cryptography ที่ทันสมัยกว่า ทำให้ encrypt/decrypt ข้อมูลได้เร็วกว่า protocol เก่าๆ มาก นอกจากนี้ code base ของ WireGuard ก็เล็กกว่าเยอะ ทำให้โอกาสเกิด bug น้อยลงไปด้วย

สมัยก่อนตอนใช้ OpenVPN นี่ปวดหัวมาก config ก็เยอะ performance ก็ไม่ค่อยดี พอมาเจอ WireGuard นี่ชีวิตง่ายขึ้นเยอะเลย

ข้อดีของ WireGuard:

เตรียมตัวก่อนลงมือ: Server, IP Address, และ Key Pair

ก่อนอื่นน้องๆ ต้องมี server ก่อนนะ จะเป็น VPS (Virtual Private Server) หรือเครื่องคอมพิวเตอร์ที่บ้านก็ได้ (แต่ต้องเปิดเครื่องไว้ตลอดนะ) เลือก OS เป็น Linux อะไรก็ได้ที่น้องถนัด ผมแนะนำ Ubuntu หรือ Debian เพราะหาง่ายดี

สำคัญมากคือต้องมี Public IP Address ด้วยนะ เอาไว้ให้ client เชื่อมต่อเข้ามา ถ้าใช้ server ที่บ้าน ต้องทำ port forwarding ที่ router ด้วยนะ (อันนี้แล้วแต่ router แต่ละรุ่นเลย)

WireGuard ใช้ Public Key Cryptography ดังนั้นเราต้อง generate key pair (private key และ public key) สำหรับทั้ง server และ client ผมแนะนำให้ใช้ command line tools ในการ generate นะ ปลอดภัยกว่าเยอะ


# บน server
wg genkey | tee server_private.key | wg pubkey > server_public.key

# บน client
wg genkey | tee client_private.key | wg pubkey > client_public.key

เก็บ private key ไว้ให้ดีๆ อย่าให้ใครเห็นเด็ดขาด ส่วน public key เอาไว้แลกกันระหว่าง server กับ client

ตั้งค่า WireGuard Server: Ubuntu/Debian

มาเริ่มตั้งค่า server กันเลย ผมจะยกตัวอย่างบน Ubuntu/Debian นะ distro อื่นๆ ก็คล้ายๆ กัน แต่คำสั่งอาจจะต่างกันนิดหน่อย

ติดตั้ง WireGuard และ Network Tools

ขั้นแรกก็ install package ที่จำเป็นก่อนเลย


sudo apt update
sudo apt install wireguard iptables ufw qrencode

iptables เอาไว้จัดการ firewall ส่วน ufw เป็น firewall ที่ใช้ง่ายกว่า (แต่จริงๆ แล้ว iptables ก็คือเบื้องหลังของ ufw นั่นแหละ) ส่วน qrencode เอาไว้ generate QR code สำหรับ client config (optional)

สร้าง Interface และ Config File

สร้าง interface สำหรับ WireGuard โดยสร้าง file /etc/wireguard/wg0.conf (wg0 คือชื่อ interface นะ จะเปลี่ยนเป็นชื่ออื่นก็ได้ แต่ต้อง consistent ทั้ง server และ client)


[Interface]
PrivateKey = <server_private_key>
Address = 10.6.0.1/24
ListenPort = 51820
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

แทน <server_private_key> ด้วย private key ที่ generate ไว้ อย่าลืมเปลี่ยน eth0 เป็นชื่อ network interface ของ server ด้วยนะ (ใช้ ip addr ดูได้)

Address คือ IP address ของ server ใน VPN network เลือกช่วง IP ที่ไม่ชนกับ network อื่นๆ ที่ใช้อยู่

ListenPort คือ port ที่ WireGuard จะ listen เปลี่ยนได้ถ้าต้องการ แต่ต้อง consistent ทั้ง server และ client

PostUp และ PostDown คือ commands ที่จะรันตอน interface up และ down ตามลำดับ ในที่นี้คือ set up firewall rules เพื่อ forward traffic จาก VPN network ไปยัง internet

เพิ่ม Client Configuration

เพิ่ม client configuration เข้าไปใน wg0.conf


[Peer]
PublicKey = <client_public_key>
AllowedIPs = 10.6.0.2/32

แทน <client_public_key> ด้วย public key ของ client และ AllowedIPs คือ IP address ของ client ใน VPN network แต่ละ client ต้องมี IP address ที่ไม่ซ้ำกันนะ

ถ้ามีหลาย client ก็เพิ่ม [Peer] section เข้าไปเรื่อยๆ

เปิดใช้งาน Interface และ Firewall

เปิดใช้งาน interface และ firewall


sudo wg-quick up wg0
sudo systemctl enable wg-quick@wg0
sudo ufw allow 51820/udp
sudo ufw enable

wg-quick up wg0 คือคำสั่งเปิด interface wg0

systemctl enable wg-quick@wg0 คือทำให้ interface wg0 start ตอน boot เครื่อง

ufw allow 51820/udp คือเปิด port 51820 (หรือ port ที่เลือกไว้) ใน firewall

ufw enable คือเปิด firewall

ถ้าทุกอย่างเรียบร้อยดี wg show ควรจะแสดง information ของ interface wg0

ตั้งค่า WireGuard Client: Windows/macOS/Linux

ฝั่ง client ก็ง่ายเหมือนกัน WireGuard มี client ให้ download สำหรับ Windows, macOS, Android, และ iOS ส่วน Linux ส่วนใหญ่จะมี package ให้ install

Install WireGuard Client

Download และ install WireGuard client จาก WireGuard website

สร้าง Configuration File

สร้าง configuration file สำหรับ client (เช่น wg0.conf) แล้วใส่ข้อมูลเหล่านี้ลงไป


[Interface]
PrivateKey = <client_private_key>
Address = 10.6.0.2/32
DNS = 8.8.8.8, 8.8.4.4

[Peer]
PublicKey = <server_public_key>
Endpoint = <server_ip_address>:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 25

แทน <client_private_key> ด้วย private key ของ client

Address คือ IP address ของ client ใน VPN network (ต้องตรงกับที่กำหนดไว้ใน server config)

DNS คือ DNS server ที่จะใช้ (Google DNS ในที่นี้)

<server_public_key> คือ public key ของ server

<server_ip_address> คือ public IP address ของ server

AllowedIPs = 0.0.0.0/0 คือให้ traffic ทั้งหมดผ่าน VPN ถ้าอยากให้ traffic บางส่วนเท่านั้นผ่าน VPN ก็เปลี่ยนเป็น subnet ที่ต้องการได้

PersistentKeepalive = 25 คือส่ง keepalive packet ทุก 25 วินาที เพื่อให้ connection ไม่ขาด (โดยเฉพาะเวลาใช้ mobile network)

Import Configuration และ Connect

Import configuration file เข้าไปใน WireGuard client แล้ว connect เท่านี้ก็เรียบร้อย!

ถ้า connect ได้แล้ว ลอง ping 10.6.0.1 (IP address ของ server) ดู ถ้า ping ได้แสดงว่าทุกอย่างโอเค

ตารางเปรียบเทียบ WireGuard กับ VPN Protocol อื่นๆ

Feature WireGuard OpenVPN IPsec
Speed Very Fast Moderate Moderate
Security Excellent Good Good
Complexity Simple Complex Complex
Codebase Size Small Large Large
Platforms Wide Support Wide Support Wide Support

จากตารางจะเห็นว่า WireGuard เหนือกว่า VPN protocol อื่นๆ ในหลายๆ ด้าน โดยเฉพาะในเรื่องของความเร็วและความเรียบง่าย

สำหรับ SiamCafe Blog มีบทความอื่นๆ ที่น่าสนใจอีกมากมาย SiamCafe Blog ลองเข้าไปอ่านกันดูนะครับ

🎬 วิดีโอแนะนำ

ดูวิดีโอเพิ่มเติมเกี่ยวกับWireGuard VPN ตั้งค่าเซิร์ฟเวอ:

FAQ: คำถามที่พบบ่อยเกี่ยวกับ WireGuard

Q: WireGuard ปลอดภัยจริงหรือเปล่า?

A: ปลอดภัยแน่นอน WireGuard ใช้ cryptography ที่ทันสมัย และ code base ก็เล็กกว่า VPN protocol อื่นๆ ทำให้โอกาสเกิด bug น้อยลง

Q: WireGuard กิน resource เยอะไหม?

A: ไม่เยอะ WireGuard ถูกออกแบบมาให้ประหยัด resource ทำให้เหมาะกับการใช้งานบนอุปกรณ์พกพา

Q: ทำไม connection ของผมถึงขาดๆ หายๆ?

A: อาจจะเป็นเพราะ firewall หรือ NAT ที่ router ลองตรวจสอบดูว่า port 51820 (หรือ port ที่เลือกไว้) ถูกเปิดไว้แล้ว และลองเพิ่ม PersistentKeepalive ใน client config

Q: ถ้าใช้ server ที่บ้าน ต้องทำยังไงบ้าง?

A: ต้องทำ port forwarding ที่ router โดย forward port 51820 (หรือ port ที่เลือกไว้) ไปยัง IP address ของ server ที่บ้าน และต้องมี dynamic DNS เพื่อให้ client สามารถ connect ไปยัง server ได้ แม้ว่า IP address ของ server จะเปลี่ยนไป

หวังว่าบทความนี้จะเป็นประโยชน์กับน้องๆ นะ ถ้ามีคำถามอะไรเพิ่มเติม ถามมาได้เลย ผมจะพยายามตอบให้เท่าที่ตอบได้

อย่าลืมแวะไปดูบทความอื่นๆ ใน SiamCafe Blog นะครับ มีอะไรดีๆ อีกเยอะเลย!

Best Practices ในการใช้ WireGuard VPN

ตั้งรหัส Private Key ให้แข็งแกร่ง

เรื่องนี้สำคัญมาก! รหัส Private Key เหมือนกุญแจบ้านเรา ถ้าใครได้ไปก็เข้าบ้านได้หมด สมัยผมทำร้านเน็ตเคยเจอเด็กแฮ็กรหัส Wi-Fi ง่ายๆ เพราะเจ้าของร้านตั้งรหัสผ่านง่ายเกินไป WireGuard ก็เหมือนกัน ต้องตั้งรหัส Private Key ให้ยากเข้าไว้ พวก brute-force จะได้ถอดรหัสยาก

# ตัวอย่างการสร้าง Private Key ที่ปลอดภัย
wg genkey | tee privatekey | wg pubkey > publickey

จำไว้ว่าเก็บ privatekey ไว้ให้ดี ห้ามแชร์กับใครเด็ดขาด!

อัพเดท WireGuard เป็นประจำ

Software ทุกอย่างต้องอัพเดทเสมอ WireGuard ก็เช่นกัน ทีมพัฒนาเค้าแก้ bug และเพิ่ม feature ใหม่ๆ เรื่อยๆ ถ้าไม่อัพเดทก็อาจจะเจอช่องโหว่โดนแฮ็กได้ สมัยก่อนร้านผมโดนไวรัสเล่นงานเพราะไม่ได้อัพเดท Windows เป็นบทเรียนราคาแพงเลย

# ตัวอย่างการอัพเดท WireGuard บน Ubuntu
sudo apt update
sudo apt upgrade wireguard

เช็คดูว่า version ล่าสุดคืออะไร แล้วอัพเดทตามนั้นเลย

เปิด Firewall ให้ถูกต้อง

Firewall เปรียบเสมือนยามหน้าบ้าน คอยสกัดคนไม่ได้รับอนุญาตไม่ให้เข้าบ้าน WireGuard ก็ต้องใช้ Firewall เพื่อป้องกันการโจมตีจากภายนอก ต้องตั้งค่าให้ Firewall อนุญาตให้ traffic จาก WireGuard ผ่านได้เท่านั้น

# ตัวอย่างการตั้งค่า Firewall (UFW)
sudo ufw allow 51820/udp # พอร์ต WireGuard
sudo ufw enable

อย่าลืมเปลี่ยน 51820 เป็น port ที่เราตั้งค่า WireGuard ไว้จริงๆ นะ

Monitor การใช้งาน

ต้องคอยดู log file ว่ามีอะไรผิดปกติหรือเปล่า เช่น มีคนพยายาม login ผิดพลาดหลายครั้ง หรือมี traffic ที่ผิดปกติ ถ้าเจออะไรแปลกๆ ต้องรีบตรวจสอบทันที สมัยก่อนผมเคยเจอคนแอบใช้ bandwidth ร้านเน็ตไปขุด Bitcoin ต้องรีบจัดการเลย

ลองใช้คำสั่ง tcpdump หรือ wireshark ดักจับ packet ดูว่ามีอะไรวิ่งผ่าน VPN บ้าง

FAQ: คำถามที่พบบ่อยเกี่ยวกับ WireGuard VPN

WireGuard ดีกว่า OpenVPN จริงหรือ?

หลายคนถามว่า WireGuard กับ OpenVPN อะไรดีกว่ากัน ตอบยากนะ มันมีข้อดีข้อเสียต่างกัน แต่โดยรวมๆ WireGuard เร็วกว่า เสถียรกว่า และตั้งค่าง่ายกว่า OpenVPN แต่ OpenVPN ก็ยังเป็นที่นิยมเพราะมัน flexible กว่า

ถ้าเน้นความเร็วและง่าย ผมแนะนำ WireGuard แต่ถ้าต้องการความยืดหยุ่น OpenVPN ก็ยังเป็นตัวเลือกที่ดี

WireGuard ปลอดภัยแค่ไหน?

WireGuard ถูกออกแบบมาให้ปลอดภัยมากๆ ใช้ cryptography ที่ทันสมัย และมี code base ที่เล็ก ทำให้ตรวจสอบง่ายกว่า OpenVPN แต่ทุกอย่างขึ้นอยู่กับการตั้งค่าด้วย ถ้าตั้งค่าไม่ดี ก็อาจจะไม่ปลอดภัยเท่าที่ควร

เหมือนกับการซื้อรถยนต์ รถดีแค่ไหนถ้าคนขับประมาทก็เกิดอุบัติเหตุได้

ถ้าลืม Private Key ทำยังไง?

ถ้าลืม Private Key ก็ซวยเลย! เพราะ Private Key คือกุญแจสำคัญในการเข้าถึง VPN ทางเดียวคือต้องสร้าง Private Key ใหม่ แล้วตั้งค่า VPN ใหม่ทั้งหมด

ดังนั้นต้องเก็บ Private Key ไว้ให้ดี สำรองไว้หลายๆ ที่ก็ดี

ใช้ WireGuard กับมือถือได้ไหม?

ได้แน่นอน! WireGuard มี app สำหรับ iOS และ Android สามารถตั้งค่าให้มือถือเชื่อมต่อกับ VPN ของเราได้ง่ายๆ เลย

ลอง search ใน App Store หรือ Play Store ดูนะ

WireGuard ฟรีจริงหรือ?

WireGuard เป็น open-source software ใช้งานได้ฟรี ไม่มีค่าใช้จ่าย แต่ถ้าเราใช้บริการ VPN ที่ใช้ WireGuard เป็น backend อาจจะต้องเสียค่าบริการนะ

เหมือนกับ Linux ที่ใช้งานได้ฟรี แต่ถ้าใช้ Red Hat Enterprise Linux ก็ต้องเสียค่า subscription

สรุป

WireGuard เป็น VPN ที่น่าสนใจมากๆ ด้วยความเร็ว ความเสถียร และความง่ายในการตั้งค่า ทำให้มันเป็นตัวเลือกที่ดีสำหรับคนที่ต้องการสร้าง VPN ส่วนตัว หรือใช้บริการ VPN ที่เน้นความเร็ว

อย่าลืมตั้งค่าให้ปลอดภัย และอัพเดทอยู่เสมอ เพื่อให้ VPN ของเราทำงานได้อย่างมีประสิทธิภาพ

ถ้าสนใจเรื่องการลงทุน Forex ลองดูที่ iCafeForex นะ

และอย่าลืมติดตามบทความอื่นๆ ได้ที่ SiamCafe Blog