24 คะแนน โดย GN⁺ 2025-07-11 | 3 ความคิดเห็น | แชร์ทาง WhatsApp
  • เซิร์ฟเวอร์จัดการ reverse proxy แบบ tunneling ที่โฮสต์เองได้ ซึ่งให้ความสามารถคล้ายกับ Cloudflare Tunnels
  • สามารถเปิดให้เข้าถึงทรัพยากรเครือข่ายส่วนตัวจากภายนอกได้อย่างปลอดภัยผ่าน อุโมงค์เข้ารหัสที่ใช้ WireGuard โดยไม่ต้องทำ port forwarding
  • มาพร้อมฟีเจอร์ด้านการยืนยันตัวตนและความปลอดภัยหลากหลาย เช่น reverse proxy, reverse authentication และ access control, รองรับ OAuth2/OIDC รวมถึง เว็บแดชบอร์ดที่ใช้งานง่าย
  • ติดตั้งและดูแลได้สะดวกด้วย การดีพลอยบน Docker Compose พร้อมรองรับ API และการเชื่อมต่อปลั๊กอิน เพื่อการทำงานอัตโนมัติและการขยายระบบ
  • ช่วยหลีกเลี่ยงข้อจำกัดด้านเครือข่ายและจัดการทรัพยากรได้อย่างปลอดภัยใน สภาพแวดล้อมหลากหลาย เช่น IoT, homelab, multicloud และบริการธุรกิจ

ภาพรวมของ Pangolin

  • Pangolin คือ เซิร์ฟเวอร์ reverse proxy แบบ tunneling ที่โฮสต์เองได้ พร้อมฟังก์ชันการยืนยันตัวตนและการควบคุมการเข้าถึงแบบรวมศูนย์
  • ทำงานร่วมกับ ไคลเอนต์ WireGuard แบบ userspace (Newt) และไคลเอนต์ WireGuard หลากหลายรูปแบบ จึงเชื่อมต่อได้อย่างปลอดภัยแม้อยู่ในสภาพแวดล้อมที่มีข้อจำกัดจากไฟร์วอลล์และ NAT
  • สามารถเปิดเผยทรัพยากรภายในสู่ภายนอกได้โดยไม่ต้องทำ port forwarding ช่วย ซ่อน public IP และปกป้องเครือข่าย
  • จัดการ ไซต์ ผู้ใช้ บทบาท และทรัพยากร ได้ง่ายผ่านแดชบอร์ด พร้อม UI ที่รองรับ โหมดมืดและมือถือ

