Cách cài đặt Syncthing trên AlmaLinux 9

theanh

Administrator
Nhân viên
Syncthing là một công cụ đồng bộ hóa tệp ngang hàng, mã nguồn mở được thiết kế để đồng bộ hóa tệp an toàn trên nhiều thiết bị. Không giống như các dịch vụ dựa trên đám mây, Syncthing hoạt động trực tiếp giữa các thiết bị mà không lưu trữ dữ liệu trên máy chủ bên ngoài, cung cấp cho người dùng toàn quyền kiểm soát tệp và quyền riêng tư của họ. Nó hoạt động bằng cách sử dụng giao tiếp được mã hóa giữa các thiết bị, đảm bảo dữ liệu được truyền một cách an toàn. Syncthing có thể được sử dụng để đồng bộ hóa tệp giữa các máy tính, thiết bị di động và thậm chí cả máy chủ, khiến nó trở thành giải pháp linh hoạt cho những người dùng cần đồng bộ hóa tệp đáng tin cậy, riêng tư và theo thời gian thực. Nó dễ thiết lập, đa nền tảng và chạy ở chế độ nền, tự động đồng bộ hóa tệp bất cứ khi nào phát hiện thấy thay đổi.

Trong hướng dẫn này, bạn sẽ tìm hiểu cách cài đặt phần mềm Syncthing trên máy chủ AlmaLinux 9. Bạn cũng sẽ học cách kết nối giữa hai phiên bản syncthing và thiết lập một thư mục dùng chung trong syncthing.

Điều kiện tiên quyết​

Trước khi bắt đầu, hãy đảm bảo bạn có những điều sau:
  • Hai máy AlmaLinux 9.
  • Một người dùng không phải root có quyền quản trị viên.
  • Một SELinux có chế độ cho phép.

Tải xuống tệp nhị phân Syncthing​

Đối với bản phân phối dựa trên RHEL, bạn cần cài đặt syncthing theo cách thủ công thông qua tệp nhị phân. Hãy nhớ kiểm tra trang GitHub chính thức của syncthing để tải phiên bản syncthing mới nhất.

Trước tiên, hãy chạy lệnh bên dưới để cài đặt các gói trình soạn thảo curl, wget và nano vào hệ thống của bạn.
Mã:
sudo dnf install curl wget nano -y

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22179%22%3E%3C/svg%3E


Bây giờ hãy tải xuống tệp nhị phân syncthing từ kho lưu trữ GitHub bằng lệnh sau.
Mã:
curl -s https://api.github.com/repos/syncthing/syncthing/releases/latest | grep browser_download_url | grep linux-amd64 | cut -d '"' -f 4 | wget -qi -
Sau khi tải xuống, hãy giải nén tệp tar.gz syncthing bằng lệnh bên dưới. Sau đó di chuyển tệp nhị phân syncthing đến thư mục /usr/bin/.
Mã:
tar xvf syncthing-linux-amd64*.tar.gz
sudo mv syncthing-linux-amd64-*/syncthing /usr/bin/
Cuối cùng, hãy xác minh vị trí của tệp nhị phân syncthing và phiên bản bằng lệnh bên dưới.
Mã:
which syncthing
syncthing --version
Dựa trên đầu ra sau, bạn có thể thấy syncthing xxx được cài đặt tại /usr/bin/syncthing.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22701%22%20height=%22285%22%3E%3C/svg%3E

Chạy Syncthing dưới dạng Dịch vụ Systemd​

Syncthing có thể được chạy thủ công, nhưng chạy syncthing dưới dạng dịch vụ systemd sẽ dễ hơn. Bạn có thể kiểm soát dịch vụ syncthing bằng tiện ích systemctl.

Chạy lệnh nano editor sau để tạo tệp dịch vụ systemd mới /etc/systemd/system/[emailprotected].
Mã:
sudo nano /etc/systemd/system/[emailprotected]
Chèn cấu hình sau vào tệp.
Mã:
[Unit]
Description=Syncthing - Open Source Continuous File Synchronization for %I
Documentation=man:syncthing(1)
After=network.target

[Service]
User=%i
ExecStart=/usr/bin/syncthing -no-browser -gui-address=0.0.0.0:8384 -no-restart -logflags=0
Restart=on-failure
SuccessExitStatus=3 4
RestartForceExitStatus=3 4

# Hardening
ProtectSystem=full
PrivateTmp=true
SystemCallArchitectures=native
MemoryDenyWriteExecute=true
NoNewPrivileges=true

[Install]
WantedBy=multi-user.target
Lưu tệp và thoát trình soạn thảo khi bạn hoàn tất.

Cuối cùng và quan trọng nhất, hãy tải lại trình quản lý systemd bằng lệnh bên dưới để áp dụng các thay đổi trên hệ thống của bạn.
Mã:
sudo systemctl daemon-reload

