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

ติดตั้ง WireGuard VPN บน VPS ทีละขั้นตอน [2026]

โดย ทีมรีวิว CloudPicked · อัปเดตล่าสุด กันยายน 2026
ติดตั้ง WireGuard VPN บน VPS

สารบัญ

  1. WireGuard คืออะไร?
  2. WireGuard vs OpenVPN vs IPsec
  3. สิ่งที่ต้องเตรียม
  4. ติดตั้ง WireGuard บน Server (Ubuntu 24.04)
  5. ตั้งค่า Server Configuration
  6. เปิด IP Forwarding + Firewall
  7. ตั้งค่า Client: Windows
  8. ตั้งค่า Client: macOS
  9. ตั้งค่า Client: iOS / Android
  10. ทดสอบการเชื่อมต่อ
  11. ตั้งให้เริ่มอัตโนมัติ (systemd)
  12. แก้ปัญหาที่พบบ่อย
  13. คำถามที่พบบ่อย

ถ้าคุณมี VPS อยู่แล้วและอยากได้ VPN ส่วนตัวที่ เร็ว ปลอดภัย และตั้งง่าย WireGuard คือคำตอบที่ดีที่สุดในปี 2026 ไม่ว่าจะเป็นการปกป้อง traffic บน Wi-Fi สาธารณะ bypass geo-restriction หรือเชื่อมต่อเครือข่ายส่วนตัวระหว่าง VPS หลายเครื่อง คู่มือนี้จะพาคุณตั้งค่าตั้งแต่ต้นจนจบ ทั้ง server side และ client ทุกอุปกรณ์

WireGuard คืออะไร?

WireGuard เป็น VPN protocol รุ่นใหม่ที่ถูกออกแบบมาให้ เร็วกว่า เรียบง่ายกว่า และปลอดภัยกว่า VPN protocol เก่าอย่าง OpenVPN และ IPsec โดยมีจุดเด่นหลักดังนี้:

WireGuard ถูกรวมเข้า Linux Kernel ตั้งแต่ version 5.6 (เมษายน 2020) ทำให้ VPS Linux สมัยใหม่รองรับทันทีโดยไม่ต้องติดตั้ง kernel module เพิ่ม

สรุปสั้น: ทำไมถึงเลือก WireGuard?

เหมาะที่สุดสำหรับคนที่มี VPS และต้องการ VPN ส่วนตัวที่ตั้งง่าย เร็ว และปลอดภัย ค่าใช้จ่ายเดียวคือ VPS (เริ่มต้น ~$3-5/เดือน) ไม่มีค่าสมาชิก VPN รายเดือนอีกต่อไป

WireGuard vs OpenVPN vs IPsec/IKEv2

ก่อนตัดสินใจ ดูตารางเปรียบเทียบข้อเท็จจริงจากแหล่งทางการ (ข้อมูล ณ กันยายน 2026 — ตรวจสอบล่าสุดที่เว็บผู้พัฒนา):

FeatureWireGuardOpenVPNIPsec/IKEv2
ProtocolUDP เท่านั้นUDP / TCPUDP / ESP
Port เริ่มต้นUDP 51820UDP/TCP 1194UDP 500 / 4500
Codebase~4,000 บรรทัด~100,000+ บรรทัดซับซ้อนมาก
Speedเร็วมาก (kernel)ปานกลาง (userspace)เร็ว
ตั้งค่าง่ายมากปานกลางยาก
ทำงานใน Kernelใช่ (Linux ≥5.6)ไม่ (userspace)บางส่วน
EncryptionChaCha20AES-256 / ChaCha20AES-256
ค่าใช้จ่ายฟรี (OSS)ฟรี (OSS)ฟรี (OSS)

WireGuard เหมาะที่สุดสำหรับการใช้งานทั่วไปและ use case ส่วนตัว จุดอ่อนเดียวคือใช้ UDP เท่านั้น หากเครือข่าย block UDP ทั้งหมด (เช่น firewall เข้มงวดมาก) อาจต้องใช้ OpenVPN แทน

สิ่งที่ต้องเตรียมก่อนเริ่ม

ฝั่ง Server (VPS)

ฝั่ง Client (อุปกรณ์ที่จะเชื่อมต่อ)

ยังไม่มี VPS? แนะนำ VPS ไทยจาก AsiaGB หรือ Bangmod Cloud ที่มีเซิร์ฟเวอร์ในไทย หรือเลือก DigitalOcean สำหรับ VPS ต่างประเทศราคาเริ่มต้น $6/เดือน

ขั้นที่ 1: ติดตั้ง WireGuard บน Server

SSH เข้าไปที่ VPS แล้วรันคำสั่งต่อไปนี้:

# อัปเดต package list ก่อน
sudo apt update && sudo apt upgrade -y

# ติดตั้ง WireGuard
sudo apt install -y wireguard wireguard-tools

# ตรวจสอบว่าติดตั้งสำเร็จ
wg --version

ถ้าได้ output ประมาณ wireguard-tools v1.0.xx แสดงว่าติดตั้งสำเร็จ บน Ubuntu 22.04/24.04 kernel มี WireGuard built-in อยู่แล้ว ไม่ต้องติดตั้ง module เพิ่ม

ขั้นที่ 2: สร้าง Key Pairs สำหรับ Server

WireGuard ใช้ระบบ Public/Private Key คล้าย SSH แต่ละ peer (server และ client) ต้องมี key pair ของตัวเอง

# สร้าง private key สำหรับ server
sudo wg genkey | sudo tee /etc/wireguard/server_private.key

# สร้าง public key จาก private key
sudo cat /etc/wireguard/server_private.key | sudo wg pubkey | sudo tee /etc/wireguard/server_public.key

# ตั้ง permission ให้ปลอดภัย
sudo chmod 600 /etc/wireguard/server_private.key

# แสดง key ที่สร้าง (จด public key ไว้ใช้ทีหลัง)
echo "Server Private Key:"
sudo cat /etc/wireguard/server_private.key
echo "Server Public Key:"
sudo cat /etc/wireguard/server_public.key

จด Server Public Key ไว้ เพราะจะต้องใส่ใน config ของ client ทุกเครื่อง

ขั้นที่ 3: สร้าง Client Key Pairs

สร้าง key สำหรับ client แต่ละเครื่อง (ทำซ้ำสำหรับทุก device ที่จะเชื่อมต่อ)

# สร้าง key สำหรับ client ที่ 1 (เช่น laptop ของคุณ)
sudo wg genkey | sudo tee /etc/wireguard/client1_private.key
sudo cat /etc/wireguard/client1_private.key | sudo wg pubkey | sudo tee /etc/wireguard/client1_public.key

sudo chmod 600 /etc/wireguard/client1_private.key

echo "Client1 Private Key:"
sudo cat /etc/wireguard/client1_private.key
echo "Client1 Public Key:"
sudo cat /etc/wireguard/client1_public.key

ขั้นที่ 4: เขียน Server Configuration

สร้างไฟล์ config สำหรับ WireGuard interface wg0:

sudo nano /etc/wireguard/wg0.conf

ใส่เนื้อหาดังนี้ (แทนที่ค่าต่างๆ ด้วยค่าที่คุณได้จากขั้นที่ 2-3):

[Interface]
# IP ของ WireGuard network บน server
Address = 10.0.0.1/24

# Port ที่ WireGuard จะ listen
ListenPort = 51820

# ใส่ Server Private Key ที่ได้จากขั้นที่ 2
PrivateKey = <SERVER_PRIVATE_KEY>

# บังคับ traffic ผ่าน VPN ทั้งหมด (full tunnel)
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -A FORWARD -o wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -D FORWARD -o wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

# ===== Peer = Client 1 =====
[Peer]
# ชื่อเอาไว้อ้างอิง (comment)
# Client 1 - My Laptop

# ใส่ Client1 Public Key ที่ได้จากขั้นที่ 3
PublicKey = <CLIENT1_PUBLIC_KEY>

# IP ที่จะให้ client ใช้ใน VPN network
AllowedIPs = 10.0.0.2/32

หมายเหตุ: eth0 คือชื่อ network interface หลักบน VPS ส่วนใหญ่ บางเจ้าอาจใช้ชื่อต่างกัน เช่น ens3, ens18 ตรวจสอบด้วยคำสั่ง ip link show แล้วแทนที่ eth0 ให้ถูกต้อง

# ตรวจสอบชื่อ interface จริง
ip link show | grep "state UP" | awk -F': ' '{print $2}'

ขั้นที่ 5: เปิด IP Forwarding และตั้งค่า Firewall

เปิด IP Forwarding

IP Forwarding จำเป็นเพื่อให้ server ส่ง traffic ของ client ออกไปยัง internet ได้:

# เปิด IP Forwarding ชั่วคราว
sudo sysctl -w net.ipv4.ip_forward=1

# ตั้งให้คงอยู่หลัง reboot
sudo sed -i 's/#net.ipv4.ip_forward=1/net.ipv4.ip_forward=1/' /etc/sysctl.conf
# หรือถ้าไม่มีบรรทัดนั้น เพิ่มเอง:
echo "net.ipv4.ip_forward=1" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

เปิด Firewall Port (UFW)

