Quay lại danh sách
Tin tức công nghệ

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

1 tháng 6, 2026

Giới thiệu về bài toán chia sẻ dịch vụ Local và sự hạn chế của Ngrok

Trong quy trình phát triển phần mềm hiện đại, các lập trình viên thường xuyên phải đối mặt với nhu cầu chia sẻ ứng dụng đang chạy ở môi trường máy cá nhân (localhost) ra ngoài Internet. Đó có thể là để demo sản phẩm cho khách hàng, kiểm thử webhook từ các dịch vụ bên thứ ba (như Stripe, PayPal, Facebook API), hoặc phối hợp làm việc nhóm từ xa. Trong nhiều năm qua, Ngrok đã trở thành công cụ quốc dân cho bài toán này nhờ sự tiện lợi và nhanh chóng.

Tuy nhiên, các chính sách thương mại hóa gần đây của Ngrok đã tạo ra không ít rào cản cho cộng đồng công nghệ. Phiên bản miễn phí của Ngrok hiện tại bị giới hạn nghiêm ngặt về băng thông, số lượng kết nối đồng thời, và đặc biệt là việc thay đổi URL ngẫu nhiên mỗi khi khởi động lại. Để sở hữu một subdomain cố định hoặc các tính năng bảo mật nâng cao, doanh nghiệp buộc phải trả một mức chi phí không hề nhỏ tính trên đầu người. Chính vì lý do này, việc tìm kiếm một giải pháp thay thế tự chủ, mạnh mẽ và tiết kiệm chi phí trở thành ưu tiên hàng đầu của nhiều đội ngũ kỹ thuật.

Zrok là gì? Tại sao đây là giải pháp thay thế hoàn hảo?

Zrok là một nền tảng chia sẻ ngang hàng (peer-to-peer share platform) thế hệ mới được xây dựng trên nền tảng OpenZiti — một khung kiến trúc mạng Zero Trust mã nguồn mở mãnh mẽ. Khác với Ngrok hoạt động theo mô hình SaaS đóng, Zrok vừa cung cấp dịch vụ đám mây miễn phí, vừa cho phép người dùng tự host (self-host) hoàn toàn trên hạ tầng riêng của mình, ví dụ như trên một máy chủ ảo cá nhân (VPS).

Dưới đây là những lý do khiến Zrok vượt trội hơn so với Ngrok và các đối thủ khác:

  • Mã nguồn mở và Miễn phí: Bạn có toàn quyền kiểm soát mã nguồn, không lo ngại về chi phí bản quyền ẩn hoặc việc bị giới hạn tính năng bất ngờ.
  • Bảo mật Zero Trust: Tích hợp sâu với OpenZiti, Zrok đảm bảo mọi kết nối đều được xác thực và mã hóa đầu cuối (end-to-end encryption), giảm thiểu tối đa nguy cơ tấn công mạng.
  • Hỗ trợ kết nối đa dạng: Không chỉ dừng lại ở HTTP/HTTPS, Zrok hỗ trợ chia sẻ cả các giao thức TCP, UDP, và đặc biệt là tính năng chia sẻ tệp tin trực tiếp (v2v - volume sharing) hoặc tạo proxy bảo mật riêng tư.
  • Băng thông không giới hạn: Khi triển khai self-hosted trên VPS cá nhân, giới hạn duy nhất về băng thông và tốc độ chính là cấu hình phần cứng và network của chính VPS đó.

Hướng dẫn chuẩn bị hạ tầng trước khi cài đặt Zrok

Để quá trình triển khai Zrok self-hosted diễn ra suôn sẻ, bạn cần chuẩn bị một số thành phần hạ tầng cơ bản sau:

  1. Một máy chủ VPS: Hệ điều hành Ubuntu Server (khuyến nghị bản 20.04 LTS hoặc 22.04 LTS) có IP công khai (Public IP). Cấu hình tối thiểu chỉ cần 1 vCPU và 1GB RAM.
  2. Tên miền (Domain Name): Một tên miền do bạn sở hữu (ví dụ: yourdomain.com). Bạn cần quyền truy cập vào quản trị DNS để cấu hình các bản ghi.
  3. Cấu hình DNS: Trỏ hai bản ghi sau về IP công khai của VPS:
    • Bản ghi A: zrok.yourdomain.com (Dành cho giao diện quản trị và API endpoint).
    • Bản ghi Wildcard A: *.zrok.yourdomain.com (Dành cho các tunnel dịch vụ được tạo tự động).
Lưu ý quan trọng: Đảm bảo rằng các cổng tiêu chuẩn như 80 (HTTP), 443 (HTTPS) và cổng đặc trưng của Zrok (thường là 10080 hoặc tùy chọn) không bị chặn bởi tường lửa của nhà cung cấp VPS (Security Groups/Firewall).

Các bước triển khai Zrok Self-Hosted chi tiết trên VPS

Bước 1: Cài đặt Docker và Docker Compose

Phương thức triển khai tối ưu và dễ quản lý nhất hiện nay là sử dụng Docker. Hãy cập nhật hệ thống và cài đặt Docker Engine bằng các câu lệnh sau:

sudo apt update && sudo apt upgrade -y
sudo apt install docker.io docker-compose -y

Sau khi cài đặt thành công, hãy đảm bảo dịch vụ Docker đang chạy ổn định:

sudo systemctl enable --now docker

Bước 2: Tải về cấu hình triển khai Zrok

