Thứ hai, 19/05/2014 | 00:00 GMT+7

Cách sử dụng BitTorrent Sync để đồng bộ hóa các thư mục trong Ubuntu 14.04

Đồng bộ hóa file và folder giữa server và máy local là một yêu cầu rất phổ biến khi xử lý các máy tính nối mạng. Một phương pháp tự động đồng bộ hóa nội dung của các folder là sử dụng công nghệ BitTorrent Sync . Phần mềm này tận dụng giao thức BitTorrent thường được sử dụng để chia sẻ file như một công cụ đồng bộ hóa.

Giao tiếp thông qua BitTorrent Sync được mã hóa end-to-end dựa trên một bí mật được chia sẻ duy nhất được tạo tự động. Mặc dù BitTorrent như một cơ chế chia sẻ file là một dịch vụ công cộng, cách BitTorrent Sync sử dụng giao thức là riêng tư, nghĩa là các file có thể được truyền một cách an toàn.

Trong hướng dẫn này, ta sẽ trình bày cách cài đặt và sử dụng BitTorrent Sync trên hai server Ubuntu 14.04. Ta sẽ hướng dẫn bạn cách cài đặt các folder được chia sẻ của bạn và cách cài đặt mã hóa SSL cho giao diện web để quản trị an toàn các server của bạn.

Cài đặt BitTorrent Sync

Bước đầu tiên mà ta cần bắt đầu là cài đặt phần mềm BitTorrent Sync trên cả hai version server của ta . Nhiều quy trình trong hướng dẫn này sẽ được sao chép trên cả hai máy, vì vậy hãy đảm bảo bạn sao chép các lệnh của bạn cho từng máy.

Không có gói BitTorrent Sync chính thức có sẵn trong repository lưu trữ mặc định của Ubuntu. Tuy nhiên, có một PPA ( repository cá nhân) được duy trì tốt bởi Leo Moll (được gọi là tuxpoldo) mà ta có thể sử dụng để nhận các gói cập nhật.

Trên cả hai server của bạn, hãy thêm PPA này để hệ thống của ta có thể kéo xuống các gói:

sudo add-apt-repository ppa:tuxpoldo/btsync 

Bây giờ, ta cần cập nhật index gói local của bạn để hệ thống của ta biết về phần mềm mới có sẵn. Sau đó, ta sẽ cài đặt BitTorrent Sync, cũng như nginx để thêm mã hóa SSL vào giao diện web của ta sau này:

sudo apt-get update sudo apt-get install btsync nginx 

Bạn sẽ được hỏi khá nhiều câu hỏi trong dấu nhắc khi bạn cố gắng cài đặt. Bây giờ, hãy nhấn ENTER qua tất cả các dấu nhắc . Ta sẽ sớm cấu hình lại các dịch vụ của bạn theo cách chuyên sâu hơn.

Cấu hình BitTorrent Sync

Bây giờ phần mềm đã được cài đặt, ta thực sự sẽ chạy tập lệnh cấu hình nhắc ta về các giá trị lần thứ hai. Tuy nhiên, lần này, ta sẽ có quyền truy cập vào các tùy chọn bổ sung mà ta yêu cầu cho các mục đích của bạn .

Để chạy lại tập lệnh, lần này chọn cài đặt của ta , hãy nhập mã này trên mỗi server :

sudo dpkg-reconfigure btsync 

Điều này sẽ đưa bạn qua nhiều dấu nhắc hơn so với trong quá trình cài đặt ban đầu. Đối với hầu hết các phần, ta sẽ sử dụng các giá trị mặc định và bạn chỉ cần nhấn ENTER.

Dưới đây, tôi đã phác thảo các giá trị mà bạn cần cấu hình :

  • Địa chỉ IP ràng buộc giao diện web : 127.0.0.1
  • Tên user để truy cập giao diện web : [Chọn bạn muốn . Ta sẽ giữ account admin trong ví dụ này.]
  • Mật khẩu để truy cập giao diện web : [Chọn bạn muốn . Ta sẽ sử dụng password cho mục đích demo .]
  • Giá trị mặt nạ để đặt cho daemon : 002

