2 ก.ย. เวลา 14:39 • การศึกษา

Cloudflare Tunnel คืออะไร

โดย
เคยไหมครับที่ต้องเปิดพอร์ตบนเราเตอร์บ้านเพื่อให้คนนอกเข้ามาใช้งานเว็บไซต์หรือบริการที่รันอยู่บนเครื่องของคุณ ซึ่งทั้งยุ่งยากและมีความเสี่ยงด้านความปลอดภัยอย่างมาก หรือถ้าคุณใช้บริการอินเทอร์เน็ตที่อยู่หลังระบบ CGNAT ที่ไม่มี Public IP ให้ใช้ การเปิดพอร์ตก็แทบจะเป็นไปไม่ได้เลย
Cloudflare Tunnel คือคำตอบของปัญหาทั้งหมดนี้ มันคือเทคโนโลยีที่ช่วยให้คุณสามารถเชื่อมต่อเซิร์ฟเวอร์หรือแอปพลิเคชันที่รันอยู่บนเครื่องของคุณ (หรือที่ใดก็ได้) ออกสู่โลกอินเทอร์เน็ตได้อย่างปลอดภัย โดยไม่ต้องเปิดพอร์ตใดๆ บนเราเตอร์ และยังมาพร้อมกับฟีเจอร์ด้านความปลอดภัยและประสิทธิภาพจากเครือข่ายระดับโลกของ Cloudflare อีกด้วย
  • ​Cloudflare Tunnel คืออะไร?
Cloudflare Tunnel คือบริการที่สร้างการเชื่อมต่อที่ปลอดภัยและเข้ารหัสระหว่างเครื่องเซิร์ฟเวอร์ (Origin Server) ของคุณกับเครือข่ายระดับโลกของ Cloudflare แทนที่คุณจะต้องเปิดพอร์ตบนเราเตอร์เพื่อให้โลกภายนอกเข้าถึงเซิร์ฟเวอร์ได้ (ซึ่งมีความเสี่ยง) ตัว Tunnel จะใช้โปรแกรมขนาดเล็กชื่อ cloudflared ที่ติดตั้งบนเครื่องของคุณเพื่อสร้างการเชื่อมต่อแบบ Outbound-only หรือการเชื่อมต่อที่ออกไปด้านนอกสู่ Cloudflare
การทำงานแบบ Outbound-only นี้คือหัวใจสำคัญด้านความปลอดภัย เพราะไม่จำเป็นต้องเปิดพอร์ตขาเข้าใดๆ บนไฟร์วอลล์ของคุณเลย ทำให้เซิร์ฟเวอร์ของคุณแทบจะมองไม่เห็นจากโลกภายนอก ลดความเสี่ยงจากการถูกโจมตีได้อย่างมาก
สรุปสั้นๆ: Cloudflare Tunnel คือบริการที่สร้างการเชื่อมต่อที่ปลอดภัยและเข้ารหัสจากเซิร์ฟเวอร์ของคุณไปยังเครือข่าย Cloudflare โดยไม่ต้องเปิดพอร์ตใดๆ ช่วยให้คุณสามารถเผยแพร่บริการต่างๆ (เว็บไซต์, API, SSH) สู่สาธารณะอินเทอร์เน็ตได้อย่างปลอดภัย
  • ​Cloudflare Tunnel ทำงานอย่างไร?
