Resilio Sync

提供: ArchWiki
2024年3月7日 (木) 23:46時点におけるKgx (トーク | 投稿記録)による版 (序文を更新)
ナビゲーションに移動 検索に移動

関連記事

Resilio Sync (旧名: BitTorrent Sync (BTSync) は、BitTorrent ピアツーピア (P2P) プロトコルに依存する独自のファイル共有システムです。

すべてのファイルをアーカイブする中央サーバーを持たずに、デバイス自体間のピアツーピア接続を使用するため、データストレージや転送速度に制限はありません。ユーザーのデータは、ユーザーが同期することを選択したデバイスに排他的に保存されるため、オンラインになるには少なくとも 2 つのユーザーデバイス、つまり "ノード" が必要です。多くのデバイスが同時に接続されている場合、ファイルはメッシュネットワークトポロジでデバイス間で共有されます。

デバイス間のすべてのトラフィックは、一意のセッションキーを使用して、カウンターモードの AES-128 で暗号化されます。このキーは、それ自体が Base32 でエンコードされたランダムな 21 バイトのキーである 'シークレット' から派生します。'シークレット' を渡すことで、他のユーザーとファイルやフォルダーを共有できるようになります。デバイスが同期用のフォルダーを追加すると、シークレットが生成されます。今後、そのフォルダーを同期したいすべてのデバイスはシークレットキーを知っている必要があります。両方のデバイスに十分なディスク容量がある限り、同期には速度やサイズの制限はありません。

安全性

AES-128 暗号と secret (同期するフォルダごとによって固有のランダムな文字列、20バイト以上) を元にして作成された256ビットのキーを使って異なるデバイス間の同期は暗号化されます。'secret' と呼ばれる、base32 でエンコードしたランダムな21バイトのキーという特殊な方法を用います。

同期

同期フォルダをデバイスが追加した時、secret が作成されます。以降、同期が必要なデバイスはこの鍵を知らなくてはなりません。

同期には、2者間に十分なディスクスペースがあれば、速度やサイズの制限はありません。

インストール

rslsyncAURAUR からインストール可能です。パッケージには rslsync デーモンを管理するための systemd サービスが含まれています。また、デフォルトの /etc/rslsync.conf が作成されます。systemctl を使って起動する前に、ファイルの中のログイン ID やパスワードなど、変更したい箇所を変更しておいてください。

また、'tar.gz' でパッケージングされた実行可能ファイルが 公式ウェブサイト から取得できます。以下のガイドは AUR から rslsync をインストールしていることを前提にしています。

使い方

Resilio Sync の Linux クライアントには典型的な GUI が存在しません。代わりに、localhost:8888 からアクセス可能な WebUI サーバをセットアップします。同期フォルダは設定ファイルで静的に設定することもできますが、そうすると WebGUI が使えなくなります。

インストールしたら、~/.config/rslsync/rslsync.conf に設定ファイルを作成する必要があります。#設定 を見てください。storage_path ディレクトリの作成も必要です。設定が完了したら、以下のようにサービスを開始または(起動時に開始したいなら)有効化してください:

$ systemctl --user start rslsync
$ systemctl --user enable rslsync

上記のコマンドは root で実行しないことに注意してください。root で実行すると D-BUS が接続を拒否するためエラーが発生します。

ノート:
  • rslsync をユーザーで実行する場合、rslsync.conf ファイルと rslsync.pid ファイルが存在するディレクトリのパーティションが適切に設定されていることを確認してください。ユーザーがアクセスできない場所にファイルが置かれている場合、サービスの起動に失敗します。ユーザーのパーティションは正しいのに rslsync の起動に失敗する場合、マシンを再起動してください。
  • ヘッドレスサーバーで rslsync を実行する場合、lingering を有効にしてユーザーセッションの外でも rslsync が実行されるようにしてください: Systemd/ユーザー#systemd のユーザーインスタンスを自動起動を見てください。

rslsync システムユーザーで実行することもできます。その場合 --user を取ってください:

# systemctl enable rslsync
# systemctl start rslsync

ユーザーの設定は /etc/rslsync.conf に、メタデータは /var/lib/rslsync/ にデフォルトで保存されます。ユーザー名とパスワードの設定は変更するようにしてください。

設定

以下のコマンドでサンプル設定ファイルを作成することができます:

# rslsync --dump-sample-config > ~/.config/rslsync/rslsync.conf

変更するべき設定は以下の通りです:

  • device_name
  • storage_path
  • webui/login
  • webui/password
ノート:
  • rslsyncstorage_path ディレクトリが存在しない場合でも自動的には作成してくれません。ディレクトリが存在しない場合、手動で作成するか設定ファイルの自動作成を使ってください。
  • storage_path の設定は、メタデータが保存される場所を定義します。同期するファイルではありません。同期するファイルの保存場所は WebGUI でフォルダごとに定義します。
  • 最近のバージョンの rslsync では webui/password_hash が上手く動作しません。代わりに webui/password でファイルを指定してください。

設定ファイルの自動作成

btsync-autoconfigAUR パッケージには systemd のユーザーサービス (btsync-autoconfig.service) が含まれており、有効にすると、ユーザーの btsync.service が起動したときにデフォルト値で設定ファイルを作成します。

ノート: btsync-autoconfigAUR によって設定ファイルが作成された場合、ポートの設定が違うかもしれません。btsync のユーザーインスタンスのポートは 8888 ではなく 7889 + $UID になります。$UID が "1000" なら、ポートは 8889 です。

インストールスクリプトはデフォルトで全てのユーザーでサービスを有効化します。以下のコマンドで無効化することができます:

# systemctl --global disable btsync-autoconfig.service

以下のコマンドを使うことで特定のユーザで有効化できます:

$ systemctl --user enable btsync-autoconfig.service

btsync-autoconfig.service~/.config/btsync/btsync.conf が存在しない場合、デフォルトで作成しますが、設定のデフォルト値は以下のようになります:

  • device_name: $USER@$HOSTNAME
  • storage_path: ~/.btsync
  • webui/login: $USER/password

また、スクリプトは storage_path ディレクトリも作成します。設定ファイルの作成とは別に行われます。

トラブルシューティング

Missing storage path

サービスを起動しても WebUI にアクセスできない場合、systemctl --user status rslsync を実行して rslsync の状態を確認してください (システムインスタンスの場合は systemctl status rslsync を実行)。

よくあるエラーは Storage path specified in config file does not exist. です。mkdir ~/.rslsync を実行するか、storage_path の設定を変更することで簡単に解決できます。

特定のファイルやフォルダの同期を無視する

同期フォルダの特定のファイルを Resilio Sync によって追跡されないようにしたい場合、IgnoreList を使ってください。IgnoreList は隠しフォルダの .sync に入っています。

IgnoreList は UTF-8 でエンコードされた .txt ファイルで、ファイルのパスやルールを記述して同期の対象から外すことができます。IgnoreList ファイルは1行ごとに1つのルールを指定します。無視フィルターにかかったファイルはインデックスの対象外になり Sync のメインビューの "Size" カラムにカウントされなくなります。

ワイルドカード記号の '?' や '*' を使用することができます。

IgnoreList をフォルダに適用した場合、既に同期されたフォルダ内のファイルに効果はありません。インデックスに含まれたファイルを IgnoreList に追加した場合、他の同期デバイスでファイルが削除されます。削除されないようにしたい場合:

  • 全てのデバイスでフォルダを同期から外す。
  • 全てのデバイスの IgnoreList ファイルを編集して同じ情報を記入する。
  • 修正を加えたフォルダを再度追加する。

詳しくは Ignoring files in Sync (IgnoreList) を参照してください。

ARM アライメントエラー

/etc/tmpfiles.d/rslsync.confw /proc/cpu/alignment - - - - 2 という行を追加してください (ファイルは作成する必要があります)。ただし、この設定をすると性能が劣化する可能性があります。

参照