Như bạn thấy , đối với phần lớn các cài đặt, ta có thể chấp nhận các giá trị mặc định. Các lựa chọn trên mặc dù rất quan trọng. Nếu bạn cấu hình sai, hãy chạy lại lệnh để sửa các lựa chọn của bạn.

Cấu hình SSL Front-end cho Giao diện Web BitTorrent Sync

Bây giờ, ta đã cài đặt BitTorrent Sync cho hầu hết các phần. Ta sẽ cài đặt các folder đồng bộ hóa của ta trong giây lát. Nhưng hiện tại, ta cần cài đặt web server nginx của bạn với SSL.

Bạn có thể nhận thấy rằng ta đã cấu hình giao diện web của bạn để chỉ khả dụng trên giao diện loopback local ( 127.0.0.1 ). Điều này thường nghĩa là ta sẽ không có quyền truy cập vào điều này khi chạy BitTorrent Sync trên server từ xa.

Ta đã hạn chế quyền truy cập như vậy vì mặc dù bản thân lưu lượng BitTorrent Sync đã được mã hóa, nhưng lưu lượng truy cập đến giao diện web được truyền ở dạng văn bản thuần túy. Điều này có thể cho phép bất kỳ ai đang xem lưu lượng truy cập giữa server và máy tính local của ta có thể xem bất kỳ thông tin liên lạc nào được gửi giữa các máy của ta .

Ta sẽ cài đặt nginx với SSL để kết nối proxy thông qua SSL với giao diện web BitTorrent của ta . Điều này sẽ cho phép ta quản lý version BitTorrent Sync của ta từ xa một cách an toàn.

, ta cần thực hiện tất cả các bước này trên cả hai server của ta .

Tạo certificate SSL và khóa

Bước đầu tiên để cài đặt điều này là tạo một folder để chứa khóa và certificate SSL của ta . Ta sẽ thực hiện việc này theo phân cấp folder cấu hình nginx:

sudo mkdir /etc/nginx/ssl 

Bây giờ, ta có thể tạo certificate SSL và khóa của bạn trong một chuyển động bằng cách chạy lệnh sau:

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/nginx/ssl/nginx.key -out /etc/nginx/ssl/nginx.crt 

Bạn cần điền một số thông tin cho certificate của bạn . Điền vào các trường tốt nhất có thể. Điều duy nhất thực sự quan trọng là cái này:

Common Name (e.g. server FQDN or YOUR name) []: 

Trong trường này, hãy nhập domain hoặc địa chỉ IP công cộng của server của bạn.

Cấu hình Nginx để mã hóa lưu lượng bằng SSL và chuyển sang đồng bộ hóa BitTorrent

Như vậy, ta có thể cấu hình khối server nginx của bạn để sử dụng certificate SSL của ta khi giao tiếp với các client từ xa. Sau đó, thông tin đến giao diện web BitTorrent Sync của ta sẽ lắng nghe trên giao diện local .

Ta sẽ giữ nguyên file khối server nginx mặc định trong trường hợp bạn cần sử dụng file này trong tương lai. Vì BitTorrent Sync hoạt động trên cổng “8888” theo mặc định, ta cũng sẽ sử dụng cổng này làm cổng SSL giao diện user .

Tạo file khối server mới bằng cách mở file mới có quyền sudo trong editor :

sudo nano /etc/nginx/sites-available/btsync 

Bên trong, ta cần thêm các dòng sau:

<pre>
người phục vụ {
nghe <span class = “highlight”> miền server hoặc IP </span>: 8888 ssl;
tên server <span class = “highlight”> tên domain server hoặc_IP </span>;

access_log /var/log/nginx/access.log;  ssl_certificate /etc/nginx/ssl/nginx.crt; ssl_certificate_key /etc/nginx/ssl/nginx.key;  location / {     proxy_pass http://127.0.0.1:8888; } 

}
</pre>

Đảm bảo rằng bạn thay đổi văn bản màu đỏ thành domain hoặc địa chỉ IP công cộng của server . Điều này sẽ yêu cầu nginx liên kết với cùng một cổng mà giao diện web BitTorrent Sync đang sử dụng trên giao diện local . Sự khác biệt là nginx sẽ sử dụng địa chỉ công cộng và yêu cầu SSL.

Nó sẽ sử dụng certificate SSL mà ta đã tạo để mã hóa lưu lượng đến client . Sau đó, nó sẽ chuyển nó đến giao diện BitTorrent Sync. Bằng cách này, lưu lượng giữa server và client sẽ được mã hóa, nhưng giao diện BitTorrent Sync sẽ hoạt động như thể ta đang truy cập từ chính server .

Khi bạn hoàn tất, hãy lưu file .

Bây giờ, ta chỉ cần liên kết file để nó sẽ được kích hoạt:

sudo ln -s /etc/nginx/sites-available/btsync /etc/nginx/sites-enabled/ 

Bây giờ ta có thể khởi động lại dịch vụ để áp dụng các thay đổi của bạn :

sudo service nginx restart 

Đảm bảo bạn thực hiện các quy trình này trên mỗi server trong số hai server của bạn .

Tạo một folder được chia sẻ

Bây giờ ta đã cấu hình BitTorrent Sync và đã cài đặt SSL và nginx để mã hóa các phiên của ta với giao diện web.

Trước khi bắt đầu sử dụng giao diện web, ta nên cài đặt các folder mà ta muốn đồng bộ hóa. Do cách BitTorrent Sync tạo các file được sao chép từ server từ xa, cấu hình của ta cho phần này là khá quan trọng.

Đầu tiên, trong hướng dẫn này, ta sẽ đồng bộ hóa các folder được đặt tại /shared trên cả hai server . Hãy tạo các folder này ngay bây giờ:

sudo mkdir /shared 

Khi bạn có folder , ta sẽ cấp cho user account root của bạn quyền sở hữu folder . Đồng thời, ta sẽ cung cấp cho group “btsync” ( group này đã được tạo trong quá trình cài đặt) quyền sở hữu folder :

sudo chown root:btsync /shared 

Có nhiều cách khác nhau để bạn có thể cấu hình quyền truy cập này, mỗi cách đều có ý nghĩa. Ta đang trình diễn một hệ thống khá linh hoạt ở đây sẽ giảm thiểu các quyền và xung đột quyền sở hữu. Để tìm ra các lựa chọn thay thế khác và sự cân bằng của chúng, hãy xem cấu hình folder chia sẻ của bài viết này .

Sau khi chỉ định quyền sở hữu, ta nên điều chỉnh quyền. Ta sẽ đặt bit setgid trên folder để group btsync sẽ được cấp quyền sở hữu group cho các file nào được tạo trong folder . Để làm cho điều này hoạt động chính xác, ta cũng cần cấp cho group quyền ghi:

sudo chmod 2775 /shared 

Cuối cùng, vì account hệ thống thông thường của ta không phải là chủ sở hữu user hoặc chủ sở hữu group của folder , ta cần thêm account thông thường của bạn vào group btsync . Điều này sẽ cho phép ta truy cập và tương tác với nội dung trong folder này với quyền là regular user của ta :

<pre>
sudo usermod -a -G btsync <span class = “highlight”> your_user </span>
</pre>

Lưu ý : Đến đây, bạn phải đăng xuất và đăng nhập lại cho những thay đổi này để đăng ký trong môi trường hiện tại của bạn. Thoát bằng lệnh :

exit 

Bây giờ đăng nhập lại.

Truy cập Giao diện Web BitTorrent Sync

Bây giờ ta đã cài đặt xong mọi thứ, ta có thể bắt đầu xem xét giao diện web quản trị để kéo các phần lại với nhau.

Để bắt đầu, bạn cần truy cập cả hai server trong trình duyệt web trên cổng “8888” bằng giao thức “https”. Cái này sẽ trông giống như sau:

<pre>
https: // <span class = “highlight”> miền server hoặc_IP </span>: 8888
</pre>

Bạn rất có thể sẽ thấy một cảnh báo được hiển thị giống như sau:

Cảnh báo không tin cậy SSL

Đây chỉ là một cảnh báo cho bạn biết rằng trình duyệt của bạn không nhận dạng được bên đã ký certificate SSL của bạn. Vì ta đã tạo certificate SSL tự ký nên điều này hoàn toàn hợp lý và được mong đợi và ta có thể an toàn nhấp vào “Tiếp tục bằng mọi cách” hoặc bất kỳ nút nào tương tự mà trình duyệt của bạn cung cấp cho bạn.

Bạn sẽ được yêu cầu nhập tên user và password mà bạn đã chọn trong khi cấu hình BitTorrent Sync. Trong ví dụ của ta , thông tin đăng nhập là adminpassword , nhưng của bạn (đặc biệt là password ) có thể khác.

Sau khi xác thực, bạn sẽ thấy giao diện Web BitTorrent Sync chính:

Giao diện web chính của BitTorrent Sync

Thêm Thư mục Chia sẻ vào Server Đầu tiên của bạn

Ta không thể bắt đầu thêm folder mà ta đã cấu hình vào giao diện web.

Nhấp vào nút “Thêm folder ” ở góc trên bên phải. Bạn sẽ nhận được một hộp thoại để thêm folder vào giao diện BitTorrent Sync:

Thêm giao diện folder

Di chuyển đến folder /shared mà ta đã tạo và nhấp vào nó. Nó sẽ điền vào trường "Đường dẫn" với giá trị chính xác.

Bên cạnh trường "Bí mật", nhấp vào nút "Tạo" để tạo khóa bí mật cho folder :

Tạo bí mật

Nhấp vào nút “Thêm” ở góc dưới bên phải. Thư mục của bạn sẽ được thêm vào giao diện user web BitTorrent Sync.

Bây giờ, ta có một nút mới có sẵn. Nhấp vào nút "Bí mật / QR" được liên kết với folder /shared mà bạn vừa thêm:

nút bí mật

Bạn sẽ thấy một hộp thoại cung cấp bí mật cho folder này. Đây là cách để đồng bộ hóa folder này với một version BitTorrent Sync khác.

Phần mềm cho phép bạn cài đặt quyền truy cập đầy đủ vào folder (quyền truy cập đọc và ghi), hoặc quyền truy cập chỉ đọc. Đối với hướng dẫn của ta , ta sẽ cấu hình quyền truy cập đầy đủ để cho phép đồng bộ hóa hai chiều, nhưng đây chỉ là một tùy chọn.

Bạn cần sao chép bí mật “Toàn quyền truy cập” từ giao diện này để cài đặt đồng bộ hóa với server thứ hai của bạn .

Thêm Thư mục Chia sẻ và Bí mật vào Server Thứ hai

Bây giờ ta có server đầu tiên được cấu hình để chia sẻ folder của nó, ta cần cài đặt server thứ hai.

Ta sẽ thực hiện hầu hết các bước tương tự, với một số biến thể nhỏ.

, đăng nhập vào giao diện web, lần này, sử dụng domain hoặc địa chỉ IP của server thứ hai. Hãy nhớ sử dụng “https” và cổng “8888”:

<pre>
https: // <span class = “highlight”> domain hoặc IP server thứ hai </span>: 8888
</pre>

Bạn sẽ thấy cảnh báo SSL và bạn cần phải xác thực. Bạn sẽ đến cùng một giao diện trống mà ta đã thấy trước đây.

Nhấp vào nút "Thêm folder ", như ta đã làm trước đây. Chọn folder /shared mà ta đã tạo.

Đến đây, thay vì tạo một bí mật mới, ta muốn sử dụng bí mật đã được tạo trên server đầu tiên. Điều này sẽ cho phép hai trường hợp này giao tiếp với nhau, vì mỗi bí mật là duy nhất và được tạo ngẫu nhiên. Nhập bí mật từ server đầu tiên:

thêm bí mật từ đầu tiên

Nhấp vào nút “Thêm” ở góc dưới bên phải khi bạn hoàn tất.

Trong giây lát, cột "Thiết bị được kết nối và trạng thái" trong giao diện chính sẽ hiển thị thông tin về server đồng hành:

màn hình thiết bị được kết nối

Điều này nghĩa là các server của bạn đang giao tiếp với nhau và có thể đồng bộ hóa nội dung.

Kiểm tra đồng bộ hóa BitTorrent

Hãy kiểm tra cài đặt hiện tại của ta .

Trên một trong hai server của bạn (không quan trọng cái nào nếu bạn đã cấu hình toàn quyền truy cập), hãy chuyển vào folder /shared :

cd /shared 

Ta có thể tạo 10 file mẫu bằng lệnh :

touch file{1..10} 

Sau một lúc, trên server khác của bạn, bạn có thể xem các file bạn đã tạo:

# On the second server cd /shared ls -l 

total 0 -rw-rw-r-- 1 btsync btsync 0 May 19 17:07 file1 -rw-rw-r-- 1 btsync btsync 0 May 19 17:07 file10 -rw-rw-r-- 1 btsync btsync 0 May 19 17:07 file2 -rw-rw-r-- 1 btsync btsync 0 May 19 17:07 file3 . . . 

Như bạn thấy , các file của ta đã được đồng bộ hóa. Nếu bạn nhìn vào giao diện web, đồng bộ hóa này chưa được đăng ký. Điều này là do các file này không chứa bất kỳ dữ liệu thực tế nào.

Ta sẽ kiểm tra xem liệu nó có thể phát hiện khi ta chuyển các file có nội dung hay không bằng cách ghi dữ liệu vào các file đó từ server thứ hai của ta . Điều này cũng sẽ cho phép ta kiểm tra rằng ta có thể đồng bộ hóa các thay đổi trở lại server đầu tiên.

Trên server thứ hai, bạn có thể viết cụm từ “một số nội dung” vào mỗi file bạn đã tạo bằng lệnh :

for item in /shared/file{1..10}; do echo "some content" > $item; done 

Sau một vài giây, các file trên server đầu tiên sẽ hiển thị nội dung bạn đã thêm:

# On first server cat /shared/file1 

some content 

Bạn cũng sẽ thấy rằng giao diện web cũng đã được cập nhật để phản ánh số lượng file và dung lượng đã được đồng bộ hóa trên các server :

Thông tin kích thước BitTorrent Sync

Nếu điều này đang hoạt động, bạn đã cấu hình thành công BitTorrent Sync để phản chiếu các thay đổi giữa các server .

Kết luận

Đến đây bạn sẽ có một cài đặt linh hoạt cho phép bạn truyền file an toàn giữa các server từ xa. Hơn nữa, cấu hình này cho phép bạn quản lý dịch vụ thông qua kết nối an toàn bằng cách tận dụng SSL.

Bản thân ứng dụng này khá linh hoạt và được dùng theo nhiều cách khác nhau. Một số tính năng hữu ích là khả năng quét bí mật dưới dạng mã QR trên thiết bị di động của bạn, khả năng cấu hình quyền truy cập chỉ đọc vào nội dung và khả năng cung cấp cho khách hàng những bí mật sử dụng một lần. Bạn cũng có thể cấu hình server của bạn để chỉ giao tiếp với một số server nhất định.

Dịch vụ BitTorrent Sync cũng cung cấp một hệ thống kiểm soát version đơn giản, sử dụng folder ./SyncArchive ẩn trong folder chia sẻ để giữ các version cũ của file . Bạn cũng có thể triển khai các hạn chế như giới hạn tốc độ nếu bạn muốn đảm bảo các file của bạn được đồng bộ hóa mà không ảnh hưởng đến các dịch vụ khác.

<div class = “author”> Bởi Justin Ellingwood </div>


Tags:

Các tin liên quan

Cách sử dụng HAProxy làm bộ cân bằng tải lớp 4 cho server ứng dụng WordPress trên Ubuntu 14.04
2014-05-16
Cách sử dụng kpcli để quản lý tệp mật khẩu KeePass2 trên server Ubuntu 14.04
2014-05-16
Cách khởi chạy trang web của bạn trên server Ubuntu 14.04 mới với LAMP, SFTP và DNS
2014-05-13
Cách cài đặt Node.js trên server Ubuntu 14.04
2014-05-12
Cách bảo vệ SSH bằng Fail2Ban trên Ubuntu 14.04
2014-05-07
Cách bảo vệ SSH bằng Fail2Ban trên Ubuntu 14.04
2014-05-07
Cách cài đặt ISPConfig3 trên server Ubuntu 14.04
2014-05-05
Cách cài đặt và sử dụng Memcache trên Ubuntu 14.04
2014-05-01
Cách thiết lập NFS Mount trên Ubuntu 14.04
2014-04-30
Cách cài đặt và cấu hình Postfix trên Ubuntu 14.04
2014-04-29