บทความนี้มีลิงก์ affiliate — หากคุณคลิกซื้อ เราอาจได้รับค่าคอมมิชชันโดยไม่มีค่าใช้จ่ายเพิ่มจากคุณ · นโยบายบรรณาธิการ
Cloudflare Tunnel Setup Guide

Cloudflare · Security · VPS Guide

คู่มือ Cloudflare Tunnel 2026: สร้าง Secure Tunnel บน VPS ฟรี ไม่ต้องเปิด Port

โดย ทีมรีวิว CloudPicked · อัปเดตล่าสุด กันยายน 2026 · อ่าน ~12 นาที

สรุปสั้น: Cloudflare Tunnel (cloudflared) ให้คุณเชื่อมต่อ server หรือ VPS กับ Cloudflare Network ผ่าน outbound-only connection — ไม่ต้องเปิด inbound port, ไม่ต้องมี Public IP, ฟรีสำหรับการใช้งานพื้นฐาน

สารบัญ

  1. Cloudflare Tunnel คืออะไร
  2. ทำงานอย่างไร
  3. ข้อดีหลัก
  4. ข้อกำหนดเบื้องต้น
  5. ติดตั้ง cloudflared บน Linux
  6. สร้าง Tunnel ทีละขั้น
  7. ตั้งค่า config.yml
  8. Use Cases ที่พบบ่อย
  9. Cloudflare Tunnel vs. VPN
  10. ข้อจำกัดที่ควรรู้
  11. FAQ

Cloudflare Tunnel คืออะไร

Cloudflare Tunnel (เดิมชื่อ Argo Tunnel) คือบริการของ Cloudflare ที่ช่วยให้คุณเปิดเผย services บน server ของคุณ — ไม่ว่าจะเป็นเว็บแอป, SSH server, หรือ Remote Desktop — ผ่าน Cloudflare Network โดยไม่ต้องกำหนดค่าไฟร์วอลล์ขาเข้าหรือมี Public IP address

หัวใจของระบบคือ daemon ชื่อ cloudflared ที่รันบน server ของคุณ มันสร้าง outbound connection ออกไปหา Cloudflare data centers เอง แล้ว Cloudflare ก็ใช้ connection นั้นในการ proxy traffic เข้ามาหา service ของคุณ ผลลัพธ์คือ traffic สองทิศทางผ่าน connection ขาออกเพียงเส้นเดียว

เทคโนโลยีนี้เหมาะมากสำหรับ:

Cloudflare Tunnel เป็นส่วนหนึ่งของ Cloudflare Zero Trust (เดิมชื่อ Cloudflare for Teams) และใช้งานฟรีได้สำหรับกรณีใช้งานพื้นฐาน — ข้อมูล ณ กันยายน 2026 ตรวจสอบล่าสุดที่ cloudflare.com

ทำงานอย่างไร

หลักการทำงานของ Cloudflare Tunnel แบ่งเป็น 3 ส่วน:

1. cloudflared daemon

daemon ชื่อ cloudflared ที่คุณติดตั้งบน server สร้าง outbound-only connections ไปยัง Cloudflare global network (ใช้ Cloudflare Anycast — ชี้ไปยัง data center ที่ใกล้ที่สุดอัตโนมัติ) connection เหล่านี้เป็น encrypted และไม่ต้องการ inbound firewall rule ใดๆ

2. Tunnel UUID

แต่ละ Tunnel มี UUID เฉพาะตัว ทำหน้าที่เป็น logical link ระหว่าง origin server กับ Cloudflare สามารถรัน cloudflared หลาย process (connectors) ในหนึ่ง tunnel เดียวเพื่อ high availability ได้

3. Traffic routing

เมื่อมี request เข้ามาที่โดเมนของคุณ (เช่น app.example.com) Cloudflare รับ request นั้น แล้ว route ผ่าน tunnel ไปยัง cloudflared daemon บน server คุณ จากนั้น cloudflared ส่ง request ต่อไปยัง service ที่คุณกำหนด (เช่น localhost:3000) และส่ง response กลับมาในทางเดิม

ข้อสังเกต: traffic ถูก authenticate โดย tunnel credentials ที่ cloudflared ถือ ทำให้ไม่มีใครสามารถเชื่อมต่อเข้า tunnel ได้โดยไม่มีสิทธิ์

ข้อดีหลักของ Cloudflare Tunnel

ข้อดีรายละเอียด
ไม่ต้องเปิด inbound portลด attack surface ไฟร์วอลล์ทุก inbound port ปิดได้หมด
ไม่ต้องมี Public IPทำงานได้แม้อยู่หลัง NAT, CGNAT, หรือ ISP ที่ไม่ให้ Static IP
ซ่อน Origin IPผู้โจมตีไม่รู้ IP จริงของ server DDoS protection โดยอัตโนมัติ
TLS อัตโนมัติCloudflare จัดการ SSL/TLS certificate ให้ ไม่ต้อง certbot
ฟรีสำหรับพื้นฐานHTTP tunnel สำหรับ Cloudflare Free plan ใช้ได้ไม่มีค่าใช้จ่าย
Anycast globalCloudflare มีกว่า 300 data centers ทั่วโลก latency ต่ำ
Zero Trust รองรับเพิ่ม Access Policy บังคับ authentication ก่อนเข้า service ได้

