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

Cấu Hình Đồng Bộ Hóa File Thời Gian Thực Giữa Các VPS Bằng Syncthing Qua Giao Thức P2P

3 tháng 6, 2026

Giới thiệu về bài toán đồng bộ hóa dữ liệu giữa các VPS

Trong kỷ nguyên chuyển đổi số và điện toán đám mây, việc duy trì tính nhất quán của dữ liệu giữa các máy chủ ảo cá nhân (VPS) là một thách thức lớn đối với các kiến trúc sư hệ thống và kỹ sư DevOps. Cho dù bạn đang vận hành một hệ thống phân tải (Load Balancing), xây dựng cơ chế dự phòng thảm họa (Disaster Recovery), hay chỉ đơn giản là muốn sao lưu dữ liệu liên tục giữa các chi nhánh, việc đồng bộ hóa dữ liệu theo thời gian thực luôn là ưu tiên hàng đầu.

Thông thường, các doanh nghiệp thường nghĩ ngay đến các giải pháp truyền thống như RSync kết hợp với Cronjob hoặc Ls團隊/Inotify. Tuy nhiên, RSync qua Cronjob lại có độ trễ lớn, không đáp ứng được tính chất thời gian thực (Real-time). Trong khi đó, việc cấu hình Inotify lại tương đối phức tạp và tiêu tốn nhiều tài nguyên hệ thống khi số lượng file tăng lên. Đó là lý do tại sao Syncthing – một công cụ đồng bộ hóa file ngang hàng (P2P) – trở thành giải pháp đột phá, giải quyết triệt để các hạn chế trên.

Syncthing là gì? Tại sao nên chọn giao thức P2P cho hệ thống VPS?

Syncthing là một ứng dụng đồng bộ hóa file mã nguồn mở, hoạt động theo kiến trúc ngang hàng (Peer-to-Peer - P2P). Điều này có nghĩa là dữ liệu được truyền trực tiếp giữa các VPS với nhau mà không cần đi qua bất kỳ máy chủ trung tâm nào (Centralized Server).

Dưới đây là những lý do cốt lõi khiến Syncthing vượt trội hơn so với các phương pháp truyền thống:

  • Tốc độ và hiệu năng vượt trội: Nhờ giao thức P2P, nếu bạn có nhiều hơn hai VPS, Syncthing có thể tải các phần của file từ nhiều máy chủ cùng một lúc, tối ưu hóa băng thông mạng.
  • Bảo mật tối đa: Toàn bộ dữ liệu truyền đi giữa các VPS đều được mã hóa bằng giao thức TLS/ECC mạnh mẽ. Không ai có thể can thiệp hoặc đánh cắp dữ liệu trên đường truyền.
  • Đồng bộ hóa thời gian thực (Real-time): Syncthing sử dụng cơ chế giám sát thay đổi file của hệ điều hành (Inotify trên Linux), giúp phát hiện và đồng bộ ngay lập tức khi có sự thay đổi, độ trễ gần như bằng không.
  • Không phụ thuộc vào bên thứ ba: Bạn hoàn toàn kiểm soát dữ liệu của mình. Không có giới hạn về dung lượng lưu trữ hay băng thông như các dịch vụ Cloud Storage thương mại.
Lưu ý quan trọng: Syncthing không phải là một công cụ sao lưu (Backup) theo dạng dòng thời gian, mà là công cụ đồng bộ (Synchronization). Nếu bạn xóa một file ở VPS A, nó cũng sẽ bị xóa ở VPS B. Tuy nhiên, Syncthing có tính năng File Versioning giúp khôi phục các phiên bản cũ khi cần thiết.

Hướng dẫn chi tiết các bước cấu hình Syncthing giữa 2 VPS Linux

Để bạn dễ hình dung, bài viết này sẽ hướng dẫn cấu hình cụ thể trên hai máy chủ sử dụng hệ điều hành Ubuntu/Debian: VPS-01 (IP: 192.168.1.10) và VPS-02 (IP: 192.168.1.20). Quy trình bao gồm các bước chuẩn bị, cài đặt và liên kết hệ thống.