ฟีเจอร์หลัก

  • Reverse proxy ผ่านอุโมงค์ WireGuard

    • สามารถ เปิดให้เข้าถึงทรัพยากรเครือข่ายได้โดยไม่ต้องเจาะไฟร์วอลล์ (ไม่จำเป็นต้องเปิดพอร์ต)
    • ทำงานร่วมกับไคลเอนต์ WireGuard ของตัวเอง (Newt) และรองรับไคลเอนต์ WireGuard ทุกประเภท
    • ออก ใบรับรอง SSL อัตโนมัติ (Let's Encrypt) และรองรับบริการ HTTP/HTTPS, TCP/UDP
    • มีฟังก์ชัน load balancing ในตัว
  • การยืนยันตัวตนและการควบคุมการเข้าถึง

    • ระบบยืนยันตัวตนแบบรวมศูนย์ (platform SSO, OAuth2/OIDC, เชื่อมต่อกับ IdP ภายนอก)
    • การควบคุมการเข้าถึงตามบทบาท (RBAC) พร้อมกำหนด IP/URL/ช่วงสำหรับแต่ละทรัพยากร
    • ตัวเลือกการยืนยันตัวตนเพิ่มเติมหลากหลาย เช่น email OTP, TOTP, PIN code, ลิงก์แชร์ชั่วคราว
    • จัดการอย่างเป็นระบบผ่านโครงสร้างองค์กร/ไซต์/ผู้ใช้/บทบาท
  • แดชบอร์ดที่ใช้งานง่าย

    • UI เรียบง่ายสำหรับจัดการ ไซต์/ทรัพยากร/ผู้ใช้/บทบาท ได้ในภาพรวม
    • มอนิเตอร์การใช้งานและสถานะการเชื่อมต่อแบบเรียลไทม์
    • รองรับโหมดสว่าง/มืด และการใช้งานบนมือถือ
  • การดีพลอยที่ง่ายและการขยายระบบ

    • ติดตั้งบน Docker Compose รองรับทั้งคลาวด์และ on-premise
    • มี เอกสาร API และ Swagger รองรับการทำงานอัตโนมัติและการเชื่อมต่อกับสคริปต์แบบกำหนดเอง
    • เชื่อมต่อกับปลั๊กอิน Traefik (CrowdSec, Geoblock) เพื่อใช้งาน WAF และ geo-blocking
    • รวมศูนย์การจัดการหลายไซต์ด้วยเซิร์ฟเวอร์กลางตัวเดียว

กรณีการใช้งานเด่น

  • เปิดให้เข้าถึงเว็บเซอร์วิสใน สภาพแวดล้อมที่มีข้อจำกัดด้าน port forwarding (homelab/ข้อจำกัดจาก ISP)
  • ให้บริการ แอปพลิเคชันภายในองค์กร/on-premise และบนคลาวด์สู่ภายนอกอย่างปลอดภัย
  • การจัดการเครือข่าย IoT แบบรวมศูนย์: เชื่อมต่อและเข้าถึงไซต์ IoT ที่กระจายตัวจากเซิร์ฟเวอร์กลางอย่างปลอดภัย
  • ใช้เป็น reverse proxy/load balancer แบบรวมศูนย์สำหรับ multicloud และเครือข่ายไฮบริด

จุดต่างจากโปรเจ็กต์ที่คล้ายกัน

  • Cloudflare Tunnels: มีลักษณะคล้ายบริการ reverse proxy แบบ SaaS แต่ Pangolin เป็นแบบ self-hosted จึงมี สิทธิ์ควบคุมโครงสร้างพื้นฐานได้อย่างสมบูรณ์
  • Authelia: ได้รับแรงบันดาลใจจากแนวทางด้านการยืนยันตัวตนแบบรวมศูนย์และการจัดการบทบาท

การดีพลอยและไลเซนส์

  • มีคู่มือแบบเป็นขั้นตอนสำหรับการดีพลอยเซิร์ฟเวอร์กลางด้วย Docker Compose การเชื่อมต่อโดเมน การเชื่อมต่อไซต์ และการเปิดเผยทรัพยากร
  • ใช้นโยบาย dual license ภายใต้ AGPL-3 และไลเซนส์เชิงพาณิชย์ของ Fossorial

3 ความคิดเห็น

 
ng0301 2025-07-13

ดูเหมือนจะไม่ได้ใช้งานง่ายแบบคลิกเดียวจบ

 
ndrgrd 2025-07-13

ทุกอย่างดีหมด แต่ถ้าใช้ตัวนี้จะไม่สามารถควบคุม Wireguard จากในระบบได้ ถ้าอยากใช้แยกจาก Tunnel ก็ต้องแยกไปใช้บน VM ครับ

 
GN⁺ 2025-07-11
ความคิดเห็นจาก Hacker News
  • สวัสดีครับ ผมเป็นเมนเทนเนอร์อีกคนของโปรเจกต์นี้ อยากอธิบายคอมโพเนนต์อื่น ๆ ของระบบให้ละเอียดขึ้นอีกหน่อย Pangolin ใช้ Traefik ภายในสำหรับการทำงานแบบ HTTP proxy โดยมีปลั๊กอินชื่อ Badger ที่จัดการการยืนยันตัวตนของทุกคำขอผ่าน Pangolin ส่วนบริการที่สองคือ Gerbil ซึ่งเป็นเซิร์ฟเวอร์จัดการที่ทำให้ Pangolin สร้าง WireGuard peer สำหรับการเชื่อมต่อได้ สุดท้ายคือ Newt ซึ่งเป็น CLI tool และ Docker container ที่ใช้ WireGuard ใน user space ได้อย่างเต็มรูปแบบ สื่อสารกับ Gerbil และทำหน้าที่พร็อกซีทรัพยากรในเครื่อง ด้วยเหตุนี้จึงไม่จำเป็นต้องรันโปรเซสที่ใช้สิทธิ์ root หรือคอนเทนเนอร์แบบ privileged เมื่อต้องการเปิดเผยบริการ
    • ผมใช้สิ่งนี้มาหลายเดือนแล้วบน VPS ขนาดเล็กของ Hetzner เพื่อทำ tunneling ทราฟฟิกกลับเข้าบ้าน ประสบการณ์ลื่นไหลและเสถียรมาก เคยคิดว่ามีปัญหาอยู่ข้อหนึ่ง แต่สุดท้ายก็ไม่ได้เกี่ยวกับ Pangolin สามารถดูรายละเอียดได้ที่นี่
    • ถ้ามีมินิทิวทอเรียลในเอกสารสำหรับแต่ละกรณีการใช้งานที่พูดถึงตรงนี้ ก็น่าจะช่วยให้ลองทดสอบได้เร็วและดูได้ว่ามันมีประโยชน์ไหม
  • น่าสนใจมาก ผมหงุดหงิดมาตลอดกับการต้องพึ่งพา Cloudflare Tunnel ดังนั้นการได้เห็นทางเลือกโอเพนซอร์สจึงสดใหม่จริง ๆ อยากรู้ว่า Pangolin จัดการกับเรื่องยาก ๆ อย่างความไม่เสถียรของเครือข่าย ปัญหาการยืนยันตัวตน และการสเกลอย่างไร ใครที่ลองใช้จริงแล้วช่วยเล่าให้ฟังหน่อยว่าเมื่อเทียบกับความมหัศจรรย์แบบ “มันใช้ได้เลย” ของ Cloudflare แล้วเป็นอย่างไร โดยเฉพาะอยากรู้ว่ามันทำงานได้ดีไหมสำหรับการโฮสต์เองที่บ้าน ตอนนี้ผมรันบล็อกและโปรเจกต์งานอดิเรกหลายอย่างจากบ้านด้วย Raspberry Pi ประสบการณ์ใช้งานจริงน่าจะช่วยได้มาก
  • สิ่งนี้ดูน่าสนใจมากสำหรับการจัดการ remote development box หลายเครื่องหรือการใช้งานคล้าย ๆ กัน จริง ๆ แล้วผมไม่ได้มีประสบการณ์ลึกกับอินฟราประเภทนี้มากนัก เลยอาจถามอะไรพื้นฐานไปหน่อย ผมไม่เคยใช้ CF tunnel มาก่อน และจนถึงตอนนี้ก็แค่ทำ reverse proxy tunnel ผ่าน SSH หรือใช้ Tailscale บ้างเป็นครั้งคราว เพราะบริการภายในที่ใช้ทดสอบมีอยู่เฉพาะบนอุปกรณ์บางตัวเท่านั้น เช่น EC2 instance หรือโน้ตบุ๊กที่บ้าน สรุปง่าย ๆ คืออยากให้ช่วยอธิบายว่า Pangolin แตกต่างจากโซลูชันอย่าง tailscale อย่างไร
    • SSH หรือ Tailscale ที่คุณใช้อยู่นั้นเหมาะกับจุดประสงค์นั้นมากแล้ว โดยทั่วไป Pangolin จะใกล้เคียงกับ tunnel แบบคงที่และทำงานตลอดเวลาที่พาไปยังบริการ มากกว่าจะเป็นแบบชั่วคราวเหมือน ssh tunnel เหมาะเมื่อคุณอยากเปิดเผยแอปในเครือข่ายให้คนนอก เช่น ครอบครัว เข้าถึงผ่านเว็บเบราว์เซอร์ ตัวอย่างเช่น ถ้าคุณอยากให้แอปภายในสำหรับธุรกิจ หรือบริการโฮมแล็บอย่าง Immich หรือ Grafana เปิดให้เข้าจากภายนอกผ่านเบราว์เซอร์ เครื่องมือนี้จะมีประโยชน์มาก หวังว่าจะช่วยให้เห็นภาพนะ
    • ผมใช้ CF tunnel อย่างหนักบนเซิร์ฟเวอร์ unraid ที่บ้าน สรุปก็คือ ถ้าผมอยากเปิดเผยบางแอป แต่ไม่อยากเพิ่ม Tailscale node เข้าไปอีกตัว เช่น น้องชายของผมที่ใช้ Plex server ของผม ผมก็แค่สร้าง subdomain บน CF แล้ว route subdomain นั้นไปที่ CF tunnel กรอกฟอร์มแค่สามช่องต่อหนึ่งไซต์/บริการ และระบบก็ออก SSL certificate ให้อัตโนมัติ ผมเลยใช้งานอย่างพอใจมาก
    • Tailscale (รวมถึง headscale) เหมาะมากสำหรับการเข้าถึงทรัพยากรภายในที่ไม่เปิดให้เข้าจากภายนอก เช่น ใช้กับ NAS ที่ต้องการบล็อกจากภายนอกและให้เข้าถึงได้เฉพาะภายใน ส่วน Cloudflare tunnel เหมาะสำหรับการเปิดบริการออกสู่ภายนอกพร้อมมีการป้องกันบางส่วน ผู้ใช้บางคนให้ backend เข้าถึงได้ผ่าน tailscale เท่านั้น และเปิดฝั่งสาธารณะผ่าน Cloudflare tunnel เท่านั้น การเชื่อม Cloudflare tunnel ตรงเข้ากับ nginx proxy manager ส่วนกลางก็เป็นวิธีที่ทำได้ดีเช่นกัน แน่นอนว่า Tailscale ก็สามารถ route ไปยังบริการสาธารณะได้เหมือนกัน แต่ Cloudflare ให้การป้องกันที่แข็งแรงกว่าเล็กน้อย Pangolin ก็ดูน่าสนใจพอที่จะลองทดสอบ และตอนทดสอบอาจวางไว้หลัง Cloudflare tunnel ก่อน แล้วค่อยเอามาไว้ด้านหน้าทีหลังก็ได้
  • ขอถามแบบมือใหม่ด้านความปลอดภัยอย่างจริงจังหน่อยครับ เวลาใช้โซลูชันประเภทนี้ ในมุมมองความปลอดภัย worst-case scenario คืออะไร ถ้าการยืนยันตัวตนถูกเจาะได้ ก็เดาว่าพอร์ตภายในคงถูกเปิดเผยได้ แต่มีอย่างอื่นที่ควรระวังเพิ่มเติมไหม
  • เพราะมันเป็นบริการยืนยันตัวตนที่มีผลกระทบกว้าง อยากรู้ว่าได้ทำ security audit โดยมืออาชีพหรือยัง และมีโปรแกรม public security penetration test อย่างเป็นทางการหรือไม่
    • ถ้ามีการ audit ก็น่าจะระบุไว้ในเอกสารนะ
  • ดูดีมากเลย ผมเองก็เพิ่งทำอะไรคล้าย ๆ กัน โดยใช้กล่อง OPNSense จัดการ DNS, WireGuard instance และส่งต่อ certificate ไปยัง Nginx reverse proxy ของ Synology ฝั่งไคลเอนต์ผมเปิด WG tunnel เฉพาะกับช่วง IP ภายใน และให้ทำงานผ่าน internal DNS เท่านั้น เพื่อไม่ให้ public certificate เปิดเผย IP ของผม วิธีนี้ไม่มีปัญหากับเครือข่ายที่รันอยู่ที่บ้าน แต่ถ้าต้องดูแลหลายไซต์ Pangolin น่าจะดูเนี้ยบกว่าและตั้งค่าง่ายกว่า อยากรู้ว่า Newt เป็น implementation แยกของ WireGuard server หรือเปล่า และเคยผ่าน security audit ไหม
  • อยากรู้ความแตกต่างระหว่าง Pangolin กับ NetBird NetBird ก็ self-host ได้และโอเพนซอร์สเต็มตัวเหมือนกัน ลิงก์ GitHub ของ NetBird
    • เท่าที่ผมรู้ NetBird ไม่ได้ใส่ทุกฟีเจอร์ไว้ในเวอร์ชันโอเพนซอร์ส และสุดท้ายผมก็เลิกใช้เพราะค่าใช้จ่ายด้าน SSO
    • ผมก็อยากรู้รายละเอียดมากกว่านี้เหมือนกัน use case ดูคล้ายกัน แต่ทางเทคนิคต่างกัน NetBird เป็นทางเลือกของ Tailscale ที่ใช้ WireGuard ส่วน Pangolin ใช้ Traefik ผมเป็นผู้ใช้ NetBird และพอใจมาก UI design ของทั้งสองที่ก็มีความคล้ายกันอยู่
  • อยากรู้ว่าสิ่งนี้ต่างจากโอเพนซอร์สตัวอื่นอย่าง zrok อย่างไร
  • เป็นโปรเจกต์ที่เจ๋งมาก ผมใช้ tailscale กับ nginx proxy manager ที่ติดตั้งบน VPS เพื่อเปิดเผยแอปของผมสู่ภายนอก และเขียนเรื่องนั้นไว้ที่นี่ Pangolin ดูคล้ายกันแต่ให้ UI และการควบคุมที่ดีกว่า เลยตั้งใจว่าจะลองใช้แน่นอน มีคำถามหนึ่งคือมันรองรับหลายโดเมนไหม ตอนนี้ผมชี้หลายโดเมนเข้าหา VPS แล้วให้ nginx proxy manager ทำหน้าที่พร็อกซี ไม่แน่ใจว่า Pangolin รองรับหลายโดเมนแบบนี้หรือเปล่า
  • มีโอเพนซอร์สทางเลือกของ Cloudflare Tunnels อยู่ค่อนข้างมาก: ลิงก์ GitHub awesome-tunneling และในกลุ่มนั้นผมคิดว่า Pangolin เป็นหนึ่งในโซลูชันที่สมบูรณ์และขัดเกลามากที่สุดตัวหนึ่ง