Nhóm phát triển Zrok cung cấp sẵn các tệp cấu hình Docker Compose mẫu giúp đơn giản hóa quy trình khởi tạo. Bạn tạo thư mục làm việc và tải tệp cấu hình về:

mkdir ~/zrok-stack && cd ~/zrok-stack
wget [https://raw.githubusercontent.com/openziti/zrok/main/docker/multi-host/docker-compose.yml](https://raw.githubusercontent.com/openziti/zrok/main/docker/multi-host/docker-compose.yml)

Bước 3: Cấu hình biến môi trường (.env)

Tạo một tệp .env nằm cùng thư mục với tệp docker-compose.yml vừa tải để định nghĩa các tham số hệ thống:

ZROK_DOMAIN=zrok.yourdomain.com
ZROK_ADMIN_PASSWORD=MatKhauBaoMatCuaBan
[email protected]
ZROK_USER_PASSWORD=MatKhauNguoiDung

Hãy thay đổi các giá trị trên cho phù hợp với thông tin tên miền và mật khẩu bảo mật của riêng bạn.

Bước 4: Khởi động hệ thống Zrok

Mọi thứ đã sẵn sàng, hãy kích hoạt các container bằng lệnh:

sudo docker-compose up -d

Quá trình này sẽ tự động tải các image cần thiết của OpenZiti và Zrok Controller, thiết lập mạng nội bộ và khởi chạy dịch vụ. Bạn có thể kiểm tra trạng thái bằng lệnh sudo docker-compose ps.

Cách sử dụng Zrok để chia sẻ dịch vụ từ máy local

Sau khi hệ thống Zrok Controller trên VPS đã hoạt động ổn định, bạn có thể bắt đầu sử dụng môi trường này từ máy tính cá nhân của mình.

1. Cài đặt Zrok CLI trên máy Local

Đối với hệ điều hành macOS hoặc Linux, bạn có thể cài đặt nhanh qua script hoặc package manager. Đối với Windows, bạn tải tệp thực thi (.exe) từ trang GitHub Releases chính thức của Zrok và thêm vào biến môi trường PATH.

2. Xác thực môi trường (Environment Authentication)

Truy cập vào giao diện web của Zrok trên VPS qua địa chỉ [http://zrok.yourdomain.com](http://zrok.yourdomain.com), đăng nhập bằng tài khoản đã cấu hình trong tệp .env. Tại giao diện quản trị, bạn sẽ nhận được một chuỗi mã token xác thực (mã kích hoạt).

Chạy lệnh sau tại terminal máy local để liên kết máy cá nhân với hệ thống VPS của bạn:

zrok enable 

3. Tạo Tunnel chia sẻ dịch vụ

Giả sử bạn đang chạy một dự án web ở cổng 8080 trên máy local (localhost:8080). Để đưa dịch vụ này ra ngoài Internet một cách công khai, bạn chỉ cần thực hiện lệnh đơn giản sau:

zrok share public http://localhost:8080

Ngay lập tức, Zrok CLI sẽ trả về một URL có định dạng cố định hoặc tùy biến thuộc tên miền của bạn, ví dụ: [https://my-web-app.zrok.yourdomain.com](https://my-web-app.zrok.yourdomain.com). Bất kỳ ai trên thế giới cũng có thể truy cập vào URL này để xem ứng dụng đang chạy trên máy của bạn.

Đánh giá hiệu năng và những lưu ý về bảo mật khi vận hành

Qua các thử nghiệm thực tế, việc tự điều phối lưu lượng qua VPS cá nhân giúp giảm thiểu đáng kể độ trễ (latency) so với việc sử dụng máy chủ dùng chung của Ngrok ở nước ngoài, đặc biệt là khi bạn chọn vị trí VPS tại các Datacenter trong nước hoặc khu vực lân cận như Singapore, Hồng Kông.

Mặc dù Zrok mang lại sự linh hoạt tuyệt đối, quản trị viên hệ thống vẫn cần tuân thủ các nguyên tắc bảo mật cốt lõi:

  • Giám sát tài khoản: Không chia sẻ tài khoản quản trị Zrok bừa bãi. Sử dụng tính năng zrok share private khi chỉ muốn chia sẻ nội bộ giữa các máy có cài đặt cấu hình mã hóa của Zrok.
  • Cập nhật phiên bản: Thường xuyên kiểm tra và cập nhật các container Docker của Zrok trên VPS để nhận các bản vá bảo mật mới nhất từ đội ngũ phát triển OpenZiti.
  • Sử dụng SSL/TLS: Cấu hình thêm một Reverse Proxy (như Nginx hoặc Caddy) trên VPS để tự động cấp phát chứng chỉ SSL Let's Encrypt cho tên miền Zrok, đảm bảo toàn bộ dữ liệu truyền tải qua môi trường Internet công cộng đều được mã hóa HTTPS nghiêm ngặt.

Lời kết

Việc thay thế Ngrok bằng Zrok triển khai trên VPS không chỉ giúp bạn giải quyết triệt để bài toán kinh tế, loại bỏ các giới hạn khó chịu về băng thông hay cấu hình tên miền, mà còn nâng tầm hạ tầng kiểm thử của bạn lên tiêu chuẩn bảo mật Zero Trust hiện đại. Đây chắc chắn là khoản đầu tư kỹ thuật xứng đáng cho các lập trình viên chuyên nghiệp và các doanh nghiệp công nghệ muốn làm chủ hoàn toàn dữ liệu của mình.

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