GoogleフォトやDropboxの代替!Syncthingを使ってLAN内マシンとファイル同期をする

GoogleフォトやDropboxの代替!Syncthingを使ってLAN内マシンとファイル同期をする

みなさんお久しぶりです、fkdm(@fkdm88)です。

最近いろいろなクラウドストレージサービスってありますよね。Dropbox、OneDrive、GoogleDrive….。 私もDropboxを介してメインマシン、ノートPC、スマホの間でファイル同期を行っていました。 がしかし!無料枠では同期できるデバイス数に制限があったりして、なかなか思うように使えないんですよね。 (金払えばいーじゃん、と言われたらそこまでですが)

Advertisement

そんなときに見つけたSyncthingというサービス。オープンソース開発されていて以下特徴を持ちます。

  • ローカルLAN内で無制限にファイル同期が可能
  • サーバレスな分散型であり、クラウドにデータを残さない
  • 暗号化された通信で覗き見されない

Dropboxをはじめとするクラウドストレージは、複数人で共有する際にも真価を発揮しますが、私のような他人と共有することのないパーソナルユースではSyncthingで事足りるのではと思います。デバイス数に上限がないのが魅力。

用途

  • Android端末で撮影した写真をサーバPCとミラーリング(Googleフォトの代替)
  • サーバPCに入っているMP3をAndroid端末とミラーリング(Googleミュージックの代替)
  • ブログ下書きのMarkdownファイルをミラーリング

など、かなり便利に使っています。


ではお試ししていきます!

Advertisement

同期させるマシン

Syncthingはクロスプラットフォームであり以下の3台で同期を試しました。

  • Linux PC(ArchLinux)
  • Windows10
  • Androidタブ

インストール〜起動

Linux PC

超★簡単です。やっぱいいなぁLinux。

# install
sudo pacman -Sy syncthing
​
# running (はユーザ名に読み替える)
sudo systemctl enable syncthing@.service
sudo systemctl start syncthing@.service

仕事場にあるUbuntu 16.04でapt install syncthing実行してもインストールできませんでした。

Debian系ディストリビューションの場合、この手順を踏めばよいようです。Ubuntu21.04 on dockerだったら手順不要だったため、古いUbuntuを使ってる方は注意しましょう。

Windows10

公式サイトからダウンロード、インストールもできますが、解説記事は星の数ほどありましたので本記事ではみんな大好きScoopで導入しました。 超★簡単です。やっぱいいなぁScoop。

scoop install synctrayzor

インストールしたらSynctrayzorを起動して設定画面を開き、起動時に自動起動するようチェックを入れておきましょう。

Synctrayzor設定画面

Android

Playストアからインストール。

電池消費の観点からGPSの設定などはOFFにしていますが、このへんはお好みで。設定晒しておきます。

Syncthing(Android)設定画面

初期設定

http://localhost:8384 へお手持ちのブラウザでアクセスするとSyncthingの設定画面が開きます。セキュリティ考慮されており、LAN内マシンからIP指定してもアクセスできません。localhostのみ許可されています。 とはいえ、Synctrayzorではツール上にGUI設定があり、Androidアプリではアプリ上で設定完結できるので、実質ブラウザでGUI設定するOSはLinux版に絞られるかと思います。

さて、ここではファイル同期するための最低限の設定を行います。

その前に、初回アクセス時に使用状況をレポートしてもよいか聞かれますのでお好みのほうを選択しておきましょう。

Syncthing GUI 使用状況レポート

端末ペア設定

まずはじめに同期するデバイスの登録を行う必要があります。(珍しくキャプチャ付きで丁寧にまとめました)

  1. 画面右下のRemote DevicesにあるAdd Remote Deviceをクリック
  2. Device IDDevice Nameを入力する。ローカルLANに既にSyncthingサーバが立ち上がっていたら、You can also select one of these nearby devices:としてサジェスト表示されるので楽ちんです。Device Nameはエイリアスとして認識しやすい任意の名前を入力しておきましょう*1
  3. サジェスト表示にデバイスが表示されない場合は、画面右上のActions >> Show IDからDevice IDの確認が可能です
  4. ペア設定を行うと、Device IDを登録された側のGUIで以下通知が届きます。Androidなら通知に表示されます。念のため自分のデバイスからのリクエストであることを確認しAdd Deviceを選択します。上記項2の画面が開きますので同様に入力します*1

これでペア設定は完了です。同様の手順を繰り返し行い、Linux PC, Windows10, Android上でそれぞれのDeviceが見えている状態まで仕上げます

*1 ブログ用にDockerで立ち上げたSyncthingコンテナで、すぐ消すのでDeviceIDのモザイク処理などしていませんが、本来晒すべきではない情報ですので注意です

同期ディレクトリの設定

ペア設定が終わったら、いよいよ同期ディレクトリの設定に移ります。同期ディレクトリはいくつでも追加することが可能ですが今回はDefault Folderを同期させてみます(めずらs

  1. 画面左上のFoldersDefault Folderをクリックすると、アコーディオンメニューが開きます。メニューの中のEditをクリック
  2. Unshared Devicesにいる、先ほどペア設定を行ったデバイスにチェックを入れてSaveします。
  3. ペア設定の時と同様、同期設定された側のGUIで以下通知が届きます。Androidなら通知に表示されます。念のため自分のデバイスからのリクエストであることを確認しShareを選択します。

これで同期設定も完了です。必要に応じて同様の手順を繰り返し行い、各デバイス間の同期設定を行いましょう。

動作確認

フォルダを作ってファイルを置いてみます。10秒もせずにファイル同期がされました。 同期までのラグはファイルサイズに依存するようです。

今回同期設定したDefault Folderは以下ディレクトリを参照します(アコーディオンメニューから確認が可能ですね)

OSPath
WindowsC:\Users\<User>\Sync
Linux/home/<user>/Sync

最後に

クラウドに保存していない性質上、同期させてるデバイス数だけファイルサイズを食うのが欠点といえば欠点でしょうか。 ※1GBのファイルを同期させると各デバイスに1GBのファイルを作るので、3台同期なら合計3GB消費する

ただ、DropboxやEvernoteだと無料枠内ではすぐにデバイス上限に引っ掛かり面倒だった私にとっては、とっても便利で利用させてもらってるサービスです。

PCからスマホにちょっとしたファイル送りたいときとか、写真のバックアップとか、PCにある音楽をスマホに移すときとか、、、 ぜひお試しください。それでは!

Advertisement