Thiết lập Firewalld​

Bây giờ bạn đã định cấu hình syncthing thành một dịch vụ systemd, bạn sẽ cần mở cổng cho syncthing thông qua firewalld. Theo mặc định, firewalld bao gồm ứng dụng syncthing, bạn có thể dễ dàng kích hoạt ứng dụng này.

Thực hiện lệnh bên dưới để thêm và kích hoạt các dịch vụ syncthing và syncthing-gui trên firewalld.
Mã:
sudo firewall-cmd --zone=public --add-service=syncthing --permanent
sudo firewall-cmd --zone=public --add-service=syncthing-gui --permanent
Bây giờ hãy tải lại firewalld để có hiệu lực, sau đó xác minh danh sách các dịch vụ được kích hoạt trên firewalld.
Mã:
sudo firewall-cmd --reload
sudo firewall-cmd --list-all
Như bạn có thể thấy trong đầu ra sau, hồ sơ syncthing đã được bật.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22294%22%3E%3C/svg%3E

Đang khởi tạo Syncthing Node​

Trước khi bạn bắt đầu kết nối các phiên bản đồng bộ, bạn phải khởi tạo syncthing cho từng người dùng trên hệ thống của mình. Trong ví dụ này, chúng tôi sẽ sử dụng hai máy chủ Almalinux với những người dùng khác nhau bên dưới:
  • node1với người dùng tom
  • node2máy chủ với người dùng jerry
Bây giờ, hãy chạy lệnh sau để khởi động dịch vụ syncthing và khởi tạo cài đặt syncthing. Hãy chắc chắn thay đổi usertombằng tên người dùng của bạn.
Mã:
sudo systemctl start [emailprotected]

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22621%22%20height=%22302%22%3E%3C/svg%3E


Sau khi dịch vụ syncthing được khởi động, thư mục cấu hình mới ~/.local/state/synching và thư mục Sync sẽ được tạo. Xác minh bằng lệnh bên dưới.
Mã:
ls -ah ~/Sync
ls -ah ~/.local/state/syncthing/

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22136%22%3E%3C/svg%3E


Sau đó, mở cấu hình syncthing ~/.local/state/syncthing/config.xml bằng lệnh nano editor bên dưới.
Mã:
sudo nano ~/.local/state/syncthing/config.xml
Trong phần 'gui', hãy thay đổi tùy chọn 'tls=false' thành 'tls=true' để cho phép truy cập an toàn cho syncthing.
Mã:
 192.168.10.41:8384
 GENERATED-API-KEY
 default
Lưu tệp và thoát khỏi trình chỉnh sửa khi bạn hoàn tất.

Sau đó, chạy lệnh bên dưới để khởi động lại syncthing và áp dụng các thay đổi của bạn.
Mã:
sudo systemctl restart [emailprotected]
Tiếp theo, hãy bật và xác minh dịch vụ syncthing bằng lệnh bên dưới. Đảm bảo bạn nhận được đầu ra enabledactive(running), xác nhận rằng trạng thái dịch vụ syncthing đang chạy.
Mã:
sudo systemctl enable [emailprotected]
sudo systemctl status [emailprotected]

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22332%22%3E%3C/svg%3E

Thiết lập Người dùng và Mật khẩu đối với Syncthing​

Bây giờ bạn đã bắt đầu và khởi tạo syncthing, bước tiếp theo bạn sẽ cấu hình xác thực người dùng cho phiên bản syncthing của mình.

Trước khi bắt đầu, hãy chạy lệnh ss bên dưới để đảm bảo cổng 8384 đang ở trạng thái LISTEN.
Mã:
ss -tulpn | grep 8384
Trong đầu ra sau, bạn có thể thấy cổng 8384 được syncthing sử dụng.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%2287%22%3E%3C/svg%3E


