Back to articles
Technology Insight

Triển khai Zrok trên VPS: Giải pháp chia sẻ dịch vụ local ra internet an toàn thay thế hoàn hảo cho Ngrok

June 2, 2026

Giới thiệu về bài toán chia sẻ dịch vụ Local ra Internet

Trong quá trình phát triển phần mềm, kiểm thử ứng dụng hoặc triển khai các giải pháp IoT, các lập trình viên thường xuyên đối mặt với nhu cầu chia sẻ một dịch vụ đang chạy ở máy tính cá nhân (localhost) ra ngoài internet. Điều này giúp khách hàng có thể duyệt thử giao diện, hỗ trợ webhook từ các nền tảng bên thứ ba (như Stripe, GitHub, Facebook) gửi dữ liệu về máy local, hoặc đơn giản là cấu hình kiểm thử từ xa.

Từ lâu, Ngrok đã trở thành một công cụ quốc dân nhờ sự tiện lợi và nhanh chóng. Tuy nhiên, cùng với thời gian, các chính sách giới hạn băng thông, giới hạn số lượng tunnel, chi phí bản quyền ngày càng tăng, và đặc biệt là các cảnh báo bảo mật nghiêm ngặt từ trình duyệt (như màn hình cảnh báo đỏ của Ngrok) đã khiến trải nghiệm của người dùng giảm sút đáng kể. Đây chính là lúc chúng ta cần một giải pháp thay thế mạnh mẽ, mã nguồn mở và có thể tự làm chủ (self-hosted). Giải pháp đó chính là Zrok.

Zrok là gì? Tại sao nên chọn Zrok thay thế Ngrok?

Zrok là một nền tảng chia sẻ ngang hàng (peer-to-peer) và chia sẻ công khai (public sharing) thế hệ mới, được xây dựng trên nền tảng mạng bảo mật OpenZiti. Khác với các công cụ truyền thống, Zrok không chỉ cung cấp giải pháp tạo đường hầm (tunneling) thông thường mà còn tập trung tối đa vào yếu tố an toàn và quyền kiểm soát dữ liệu.

Dưới đây là những lý do cốt lõi khiến việc triển khai Zrok trên VPS cá nhân trở thành lựa chọn tối ưu cho doanh nghiệp và các kỹ sư phần mềm:

  • Hoàn toàn mã nguồn mở (Open Source): Bạn có toàn quyền kiểm soát mã nguồn, không lo ngại về vấn đề rò rỉ dữ liệu hoặc nhà cung cấp ngừng dịch vụ đột ngột.
  • Không giới hạn băng thông và số lượng kết nối: Khi tự triển khai trên VPS riêng, giới hạn duy nhất là cấu hình phần cứng và băng thông của gói VPS bạn mua.
  • Tích hợp kiến trúc Zero Trust: Zrok kế thừa lớp bảo mật tối tân từ OpenZiti, giúp ẩn hoàn toàn các cổng (ports) dịch vụ của bạn khỏi sự quét dòn của các mã độc trên internet.
  • Hỗ trợ cả Public và Private Share: Bạn có thể chia sẻ công khai qua một URL có mã hóa SSL, hoặc chia sẻ an toàn trong nội bộ (chỉ những máy cài Zrok client mới truy cập được).
Xu hướng tự làm chủ (Self-hosting) các dịch vụ hạ tầng như Zrok không chỉ giúp tiết kiệm chi phí mà còn là bước đi chiến lược trong việc bảo vệ tài sản trí tuệ và dữ liệu khách hàng của doanh nghiệp.

Yêu cầu chuẩn bị hệ thống

Để quá trình cài đặt và cấu hình diễn ra suôn sẻ, bạn cần chuẩn bị các thành phần cơ bản sau:

  1. Một máy chủ ảo (VPS) chạy hệ điều hành Linux (khuyến nghị sử dụng Ubuntu 22.04 LTS hoặc mới hơn) có địa chỉ IP công khai (Public IP).
  2. Một tên miền (Domain name) đã được trỏ bản ghi A về IP của VPS (Ví dụ: zrok.yourdomain.com và một bản ghi wildcard *.zrok.yourdomain.com).
  3. Quyền truy cập cao nhất (root) hoặc quyền thực thi lệnh qua sudo trên VPS.
  4. Máy tính cá nhân (Local machine) chạy Windows, macOS hoặc Linux để làm môi trường kiểm thử chia sẻ dịch vụ.

Hướng dẫn chi tiết các bước triển khai Zrok Server trên VPS

Bước 1: Cập nhật hệ thống và cài đặt Docker

Phương pháp triển khai Zrok Server ổn định và nhanh chóng nhất hiện nay là sử dụng Docker và Docker Compose. Đầu tiên, hãy kết nối SSH vào VPS của bạn và cập nhật hệ thống:

sudo apt update && sudo apt upgrade -y

Tiếp theo, tiến hành cài đặt Docker và Docker Compose nếu máy chủ của bạn chưa có sẵn:

sudo apt install docker.io docker-compose -y

Bước 2: Tải file cấu hình Zrok và thiết lập môi trường

Tạo một thư mục riêng biệt dành cho Zrok để dễ dàng quản lý dữ liệu:

mkdir ~/zrok-server && cd ~/zrok-server

Tải file cấu hình mẫu từ kho lưu trữ chính thức của Zrok. Bạn cần chuẩn bị file docker-compose.yml cấu hình sẵn dịch vụ zrok controller và các thành phần proxy phụ trợ. Tiến hành tạo file cấu hình môi trường .env để định nghĩa tên miền của bạn:

ZROK_DOMAIN=zrok.yourdomain.com
ZROK_ADMIN_PASSWORD=MatKhauBaoMatCuaBan

Bước 3: Khởi chạy Zrok Server và cấu hình SSL

Để đảm bảo toàn bộ dữ liệu truyền tải qua đường hầm được mã hóa an toàn, việc cấu hình SSL (HTTPS) là bắt buộc. Bạn có thể sử dụng Nginx Reverse Proxy kết hợp với Let's Encrypt để tự động cấp phát chứng chỉ SSL miễn phí cho tên miền chính và tên miền phụ dạng wildcard.

Sau khi cấu hình proxy hoàn tất, kích hoạt hệ thống Zrok bằng lệnh:

sudo docker-compose up -d

Kiểm tra trạng thái hoạt động của các container để đảm bảo không có lỗi xảy ra:

sudo docker-compose ps

Hướng dẫn sử dụng Zrok Client để chia sẻ dịch vụ Local

Bước 1: Cài đặt Zrok CLI trên máy tính cá nhân

Tùy thuộc vào hệ điều hành máy tính của bạn, hãy tải xuống phiên bản Zrok CLI phù hợp từ trang chủ zrok.io hoặc sử dụng các trình quản lý gói:

  • Đối với macOS (Sử dụng Homebrew): brew install openziti/ziti/zrok
  • Đối với Windows (Sử dụng Winget): winget install openziti.zrok
  • Đối với Linux: Tải file binary trực tiếp từ GitHub và chuyển vào thư mục /usr/local/bin/.

Bước 2: Đăng ký tài khoản và kích hoạt môi trường

Truy cập vào giao diện quản trị của Zrok Server trên VPS thông qua trình duyệt (địa chỉ bạn đã cấu hình), tạo một tài khoản người dùng mới. Sau khi đăng nhập, hệ thống sẽ cấp cho bạn một chuỗi token kích hoạt duy nhất (Token ID).

Tại terminal máy tính cá nhân, thực hiện lệnh sau để liên kết máy của bạn với hệ thống server riêng:

zrok enable 

Bước 3: Tạo Tunnel chia sẻ dịch vụ công khai (Public Share)

Giả sử bạn đang chạy một ứng dụng web ở cổng 8080 trên máy local (ví dụ: một dự án Node.js hoặc Python). Để đưa dịch vụ này ra internet công khai, bạn chỉ cần chạy lệnh đơn giản sau:

zrok share public http://localhost:8080

Ngay lập tức, Zrok sẽ trả về một URL có cấu trúc cố định hoặc ngẫu nhiên dạng [https://subdomain.zrok.yourdomain.com](https://subdomain.zrok.yourdomain.com). Bất kỳ ai trên thế giới cũng có thể truy cập vào URL này để kiểm tra ứng dụng đang chạy dưới máy của bạn.

Các lưu ý quan trọng về bảo mật khi vận hành hệ thống Zrok tự hosted

Mặc dù Zrok mang lại tính an toàn cực cao nhờ kiến trúc Zero Trust, khi tự vận hành một hệ thống server chia sẻ, bạn vẫn cần tuân thủ các nguyên tắc bảo mật cốt lõi:

  • Giới hạn quyền đăng ký tài khoản: Sau khi đã tạo đủ tài khoản cho đội ngũ lập trình viên trong công ty, hãy tắt tính năng đăng ký tự do (public registration) trong file cấu hình để tránh bị kẻ xấu lợi dụng tài nguyên VPS làm nơi phát tán mã độc.
  • Thường xuyên cập nhật Docker Image: Đội ngũ phát triển Zrok liên tục phát hành các bản vá lỗi và tối ưu hiệu năng. Hãy lên lịch cập nhật các container định kỳ.
  • Giám sát băng thông: Sử dụng các công cụ như Prometheus hoặc Grafana để theo dõi lưu lượng mạng đi qua VPS, kịp thời phát hiện các dấu hiệu bất thường như tấn công DDoS hoặc thất thoát dữ liệu lớn.

Kết luận

Việc thay thế hoàn toàn Ngrok bằng Zrok tự triển khai trên VPS không chỉ là giải pháp tối ưu về mặt chi phí đối với các lập trình viên và doanh nghiệp, mà còn nâng tầm bảo mật hệ thống lên một tiêu chuẩn mới với kiến trúc Zero Trust. Với tốc độ cao, khả năng tùy biến vô hạn và sự minh bạch của mã nguồn mở, Zrok chắc chắn sẽ trở thành một trong những công cụ không thể thiếu trong bộ công cụ (toolkit) của mọi DevOps và Developer chuyên nghiệp trong kỷ nguyên số.

Triển khai Zrok trên VPS: Giải pháp chia sẻ dịch vụ local ra internet an toàn thay thế hoàn hảo cho Ngrok | DPTCloud