24 điểm bởi GN⁺ 2025-07-11 | 3 bình luận | Chia sẻ qua WhatsApp
  • Máy chủ quản lý reverse proxy dạng đường hầm tự self-host cung cấp tính năng tương tự Cloudflare Tunnels
  • Có thể phơi bày an toàn tài nguyên mạng riêng ra bên ngoài mà không cần port forwarding thông qua đường hầm mã hóa dựa trên WireGuard
  • Cung cấp nhiều tính năng xác thực và bảo mật như reverse proxy, xác thực ngược và kiểm soát truy cập, hỗ trợ OAuth2/OIDC, cùng bảng điều khiển web trực quan
  • Triển khai dựa trên Docker Compose giúp cài đặt và vận hành dễ dàng, đồng thời bảo đảm tự động hóa và khả năng mở rộng thông qua API và tích hợp plugin
  • Có thể vượt qua các ràng buộc mạng và quản lý tài nguyên an toàn trong nhiều môi trường khác nhau như IoT, homelab, multi-cloud, dịch vụ doanh nghiệp

Tổng quan về Pangolin

  • Pangolinmáy chủ reverse proxy dựa trên đường hầm có thể tự lưu trữ, cung cấp tính năng xác thực và kiểm soát truy cập được quản lý tập trung
  • Tích hợp với client userspace WireGuard (Newt) và nhiều client WireGuard khác, cho phép kết nối an toàn ngay cả trong môi trường bị giới hạn bởi tường lửa và NAT
  • Có thể phơi bày tài nguyên nội bộ ra bên ngoài mà không cần port forwarding, nhờ đó ẩn IP công khai và bảo vệ mạng
  • Trên dashboard có thể dễ dàng quản lý site, người dùng, vai trò, tài nguyên, đồng thời cung cấp UI hỗ trợ dark mode và thiết bị di động