Bước 1: Cài đặt Syncthing trên cả hai VPS

Đầu tiên, chúng ta cần cập nhật hệ thống và thêm kho lưu trữ (repository) chính thức của Syncthing để đảm bảo cài đặt phiên bản mới nhất. Chạy các lệnh sau trên cả hai VPS:

# Cập nhật hệ thống
sudo apt update && sudo apt upgrade -y

# Cài đặt các gói hỗ trợ
sudo apt install curl apt-transport-https gnupg -y

# Thêm khóa PGP của Syncthing
sudo mkdir -p /etc/apt/keyrings
sudo curl -L -o /etc/apt/keyrings/syncthing-archive-keyring.gpg https://syncthing.net/release-key.gpg

# Thêm repository vào danh sách nguồn cấp
echo "deb [signed-by=/etc/apt/keyrings/syncthing-archive-keyring.gpg] https://apt.syncthing.net/ syncthing stable" | sudo tee /etc/apt/sources.list.d/syncthing.list

# Cài đặt Syncthing
sudo apt update
sudo apt install syncthing -y

Bước 2: Cấu hình Web GUI để quản lý từ xa

Mặc định, giao diện Web GUI của Syncthing chỉ cho phép truy cập từ localhost (127.0.0.1). Vì VPS không có giao diện đồ họa, chúng ta cần cấu hình để có thể truy cập Web GUI từ trình duyệt máy tính cá nhân của bạn.

Trước hết, hãy khởi chạy Syncthing một lần để tạo file cấu hình mặc định:

syncthing

Sau khi màn hình hiển thị thông báo đã tạo file thành công, nhấn Ctrl + C để tắt. Bây giờ, tiến hành chỉnh sửa file cấu hình tại đường dẫn ~/.config/syncthing/config.xml:

nano ~/.config/syncthing/config.xml

Tìm đến đoạn mã dưới đây:


    
127.0.0.1:8384

Thay đổi địa chỉ IP thành 0.0.0.0:8384 để cho phép truy cập từ mọi địa chỉ IP bên ngoài, hoặc thay bằng IP máy tính của bạn để tăng tính bảo mật:


    
0.0.0.0:8384

Mẹo bảo mật: Hãy đổi giá trị tls="false" thành tls="true" để bắt buộc sử dụng giao thức HTTPS bảo mật khi truy cập giao diện quản trị.

Bước 3: Tạo Service Systemd để Syncthing chạy ngầm cùng hệ thống

Để đảm bảo Syncthing luôn hoạt động ngay cả khi bạn khởi động lại VPS, hãy cấu hình nó như một dịch vụ hệ thống (Systemd Service):

# Kích hoạt dịch vụ cho user hiện tại (ví dụ: root hoặc ubuntu)
sudo systemctl enable [email protected]

# Khởi chạy dịch vụ
sudo systemctl start [email protected]

# Kiểm tra trạng thái hoạt động
sudo systemctl status [email protected]

Bước 4: Cấu hình Firewall (Tường lửa)

Syncthing sử dụng cổng 8384 cho Web GUI và cổng 22000 (TCP/UDP) để các node trao đổi dữ liệu với nhau. Nếu bạn dùng UFW, hãy mở các cổng này:

sudo ufw allow 8384/tcp
sudo ufw allow 22000/tcp
sudo ufw allow 22000/udp
sudo ufw reload

Kết nối và đồng bộ hóa thư mục giữa hai VPS

Sau khi hoàn tất cài đặt trên cả hai máy chủ, hãy mở trình duyệt web và truy cập vào giao diện Web GUI theo địa chỉ: https://:8384 và https://:8384.

Cảnh báo quan trọng: Ngay trong lần đầu tiên truy cập, hệ thống sẽ yêu cầu thiết lập Tài khoản (Username) và Mật khẩu (Password) cho Web GUI. Hãy thực hiện ngay bước này để tránh việc kẻ xấu truy cập trái phép vào hệ thống dữ liệu của bạn.