# อนุญาต SSH (สำคัญมาก! อย่าลืม ไม่งั้น lock ตัวเองออก)
sudo ufw allow OpenSSH

# อนุญาต WireGuard UDP port
sudo ufw allow 51820/udp

# เปิด UFW
sudo ufw --force enable

# ตรวจสอบ status
sudo ufw status verbose

เปิด WireGuard Interface

# เริ่ม WireGuard
sudo wg-quick up wg0

# ตรวจสอบสถานะ
sudo wg show

ขั้นที่ 6: ตั้งค่า Client บน Windows

  1. ดาวน์โหลด WireGuard Installer จาก wireguard.com/install → Windows แล้วติดตั้ง
  2. เปิดแอป WireGuard → คลิก "Add Tunnel" → "Add empty tunnel"
  3. ระบบจะสร้าง Public Key ให้อัตโนมัติ — จด Public Key ไว้ เพราะต้องเพิ่มใน server config
  4. ใส่ config ดังนี้:
[Interface]
# Client Private Key (สร้างอัตโนมัติโดย app)
PrivateKey = <CLIENT_PRIVATE_KEY_จาก_App>

# IP ของ client ใน VPN network
Address = 10.0.0.2/32

# DNS server ที่จะใช้ขณะเชื่อมต่อ VPN
DNS = 1.1.1.1, 8.8.8.8

[Peer]
# ใส่ Server Public Key จากขั้นที่ 2
PublicKey = <SERVER_PUBLIC_KEY>

# IP ของ server (Public IP ของ VPS)
Endpoint = YOUR_VPS_IP:51820

# 0.0.0.0/0 = ส่ง traffic ทั้งหมดผ่าน VPN (full tunnel)
AllowedIPs = 0.0.0.0/0, ::/0

# Keepalive สำหรับ NAT traversal
PersistentKeepalive = 25

หลังใส่ config แล้ว คลิก "Save" แล้วคลิก "Activate" เพื่อเชื่อมต่อ

อย่าลืม! หลังตั้งค่า client แต่ละเครื่องเสร็จ ต้องนำ Public Key ของ client ไปเพิ่มในส่วน [Peer] ของ server config ด้วย แล้วรัน sudo wg addconf wg0 /dev/stdin หรือ restart WireGuard

ขั้นที่ 7: ตั้งค่า Client บน macOS

วิธีที่ 1: ผ่าน Mac App Store (แนะนำ)

  1. เปิด App Store → ค้นหา "WireGuard" → ติดตั้ง
  2. เปิดแอป → คลิก "+" → "Add Empty Tunnel"
  3. ใส่ config เดียวกับ Windows (เปลี่ยน Address เป็น IP ที่ไม่ซ้ำกัน เช่น 10.0.0.3/32)
  4. คลิก "Save" → คลิก toggle เพื่อเชื่อมต่อ

วิธีที่ 2: ผ่าน Homebrew (command line)

brew install wireguard-tools
# สร้าง config file
sudo mkdir -p /etc/wireguard
sudo nano /etc/wireguard/wg0.conf
# ใส่ config เหมือนด้านบน แล้ว:
sudo wg-quick up wg0

ขั้นที่ 8: ตั้งค่า Client บน iOS และ Android

iOS

  1. ติดตั้งแอป "WireGuard" จาก App Store
  2. เปิดแอป → แตะ "+"
  3. เลือก "Create from scratch" หรือ "Create from QR code"

Android

  1. ติดตั้งแอป "WireGuard" จาก Google Play
  2. แตะ "+" → "Create from scratch"
  3. ใส่ config เหมือนด้านบน โดยเปลี่ยน IP เป็น 10.0.0.4/32

วิธีสร้าง QR Code สำหรับมือถือ (สะดวกกว่า)

แทนที่จะพิมพ์ config บนมือถือ สามารถ generate QR code บน server แล้ว scan ได้เลย:

# ติดตั้ง qrencode บน server
sudo apt install -y qrencode

# สร้างไฟล์ config สำหรับ mobile client ก่อน
cat > /tmp/mobile_client.conf << EOF
[Interface]
PrivateKey = <MOBILE_CLIENT_PRIVATE_KEY>
Address = 10.0.0.4/32
DNS = 1.1.1.1

[Peer]
PublicKey = <SERVER_PUBLIC_KEY>
Endpoint = YOUR_VPS_IP:51820
AllowedIPs = 0.0.0.0/0, ::/0
PersistentKeepalive = 25
EOF

# แสดง QR code บน terminal
qrencode -t ansiutf8 < /tmp/mobile_client.conf

Scan QR code ที่ปรากฏขึ้นด้วยแอป WireGuard บนมือถือได้เลย