Tính năng chính

  • Reverse proxy thông qua đường hầm WireGuard

    • Có thể phơi bày tài nguyên mạng mà không cần mở lỗ tường lửa (không cần mở cổng)
    • Tích hợp với client WireGuard riêng (Newt), hỗ trợ mọi client WireGuard
    • Hỗ trợ cấp chứng chỉ SSL tự động (Let's Encrypt) và các dịch vụ HTTP/HTTPS, TCP/UDP
    • Tích hợp sẵn tính năng cân bằng tải
  • Xác thực và kiểm soát truy cập

    • Hệ thống xác thực tập trung (SSO của nền tảng, OAuth2/OIDC, tích hợp IdP bên ngoài)
    • Kiểm soát truy cập dựa trên vai trò (RBAC), chỉ định IP/URL/phạm vi theo từng tài nguyên
    • Nhiều tùy chọn xác thực bổ sung như OTP qua email, TOTP, mã PIN, liên kết chia sẻ tạm thời
    • Quản lý có hệ thống thông qua cấu trúc tổ chức/site/người dùng/vai trò
  • Dashboard trực quan

    • UI gọn gàng để quản lý site/tài nguyên/người dùng/vai trò trong một màn hình
    • Giám sát theo thời gian thực mức sử dụng và trạng thái kết nối
    • Hỗ trợ chế độ sáng/tối và thiết bị di động
  • Triển khai dễ dàng và khả năng mở rộng

    • Cài đặt dựa trên Docker Compose, hỗ trợ cả cloud và on-premise
    • Cung cấp API và tài liệu Swagger, có thể tích hợp tự động hóa và script tùy chỉnh
    • Tích hợp với plugin Traefik (CrowdSec, Geoblock) để áp dụng WAF và chặn địa lý
    • Hợp nhất quản lý nhiều site bằng một máy chủ trung tâm

Các trường hợp sử dụng tiêu biểu

  • Phơi bày dịch vụ web trong môi trường bị hạn chế port forwarding (homelab/giới hạn ISP)
  • Phục vụ an toàn ứng dụng nội bộ/on-premise và trên cloud ra bên ngoài
  • Quản lý tích hợp mạng IoT: kết nối và truy cập an toàn các điểm IoT phân tán từ máy chủ trung tâm
  • Dùng như reverse proxy/load balancer hợp nhất cho multi-cloud, mạng hybrid

Điểm khác biệt so với các dự án tương tự

  • Cloudflare Tunnels: tương tự dịch vụ reverse proxy dựa trên SaaS, nhưng Pangolin là self-hosted nên có toàn quyền kiểm soát hạ tầng
  • Authelia: được truyền cảm hứng từ cơ chế xác thực tập trung và quản lý vai trò

Triển khai và giấy phép

  • Cung cấp hướng dẫn từng bước để triển khai máy chủ trung tâm bằng Docker Compose, liên kết domain, kết nối site và phơi bày tài nguyên
  • Chính sách cấp phép kép với AGPL-3 và giấy phép thương mại của Fossorial

3 bình luận

 
ng0301 2025-07-13

Không dễ để dùng kiểu bấm cái là xong cho thật tiện.

 
ndrgrd 2025-07-13

Mọi thứ đều ổn, nhưng nếu dùng cái này thì không thể điều khiển WireGuard trên hệ thống. Nếu muốn dùng riêng với tunnel thì phải tách ra bằng VM.

 
GN⁺ 2025-07-11
Ý kiến trên Hacker News
  • Xin chào, tôi là một trong những maintainer chính khác của dự án này. Tôi muốn giải thích chi tiết hơn một chút về các thành phần khác của hệ thống. Pangolin nội bộ sử dụng Traefik để xử lý như một HTTP proxy. Một plugin tên là Badger đảm nhiệm việc xác thực mọi request thông qua Pangolin. Dịch vụ thứ hai là Gerbil, một máy chủ quản lý cho phép Pangolin tạo các peer WireGuard cho kết nối. Cuối cùng là Newt, một công cụ CLI và container Docker giúp tận dụng WireGuard hoàn toàn trong user space, giao tiếp với Gerbil để proxy các tài nguyên cục bộ. Nhờ vậy, khi public service thì không cần chạy tiến trình với quyền root hay container đặc quyền
    • Tôi đã dùng nó vài tháng để tunnel traffic từ một VPS nhỏ của Hetzner về nhà. Trải nghiệm rất mượt và ổn định. Tôi từng nghĩ có một vấn đề, nhưng hóa ra không liên quan đến Pangolin. Có thể xem chi tiết tại đây
    • Sẽ rất hữu ích nếu tài liệu có các mini tutorial cho từng trường hợp sử dụng được nhắc ở đây, để có thể nhanh chóng thử nghiệm và xem nó có phù hợp không
  • Cái này thực sự rất thú vị. Tôi luôn không thích việc bị phụ thuộc vào Cloudflare Tunnel, nên thấy một lựa chọn thay thế mã nguồn mở đúng là rất mới mẻ. Tôi tò mò Pangolin xử lý các phần khó như mạng không ổn định, vấn đề xác thực, hay scale như thế nào. Nếu ai đã dùng thực tế rồi thì rất mong chia sẻ xem nó so với kiểu ma thuật “cứ thế là chạy” của Cloudflare ra sao. Tôi đặc biệt muốn biết liệu nó có hoạt động tốt cho self-hosting tại nhà không. Hiện tôi đang chạy blog và nhiều dự án sở thích tại nhà bằng Raspberry Pi. Những trải nghiệm thực tế như vậy sẽ thực sự hữu ích
  • Cái này có vẻ thực sự thú vị cho việc quản lý nhiều remote development box hoặc các mục đích tương tự. Thực ra tôi chưa từng tham gia sâu vào kiểu hạ tầng như vậy nên câu hỏi có thể hơi cơ bản. Tôi chưa từng dùng CF Tunnel, từ trước đến nay chỉ tạo reverse proxy tunnel bằng SSH hoặc dùng Tailscale. Tôi làm vậy vì các dịch vụ nội bộ thử nghiệm chỉ nằm trên một thiết bị cụ thể nào đó, như instance EC2 hoặc laptop ở nhà. Nói ngắn gọn, tôi muốn hỏi liệu bạn có thể giải thích Pangolin khác gì so với một giải pháp như tailscale không
    • SSH hay Tailscale mà bạn đang dùng thực sự rất phù hợp cho mục đích đó. Pangolin nói chung gần với các tunnel tĩnh, thường trực hướng tới service hơn là kiểu tạm thời như SSH tunnel. Nó phù hợp khi bạn muốn public các ứng dụng trong mạng nội bộ để người bên ngoài như gia đình có thể truy cập bằng trình duyệt web. Ví dụ, nếu bạn muốn đưa một ứng dụng nội bộ cho doanh nghiệp hoặc các dịch vụ homelab như Immich hay Grafana ra ngoài qua trình duyệt, công cụ này sẽ rất hữu ích. Hy vọng điều đó giúp bạn dễ hình dung hơn
    • Tôi dùng CF Tunnel rất nhiều trên máy chủ unraid ở nhà. Tóm lại, khi tôi muốn public một ứng dụng cụ thể mà không muốn thêm một node Tailscale nào nữa, ví dụ em trai tôi dùng Plex server của tôi, thì tôi chỉ tạo một subdomain trong CF rồi route subdomain đó tới CF Tunnel. Mỗi site/service chỉ cần điền ba ô trong form, và SSL certificate cũng được cấp tự động. Vì vậy tôi đang dùng khá hài lòng
    • Tailscale (và headscale) rất phù hợp để truy cập các tài nguyên nội bộ không thể truy cập từ bên ngoài. Bạn cũng có thể dùng nó khi muốn chặn NAS khỏi bên ngoài và chỉ cho truy cập nội bộ. Cloudflare Tunnel thì giúp public dịch vụ ra ngoài đồng thời vẫn có một chút bảo vệ. Một số người còn để backend chỉ truy cập qua tailscale, còn phần public thì chỉ mở qua Cloudflare Tunnel. Kết nối trực tiếp Cloudflare Tunnel với một nginx proxy manager trung tâm cũng hoàn toàn là một cách làm ổn. Tất nhiên Tailscale cũng có thể route tới dịch vụ public, nhưng Cloudflare cung cấp lớp bảo vệ chắc chắn hơn đôi chút. Pangolin cũng có vẻ rất đáng thử, và khi test thì có thể để nó sau Cloudflare Tunnel rồi nếu cần thì chuyển ra phía trước
  • Đây là một câu hỏi nghiêm túc của người mới về bảo mật. Khi dùng các giải pháp kiểu này, tôi muốn biết kịch bản tệ nhất về mặt an ninh là gì. Có vẻ như nếu xác thực bị phá thì ngay cả các cổng nội bộ cũng có thể bị lộ, nhưng ngoài ra còn điều gì khác cần đặc biệt lưu ý không
  • Vì đây là dịch vụ xác thực nên phạm vi ảnh hưởng khá lớn, tôi muốn biết liệu đã có audit bảo mật chuyên nghiệp hay chưa và có chương trình kiểm thử xâm nhập bảo mật công khai chính thức nào không
    • Nếu đã audit rồi thì tôi nghĩ hẳn sẽ được ghi trong tài liệu
  • Trông rất tuyệt. Gần đây tôi cũng đã dựng một hệ thống tương tự bằng cách dùng hộp OPNSense để chuyển DNS, instance WireGuard và certificate sang Nginx reverse proxy của Synology. Ở phía client, tôi chỉ bật WG tunnel cho dải IP nội bộ và để nó chỉ hoạt động với DNS nội bộ, để public certificate không làm lộ IP của tôi. Cách này hoạt động ổn với mạng ở nhà, nhưng khi xử lý nhiều site thì Pangolin có vẻ gọn gàng và dễ cấu hình hơn. Tôi muốn hỏi liệu Newt có phải là một triển khai WireGuard riêng biệt cho server hay không, và nó đã từng được audit bảo mật chưa
  • Tôi tò mò Pangolin khác NetBird ở điểm nào. NetBird cũng self-hosted và hoàn toàn mã nguồn mở. Link GitHub NetBird
    • Theo tôi biết thì bản mã nguồn mở của NetBird không bao gồm toàn bộ tính năng. Điều khiến tôi từ bỏ là chi phí SSO
    • Tôi cũng muốn biết rõ hơn. Trường hợp sử dụng thì giống nhau, nhưng về mặt kỹ thuật thì khác. NetBird là một lựa chọn thay thế Tailscale dựa trên WireGuard, còn Pangolin dùng Traefik. Tôi là người dùng NetBird và rất hài lòng. Thiết kế UI của cả hai cũng có vài điểm tương đồng
  • Tôi muốn biết nó khác gì so với các dự án mã nguồn mở khác như zrok
  • Dự án này thực sự rất hay. Tôi đã dùng tailscale và nginx proxy manager cài trên VPS để public các ứng dụng của mình, và đã viết về nó ở đây. Pangolin có vẻ tương tự nhưng cung cấp UI và khả năng kiểm soát tốt hơn, nên tôi chắc chắn sẽ thử. Có một điều tôi thắc mắc là nó có xử lý được nhiều domain hay không. Tôi đang trỏ nhiều domain về VPS rồi proxy qua nginx proxy manager, không biết Pangolin có hỗ trợ nhiều domain theo cách đó không
  • Có khá nhiều lựa chọn thay thế mã nguồn mở cho Cloudflare Tunnels: link GitHub awesome-tunneling. Trong số đó, tôi nghĩ Pangolin là một trong những giải pháp hoàn thiện và trau chuốt nhất