ข้อกำหนดเบื้องต้น

ก่อนเริ่มต้น คุณต้องมีสิ่งเหล่านี้ครบ:

ไม่ต้องมี: Static IP, Public IP, inbound firewall rule, หรือ SSL certificate จาก Let's Encrypt

ติดตั้ง cloudflared บน Linux (Ubuntu/Debian)

Cloudflare จัดทำ package repository อย่างเป็นทางการ ติดตั้งผ่านคำสั่งดังนี้:

วิธีที่ 1: ผ่าน apt repository (แนะนำ)

# เพิ่ม Cloudflare GPG key
curl -fsSL https://pkg.cloudflare.com/cloudflare-main.gpg | sudo tee /usr/share/keyrings/cloudflare-main.gpg > /dev/null

# เพิ่ม repository
echo "deb [signed-by=/usr/share/keyrings/cloudflare-main.gpg] https://pkg.cloudflare.com/cloudflared $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/cloudflared.list

# อัปเดตและติดตั้ง
sudo apt update && sudo apt install cloudflared -y

# ตรวจสอบเวอร์ชัน
cloudflared --version

วิธีที่ 2: ดาวน์โหลด binary โดยตรง

# สำหรับ Linux x86_64
wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb
sudo dpkg -i cloudflared-linux-amd64.deb

สำหรับ RHEL/CentOS

sudo yum install cloudflared

สร้าง Tunnel ทีละขั้น

ขั้นที่ 1: Login เข้า Cloudflare

cloudflared tunnel login

คำสั่งนี้จะเปิด browser ให้คุณ login Cloudflare account และเลือกโดเมนที่ต้องการใช้งาน เมื่อเสร็จแล้ว cloudflared จะบันทึก credentials ไว้ที่ ~/.cloudflared/cert.pem

ขั้นที่ 2: สร้าง Tunnel ใหม่

cloudflared tunnel create my-tunnel

แทน my-tunnel ด้วยชื่อที่คุณต้องการ หลังรันคำสั่ง จะได้ output แสดง Tunnel UUID เช่น xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx และ path ของ credentials file จดหรือคัดลอก UUID ไว้

ขั้นที่ 3: Route DNS

cloudflared tunnel route dns my-tunnel app.example.com

คำสั่งนี้สร้าง CNAME record ใน Cloudflare DNS อัตโนมัติ ชี้ app.example.com ไปยัง tunnel endpoint โดยที่ Cloudflare proxy เปิดอยู่ (orange cloud)

ขั้นที่ 4: สร้างไฟล์ config

mkdir -p ~/.cloudflared
nano ~/.cloudflared/config.yml

ขั้นที่ 5: รัน Tunnel

cloudflared tunnel run my-tunnel

ตั้งค่าไฟล์ config.yml

ไฟล์ ~/.cloudflared/config.yml กำหนดว่า cloudflared จะ route traffic ไปที่ไหน

สำหรับเว็บแอปทั่วไป (HTTP)

tunnel: <YOUR-TUNNEL-UUID>
credentials-file: /root/.cloudflared/<YOUR-TUNNEL-UUID>.json

ingress:
  - hostname: app.example.com
    service: http://localhost:3000
  - service: http_status:404

สำหรับหลาย service

tunnel: <YOUR-TUNNEL-UUID>
credentials-file: /root/.cloudflared/<YOUR-TUNNEL-UUID>.json

ingress:
  - hostname: app.example.com
    service: http://localhost:3000
  - hostname: api.example.com
    service: http://localhost:8080
  - hostname: dashboard.example.com
    service: http://localhost:8443
    originRequest:
      noTLSVerify: true
  - service: http_status:404

รันเป็น systemd service (เริ่มอัตโนมัติเมื่อ boot)

# ติดตั้ง systemd service
sudo cloudflared service install

# เริ่ม service
sudo systemctl start cloudflared
sudo systemctl enable cloudflared

# ตรวจสอบสถานะ
sudo systemctl status cloudflared

Use Cases ที่พบบ่อย

1. Expose เว็บแอป / API

กรณีที่ง่ายที่สุด รัน web server (Nginx, Apache, Node.js, Python Flask ฯลฯ) บน localhost แล้วให้ cloudflared expose ออกผ่านโดเมน

# ตัวอย่าง: Node.js รันบน port 3000
ingress:
  - hostname: myapp.example.com
    service: http://localhost:3000
  - service: http_status:404

2. SSH ผ่าน Browser (ไม่ต้องเปิด port 22)

Cloudflare Tunnel รองรับ SSH access ผ่าน browser โดยใช้ Cloudflare Access ร่วมกัน ไม่ต้องเปิด port 22 สู่ Internet เลย