ขั้นที่ 9: ทดสอบการเชื่อมต่อ

หลังเชื่อมต่อ VPN บน client แล้ว ทดสอบด้วยวิธีเหล่านี้:

ตรวจสอบ IP Address

เปิด browser ไปที่ whatismyipaddress.com — IP ที่แสดงควรเป็น IP ของ VPS ไม่ใช่ IP บ้านหรือ IP เครือข่าย WiFi

ตรวจสอบบน Server

# ดูสถานะ peer ที่เชื่อมต่ออยู่
sudo wg show

# ควรเห็น "latest handshake" ของ peer ที่เชื่อมต่อ
# ถ้าเห็น "latest handshake: X seconds ago" แปลว่าเชื่อมต่อสำเร็จ

ทดสอบ Ping

# จาก client ping ไปที่ server WireGuard IP
ping 10.0.0.1

# จาก server ping ไปที่ client
ping 10.0.0.2

ขั้นที่ 10: ตั้งให้ WireGuard เริ่มอัตโนมัติหลัง Reboot

# Enable WireGuard service ด้วย systemd
sudo systemctl enable wg-quick@wg0

# เริ่ม service ทันที
sudo systemctl start wg-quick@wg0

# ตรวจสอบ status
sudo systemctl status wg-quick@wg0

หลังจากนี้ WireGuard จะเริ่มทำงานอัตโนมัติทุกครั้งที่ VPS reboot ไม่ต้องมาเริ่มเองทุกครั้ง

แก้ปัญหาที่พบบ่อย

เชื่อมต่อไม่ได้เลย (Handshake timeout)

เชื่อมต่อได้แต่ internet ไม่ทำงาน (No internet after VPN)

DNS Leak

เพิ่ม Peer ใหม่โดยไม่ต้อง Restart

# เพิ่ม peer ใหม่แบบ live (ไม่ disconnect คนที่ใช้อยู่)
sudo wg set wg0 peer <NEW_CLIENT_PUBLIC_KEY> allowed-ips 10.0.0.5/32

# บันทึกการเปลี่ยนแปลงลงไฟล์ config
sudo wg-quick save wg0

ยังไม่มี VPS สำหรับรัน WireGuard? เลือก VPS ที่เหมาะกับงบประมาณ

ดู VPS AsiaGB (ไทย)   ดู VPS Bangmod Cloud

คำถามที่พบบ่อย (FAQ)

WireGuard ใช้พอร์ตอะไร และต้องเปิดพอร์ตไหนบ้าง?
WireGuard ใช้ UDP พอร์ต 51820 เป็นค่าเริ่มต้น เปิดเฉพาะ UDP 51820 ใน firewall ก็พอ สามารถเปลี่ยนพอร์ตได้ใน ListenPort ของ server config
WireGuard ต้องการ VPS สเปกเท่าไหร่?
VPS ขนาดเล็กสุด 1 vCPU / 512MB RAM ก็รัน WireGuard Server ได้ดีมาก WireGuard ใช้ทรัพยากรน้อยมากเพราะทำงานใน kernel space
WireGuard ปลอดภัยกว่า OpenVPN จริงไหม?
WireGuard ใช้ cryptographic primitives รุ่นใหม่กว่า (ChaCha20, Poly1305, Curve25519) และมี codebase เล็กกว่า OpenVPN มาก (~4,000 vs 100,000+ บรรทัด) ทำให้ audit ง่ายกว่าและ attack surface น้อยกว่า ถือว่าปลอดภัยมากในระดับที่นักวิจัยหลายท่านยืนยัน
ใช้ WireGuard กับมือถือได้ไหม?
ได้ทั้ง iOS และ Android มี official app ใน App Store และ Google Play ตั้งค่าได้ทั้งแบบพิมพ์ config หรือ scan QR code สะดวกมาก
WireGuard ฟรีไหม? มีค่าใช้จ่ายอะไรบ้าง?
WireGuard เป็น open-source ฟรีทั้งหมด ค่าใช้จ่ายเดียวคือ VPS ที่ใช้เป็น server (เริ่มต้นประมาณ $3-6/เดือน) ไม่มีค่าสมาชิก VPN รายเดือนอีกต่อไป
Split Tunnel คืออะไร และตั้งค่ายังไง?
Split Tunnel หมายถึงส่ง traffic บางส่วนผ่าน VPN เท่านั้น แทนที่จะส่งทั้งหมด ตั้งค่าโดยเปลี่ยน AllowedIPs ใน client config จาก 0.0.0.0/0 เป็น subnet ที่ต้องการ เช่น 10.0.0.0/24 เพื่อให้เฉพาะ traffic ไป WireGuard network ผ่าน VPN