Cách liên kết hai thiết bị (Add Remote Device)

  1. Tại giao diện Web GUI của VPS-01, bấm vào mục Actions ở góc trên bên phải, chọn Show ID. Copy chuỗi ký tự ID dài này.
  2. Chuyển sang Web GUI của VPS-02, ở góc dưới bên phải mục "Remote Devices", chọn Add Remote Device.
  3. Dán chuỗi ID của VPS-01 vào ô Device ID, đặt tên gợi nhớ tại ô Device Name (ví dụ: VPS-01-Production). Sau đó bấm Save.
  4. Lúc này, quay lại giao diện của VPS-01, bạn sẽ thấy một thông báo pop-up hỏi xem có muốn kết nối với VPS-02 hay không. Hãy bấm Accept để xác nhận liên kết thành công.

Cấu hình thư mục cần đồng bộ hóa (Sharing Folders)

Mặc định Syncthing sẽ tạo sẵn một thư mục tên là Default Folder. Tuy nhiên, thông thường bạn sẽ muốn tạo thư mục riêng theo nhu cầu (ví dụ: thư mục mã nguồn website hoặc dữ liệu tải lên của người dùng).

  1. Tại mục "Folders", bấm Add Folder.
  2. Điền các thông tin: Folder Label (Tên hiển thị), Folder ID (Mã định danh duy nhất giữa các VPS), và quan trọng nhất là Folder Path (Đường dẫn tuyệt đối đến thư mục trên VPS của bạn, ví dụ: /var/www/mywebsite/uploads).
  3. Chuyển sang tab Sharing, tích chọn vào tên của VPS đối tác (VPS-02) để chia sẻ thư mục này.
  4. Bấm Save. Sang bên VPS-02, bạn chỉ cần bấm Accept và chọn đường dẫn lưu trữ tương ứng trên VPS-02 là quá trình đồng bộ hóa thời gian thực chính thức bắt đầu.

Các lưu ý tối ưu hiệu năng và bảo mật hệ thống Syncthing

Để vận hành Syncthing một cách ổn định và mượt mà trong môi trường doanh nghiệp lớn, bạn cần lưu ý một số thiết lập nâng cao dưới đây:

  • Tối ưu hóa Inotify Limits: Mặc định Linux giới hạn số lượng file được giám sát thời gian thực. Nếu hệ thống của bạn có hàng trăm nghìn file, hãy tăng giới hạn này bằng cách thêm dòng sau vào file /etc/sysctl.conf:
    fs.inotify.max_user_watches=524288 sau đó chạy lệnh sudo sysctl -p để áp dụng.
  • Tắt tính năng Global Discovery nếu không cần thiết: Nếu các VPS của bạn có IP tĩnh cố định, hãy tắt tính năng Global Discovery và Relaying trong phần cài đặt thiết bị, sau đó chỉ định trực tiếp IP của đối tác (ví dụ: tcp://192.168.1.20:22000). Điều này giúp giảm lượng truy vấn ra ngoài internet và tăng tốc độ kết nối trực tiếp.
  • Cấu hình File Versioning: Để phòng ngừa rủi ro dữ liệu bị xóa nhầm hoặc bị mã hóa bởi ransomware, hãy bật tính năng Staggered File Versioning trong phần cài đặt của thư mục. Syncthing sẽ tự động giữ lại các bản sao cũ của file trong một khoảng thời gian nhất định trước khi xóa vĩnh viễn.

Lời kết

Cấu hình đồng bộ hóa file thời gian thực giữa các VPS bằng Syncthing qua giao thức P2P là một giải pháp kiến trúc hiện đại, mang lại tính sẵn sàng cao, bảo mật tuyệt đối và tiết kiệm chi phí tối đa cho doanh nghiệp. Hy vọng bài viết hướng dẫn chi tiết này đã giúp bạn tự tin triển khai hệ thống lưu trữ đồng bộ cho riêng mình, tạo nền tảng vững chắc cho các ứng dụng quy mô lớn.

Cấu Hình Đồng Bộ Hóa File Thời Gian Thực Giữa Các VPS Bằng Syncthing Qua Giao Thức P2P | DPTCloud