# config สำหรับ SSH tunnel
ingress:
  - hostname: ssh.example.com
    service: ssh://localhost:22
  - service: http_status:404

ผู้ใช้สามารถ SSH ได้ผ่าน cloudflared access ssh --hostname ssh.example.com หลัง authenticate ผ่าน Cloudflare Access

3. Remote Desktop (RDP)

ingress:
  - hostname: rdp.example.com
    service: rdp://localhost:3389
  - service: http_status:404

4. Private Network (Zero Trust)

สำหรับองค์กรที่ต้องการ ZTNA ตั้งค่า warp-routing เพื่อให้ Cloudflare WARP client เข้าถึง private network ได้

tunnel: <UUID>
credentials-file: /root/.cloudflared/<UUID>.json
warp-routing:
  enabled: true

5. Expose localhost สำหรับ Development

นักพัฒนาที่ต้องการทดสอบ webhook หรือให้ client เห็น local dev server สามารถใช้ cloudflared tunnel --url http://localhost:3000 เพื่อสร้าง temporary public URL ได้ทันที (ไม่ต้องตั้ง config)

cloudflared tunnel --url http://localhost:3000

Cloudflare Tunnel vs. VPN ทั่วไป

คุณสมบัติCloudflare TunnelVPN (WireGuard/OpenVPN)
Public IP จำเป็นไม่จำเป็นจำเป็น (หรือ DDNS)
เปิด Inbound Portไม่ต้องต้อง (UDP 51820/TCP 1194)
SSL/TLSจัดการอัตโนมัติต้องตั้งค่าเอง
ค่าใช้จ่ายฟรี (พื้นฐาน)ค่า VPS/server
DDoS protectionใช่ (Cloudflare)ขึ้นอยู่กับ provider
Zero Trust / Accessรองรับ built-inต้องเพิ่ม layer อื่น
Latencyต่ำ (Anycast)ขึ้นอยู่กับ server location
ความซับซ้อนต่ำ (ไม่กี่คำสั่ง)สูงกว่า (config มาก)
Route ทั้ง networkได้ (warp-routing)ได้ (split tunnel)

โดยสรุป Cloudflare Tunnel เหมาะกว่าสำหรับ expose specific services สู่ Internet อย่างปลอดภัย ส่วน VPN เหมาะกว่าสำหรับ full network access ระหว่าง clients

ข้อจำกัดที่ควรรู้

บทสรุป

Cloudflare Tunnel เป็นเครื่องมือที่ทรงพลังและฟรีสำหรับการ expose services บน VPS หรือ home server อย่างปลอดภัย ด้วยการตั้งค่าไม่กี่คำสั่ง คุณได้ทั้ง SSL อัตโนมัติ, DDoS protection, และไม่ต้องเปิด firewall ใดๆ เหมาะมากสำหรับนักพัฒนา, sysadmin, และผู้ที่ใช้ home server

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

Cloudflare Tunnel ใช้ฟรีได้ไหม?

ใช้ฟรีได้สำหรับการใช้งานพื้นฐาน เพียงมี Cloudflare account (Free plan) และโดเมนที่ใช้ Cloudflare Nameserver — ข้อมูล ณ กันยายน 2026 ตรวจสอบล่าสุดที่ cloudflare.com

ต่างจาก VPN ทั่วไปอย่างไร?

Cloudflare Tunnel ใช้ outbound-only connection ไม่ต้องเปิด inbound port บนไฟร์วอลล์ ไม่ต้องมี Public IP ต่างจาก VPN ที่ต้องการทั้งสองอย่าง

ต้องมี Public IP ไหม?

ไม่จำเป็น cloudflared daemon เชื่อมต่อออกไปหา Cloudflare Network เอง เหมาะกับ server หลัง NAT หรือ CGNAT

รองรับ protocol อะไรบ้าง?

รองรับ HTTP/HTTPS (เว็บแอป), SSH, RDP (Remote Desktop), และ TCP protocols อื่นๆ ตาม Cloudflare documentation

ติดตั้งบน Linux distro ใดได้บ้าง?

รองรับ Ubuntu, Debian, RHEL/CentOS, Arch Linux และอื่นๆ รวมถึง macOS (Homebrew) และ Windows

ถ้า cloudflared crash แล้ว tunnel จะเป็นอย่างไร?

tunnel จะหยุดทำงาน แนะนำให้ติดตั้งเป็น systemd service และตั้ง Restart=always เพื่อให้ restart อัตโนมัติ

ใช้กับ AsiaGB Hosting ได้ไหม?

ได้ ถ้าโดเมนของคุณใช้ Cloudflare Nameserver สามารถ run cloudflared บน VPS หรือ server ที่ใดก็ได้ รวมถึง hosting ที่รองรับ SSH

ต้องการโฮสติ้งไทยที่เชื่อถือได้?

ทีมรีวิว CloudPicked แนะนำ AsiaGB.com — โฮสติ้งไทยที่ support 24 ชม. พร้อม DirectAdmin ราคาประหยัด

ดู AsiaGB →