การทำงานของ Cloudflare Tunnel มีขั้นตอนหลักๆ ดังนี้ครับ
⚪ ติดตั้งและเชื่อมต่อ: ติดตั้งโปรแกรม cloudflared บนเครื่องเซิร์ฟเวอร์เพื่อสร้างการเชื่อมต่อออกไปยังเครือข่าย Cloudflare โดยการเชื่อมต่อนี้จะคงอยู่ตลอดเวลา (Persistent Connection) เพื่อพร้อมรับคำขอจากภายนอกเสมอ
⚪ สร้าง Tunnel และกำหนดเส้นทาง: สร้างอุโมงค์เชื่อมต่อและกำหนดเส้นทาง (Route) โดยแมป Public Hostname (เช่น my-app.example.com) ไปยัง Service ที่รันอยู่บนเครื่องคุณ (เช่น http://localhost:3000 หรือ ssh://localhost:22)
⚪ การรับส่งข้อมูล: เมื่อมีผู้ใช้เข้าถึง Public Hostname คำขอจะถูกส่งไปยังเครือข่าย Cloudflare แล้วส่งต่อผ่าน Tunnel ที่เชื่อมต่ออยู่ มายัง Service ในเครื่องของคุณ และส่งข้อมูลกลับในเส้นทางเดิม
⚪ การจัดการและความปลอดภัย: สามารถบริหารจัดการ Tunnel ทั้งหมดผ่าน Cloudflare Dashboard ได้อย่างง่ายดาย พร้อมรับการปกป้องด้วยฟีเจอร์ WAF (Web Application Firewall), การป้องกัน DDoS และ Caching โดยอัตโนมัติ
  • ​ประเภทของ Cloudflare Tunnel
Cloudflare Tunnel มีให้เลือกใช้ 2 รูปแบบหลักๆ เพื่อรองรับการใช้งานที่แตกต่างกันดังนี้ครับ
1) Quick Tunnels (TryCloudflare Tunnels):
⚪ ลักษณะ: เหมาะสำหรับการทดสอบและพัฒนาอย่างรวดเร็ว ใช้งานง่ายมากโดยไม่ต้องมีบัญชี Cloudflare หรือโดเมนเป็นของตัวเอง
⚪ การใช้งาน: เพียงรันคำสั่ง cloudflared tunnel --url http://localhost:3000 เพื่อรับ URL ชั่วคราวที่ลงท้ายด้วย .trycloudflare.com ได้ทันที
⚪ จุดประสงค์: เหมาะสำหรับทดสอบงาน แชร์เดโมให้ทีมดู หรือทดสอบ Webhook
⚪ ข้อจำกัด: URL ไม่คงที่ (เปลี่ยนใหม่ทุกครั้งที่รัน), รองรับคำขอพร้อมกันสูงสุด 200 คำขอ, ไม่รองรับ Server-Sent Events (SSE) และไม่มีการรับประกันความเสถียร (No SLA)
2) Named Tunnels (Cloudflare Tunnel เต็มรูปแบบ):
⚪ ลักษณะ: เหมาะสำหรับการใช้งานจริง (Production) และต้องการความเสถียรสูง โดยต้องใช้บัญชี Cloudflare และโดเมนที่จัดการผ่าน Cloudflare
⚪ การใช้งาน: ตั้งค่าผ่าน Dashboard หรือ CLI เพื่อสร้าง Tunnel และกำหนด DNS Record เพื่อแมปโดเมนของคุณเข้ากับ Tunnel
⚪ จุดประสงค์: เผยแพร่เว็บแอปพลิเคชัน, API หรือบริการต่างๆ สู่สาธารณะอย่างเป็นทางการ
⚪ ข้อดี: ได้รับ URL คงที่, รองรับปริมาณทราฟฟิกได้มาก, รองรับหลายโปรโตคอล (HTTP, HTTPS, TCP, SSH, RDP) และสามารถกำหนดเส้นทางได้อย่างละเอียด
  • ​ประโยชน์ของ Cloudflare Tunnel
✅ ปลอดภัยสูงสุด: ไม่ต้องเปิดพอร์ตใดๆ บนเราเตอร์หรือไฟร์วอลล์ ช่วยลดพื้นที่การถูกโจมตี (Attack Surface) ได้อย่างมาก พร้อมการเข้ารหัสความปลอดภัยระดับ Post-Quantum Encryption
✅ เข้าถึงได้แม้ไม่มี Public IP: ทำงานได้แม้เครื่องของคุณจะอยู่หลังเครือข่าย CGNAT หรือไฟร์วอลล์ที่เข้มงวด เพราะเป็นการเชื่อมต่อที่เครื่องของคุณเป็นฝ่ายออกไปหา Cloudflare
✅ ยกระดับประสิทธิภาพและความปลอดภัย: ทราฟฟิกทั้งหมดได้รับประโยชน์จากเครือข่าย CDN ระดับโลกของ Cloudflare รวมถึง Caching, การป้องกัน DDoS, WAF และ Bot Management
✅ ใช้งานง่ายและยืดหยุ่น: สามารถแมป Public Hostname หลายๆ อันไปยัง Service หลายๆ ตัวบนเครื่องเดียวกันหรือคนละเครื่องก็ได้ รองรับทั้ง HTTP/HTTPS, SSH, RDP และ TCP
✅ ใช้งานฟรีสำหรับระดับพื้นฐาน: ให้บริการฟรีในแผน Hobby ซึ่งเพียงพอสำหรับการใช้งานส่วนตัวหรือโปรเจกต์ขนาดเล็ก
  • ​บัญชีฟรี (Hobby Plan) ทำอะไรได้บ้าง?
สำหรับ Cloudflare Tunnel แผนฟรีมีข้อดีหลักๆ ดังนี้ครับ:
✅ สร้าง Named Tunnels ไม่จำกัด: สามารถสร้าง Tunnel ที่มีชื่อและ URL คงที่ได้หลายๆ ตัวโดยไม่มีค่าใช้จ่าย
✅ ไม่จำกัดแบนด์วิดท์: ไม่มีข้อจำกัดเรื่องปริมาณข้อมูลที่ส่งผ่าน Tunnel
✅ ฟีเจอร์ความปลอดภัยพื้นฐานครบครัน: ได้รับการป้องกัน DDoS และ WAF ในระดับพื้นฐาน
✅ ข้อกำหนด: ต้องมีโดเมนเป็นของตนเองและตั้งค่า DNS ไว้กับ Cloudflare
  • ​Cloudflare Tunnel VS TryCloudflare Tunnels