Mở trình duyệt web của bạn và truy cập địa chỉ IP của máy chủ theo sau là cổng 8384 (ví dụ: https://192.168.5.15:8384/). Nếu cài đặt thành công, bạn sẽ nhận được trang chào mừng bên dưới.

Nhấp vào menu Cài đặt để thiết lập xác thực người dùng.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22400%22%3E%3C/svg%3E


Nhấp vào tab GUI, sau đó nhập tên người dùng và mật khẩu quản trị viên của bạn. Đảm bảo kiểm tra tùy chọn Sử dụng HTTPS cho GUI. Nhấn Lưu để xác nhận thay đổi của bạn.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22441%22%3E%3C/svg%3E


Bây giờ bạn sẽ được chuyển hướng đến trang đăng nhập syncthing. Từ đó, nhập tên người dùng và mật khẩu của bạn, sau đó nhấp vào Đăng nhập.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22287%22%3E%3C/svg%3E


Nếu cấu hình thành công, bạn sẽ thấy bảng điều khiển syncthing như sau:


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22431%22%3E%3C/svg%3E


Dưới đây, bạn có thể thấy bảng điều khiển syncthing từ node2.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22367%22%3E%3C/svg%3E

Đang kết nối Syncthing Instance​

Lúc này, bạn đã hoàn tất cài đặt syncthing trên cả hai máy chủ Almalinux. Đã đến lúc kết nối cả hai phiên bản syncthing, có thể thực hiện thông qua bảng điều khiển quản trị web.

Trên bảng điều khiển node1, nhấp vào Hành động và chọn Hiển thị ID để biết thông tin chi tiết về ID của nút.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22385%22%20height=%22162%22%3E%3C/svg%3E


Bạn có thể thấy ID và mã QR của phiên bản node1. Sao chép ID node1, bạn sẽ cần nó để kết nối với phiên bản node2.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22475%22%3E%3C/svg%3E


Bây giờ hãy di chuyển đến bảng điều khiển node2, trên phần Thiết bị từ xa, hãy nhấp vào Thêm thiết bị từ xa.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22711%22%20height=%22156%22%3E%3C/svg%3E


Dán ID của node1 và nhập tên là node1.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22424%22%3E%3C/svg%3E


Tiếp theo, di chuyển đến tab Chia sẻ. Trong phần Thư mục không chia sẻ, hãy chọn tùy chọn Thư mục mặc định để chia sẻ thư mục đích với node1.

Ngoài ra, hãy đảm bảo chọn tùy chọn Tự động chấp nhận để tự động tạo hoặc chia sẻ các thư mục mà node1 quảng cáo trong đường dẫn mặc định.

Nhấp vào Lưu để xác nhận.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22352%22%3E%3C/svg%3E


Quay lại bảng điều khiển node1 và bạn sẽ thấy các thông báo yêu cầu từ node2. Nhấp vào Thêm thiết bị để xác nhận.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22210%22%3E%3C/svg%3E


Khi được nhắc, hãy nhấp vào Lưu để xác nhận. Ngoài ra, hãy chắc chắn kiểm tra ID thiết bị của node2.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22329%22%3E%3C/svg%3E


Tiếp theo, bạn sẽ nhận được thông báo khác cho biết phiên bản node2 sẽ chia sẻ thư mục Default Folder, hãy nhấp vào Share để xác nhận.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22154%22%3E%3C/svg%3E


Sau khi quá trình hoàn tất, bạn có thể thấy thông tin sau trên node1:
  • Thư mục mặc định có đường dẫn /home/tom/Sync được Chia sẻ với node2.
  • Trong phần Thiết bị từ xa, bạn có thể thấy node2 có trạng thái Đã cập nhật.

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22471%22%3E%3C/svg%3E


Bây giờ hãy kiểm tra bảng điều khiển node2, bạn sẽ thấy thông tin tương tự rằng Thư mục mặc định được Chia sẻ với node1. Ngoài ra, bạn có thể thấy trên phần Thiết bị từ xa node1 có trạng thái Đã cập nhật.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22389%22%3E%3C/svg%3E

Kiểm tra đồng bộ tệp​

Tại thời điểm này, bạn đã hoàn tất cấu hình thư mục được chia sẻ giữa hai phiên bản syncthing. Bây giờ, hãy thử tạo các tệp mới trên thư mục Shared để xác minh tính đồng bộ giữa hai phiên bản syncthing.

Trên máy chủ node1, di chuyển đến thư mục ~/Sync và thực hiện lệnh sau để tạo các tệp mới.
Mã:
cd ~/Sync/
touch file{1..50}.txt
Mã:
ls -ah

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22159%22%3E%3C/svg%3E


Bây giờ hãy di chuyển đến máy chủ node2 và vào thư mục ~/Sync. Sau đó, hãy xác minh danh sách các tệp trên thư mục ~/Sync.
Mã:
cd ~/Sync
ls -ah
Nếu quá trình đồng bộ hóa của bạn thành công, bạn sẽ thấy các tệp mà bạn đã tạo từ máy chủ node1.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22137%22%3E%3C/svg%3E


Với thao tác này, quá trình cài đặt syncthing của bạn thành công.

Kết luận​

Xin chúc mừng! Bạn đã cài đặt thành công syncthing trên máy chủ AlmaLinux 9. Bạn cũng đã học cách kết nối giữa các phiên bản syncthing, thiết lập thư mục dùng chung và xác minh việc đồng bộ hóa các phiên bản syncthing.

Từ đây, giờ đây bạn có thể thêm nhiều thiết bị hơn và kết nối với phiên bản hiện tại của mình để cho phép chia sẻ tệp và đồng bộ hóa giữa nhiều thiết bị.
 
Back
Bên trên