ความแตกต่างระหว่าง Cloudflare Tunnel (Named Tunnel) และ TryCloudflare Tunnel (Quick Tunnel) ในแต่ละด้าน มีรายละเอียดดังนี้ครับ
🔗 ความคงที่ของ URL: Cloudflare Tunnel (Named Tunnel) ให้ URL ที่คงที่และสามารถกำหนดชื่อเองได้ ในขณะที่ TryCloudflare Tunnel (Quick Tunnel) จะได้ URL แบบไม่คงที่ ซึ่งจะสุ่มใหม่ทุกครั้งที่เริ่มรัน
📝 ข้อกำหนดเรื่องบัญชีและโดเมน: Cloudflare Tunnel จำเป็นต้องมีบัญชี Cloudflare และโดเมนส่วนตัว ส่วน TryCloudflare Tunnel สามารถใช้งานได้ทันทีโดยไม่ต้องมีบัญชีหรือโดเมน
🛡️ ระดับความน่าเชื่อถือ: Cloudflare Tunnel มีความน่าเชื่อถือสูง เหมาะกับการใช้งานบน Production และมี SLA รองรับ ในขณะที่ TryCloudflare Tunnel เหมาะสำหรับการทดสอบชั่วคราวเท่านั้น และไม่มี SLA
⚠️ ข้อจำกัดทางเทคนิค: Cloudflare Tunnel รองรับการเชื่อมต่อพร้อมกันจำนวนมากและรองรับ SSE ส่วน TryCloudflare Tunnel จำกัดไว้ที่ 200 คำขอพร้อมกัน และไม่รองรับ SSE
🧑‍🦱 ความเหมาะสมในการใช้งาน: Cloudflare Tunnel เหมาะกับเว็บไซต์จริง, API หรือบริการที่ต้องการความเสถียร ส่วน TryCloudflare Tunnel เหมาะกับการทดสอบสั้นๆ หรือการแชร์เดโมระหว่างพัฒนา
  • ​ตัวอย่างการใช้งาน Cloudflare Tunnel
⚪ โฮสต์เว็บไซต์ที่บ้าน (Self-hosting): ใช้ Tunnel เปิดให้คนภายนอกเข้าถึงเว็บเซิร์ฟเวอร์บน Raspberry Pi หรือคอมพิวเตอร์เก่าได้อย่างปลอดภัย โดยไม่ต้องเปิดพอร์ตและไม่ต้องกังวลเรื่อง Dynamic IP
⚪ พัฒนาและทดสอบเว็บแอปพลิเคชัน: แชร์งานที่กำลังพัฒนาให้ทีมงานหรือลูกค้าทดสอบ หรือใช้ทดสอบการรับ Webhook จากบริการภายนอก
⚪ เข้าถึง SSH และ RDP อย่างปลอดภัย: ใช้งาน Remote Desktop หรือ SSH ผ่าน Tunnel แทนการเปิด Port 22 หรือ 3389 บนเราเตอร์
⚪ เชื่อมต่อ Workers กับฐานข้อมูลส่วนตัว: ใช้ Tunnel เชื่อมต่อ Cloudflare Workers เข้ากับฐานข้อมูล PostgreSQL หรือ MySQL ที่รันอยู่บนเครื่องตนเองได้อย่างปลอดภัย
  • ​ตัวอย่างการเริ่มต้นใช้งานง่ายๆ
1) Quick Tunnel (สำหรับทดสอบ):
Bash
# 1. ติดตั้ง cloudflared
# (สำหรับ macOS: brew install cloudflared)
# 2. รัน tunnel เพื่อ expose localhost:3000
cloudflared tunnel --url http://localhost:3000
คุณจะได้ URL .trycloudflare.com มาใช้งานได้ทันทีครับ
2) Named Tunnel (สำหรับใช้งานจริง):
⚪ เพิ่มโดเมนใน Cloudflare: ไปที่ Dashboard และเพิ่มโดเมนของคุณ
⚪ ติดตั้ง cloudflared: ติดตั้งตามระบบปฏิบัติการของคุณ
⚪ สร้าง Tunnel: ผ่าน Dashboard หรือใช้คำสั่ง cloudflared tunnel create <tunnel-name>
⚪ กำหนดเส้นทาง: ตั้งค่าให้แมปโดเมน (เช่น app.example.com) ไปยัง Service ที่รันอยู่ (เช่น http://localhost:3000)
✏️ Shoper Gamer
  • ​[Shoper Gamer] Trycloudflare Tunnels คืออะไร 👇
  • ​[Shoper Gamer] Public IP คืออะไร 👇
  • ​[Shoper Gamer] Cloudflare Pages คืออะไร 👇
Credit :
👇
  • ​https://sync.co.th/blog/cloudflare-tunnel
  • ​https://developers.cloudflare.com/cloudflare-one/networks/connectors/cloudflare-tunnel/do-more-with-tunnels/trycloudflare/
  • ​https://developers.cloudflare.com/cloudflare-one/networks/connectors/cloudflare-tunnel/
  • ​https://www.cloudflare.com/learning/network-layer/what-is-tunneling/
โฆษณา