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

みなさんお久しぶりです、fkdm(@fkdm88)です。
最近いろいろなクラウドストレージサービスってありますよね。Dropbox、OneDrive、GoogleDrive….。 私もDropboxを介してメインマシン、ノートPC、スマホの間でファイル同期を行っていました。 がしかし!無料枠では同期できるデバイス数に制限があったりして、なかなか思うように使えないんですよね。 (金払えばいーじゃん、と言われたらそこまでですが)
そんなときに見つけたSyncthingというサービス。オープンソース開発されていて以下特徴を持ちます。
- ローカルLAN内で無制限にファイル同期が可能
- サーバレスな分散型であり、クラウドにデータを残さない
- 暗号化された通信で覗き見されない
Dropboxをはじめとするクラウドストレージは、複数人で共有する際にも真価を発揮しますが、私のような他人と共有することのないパーソナルユースではSyncthingで事足りるのではと思います。デバイス数に上限がないのが魅力。
用途
- Android端末で撮影した写真をサーバPCとミラーリング(Googleフォトの代替)
- サーバPCに入っているMP3をAndroid端末とミラーリング(Googleミュージックの代替)
- ブログ下書きのMarkdownファイルをミラーリング
など、かなり便利に使っています。
ではお試ししていきます!
同期させるマシン
Syncthingはクロスプラットフォームであり以下の3台で同期を試しました。
- Linux PC(ArchLinux)
- Windows10
- Androidタブ
インストール〜起動
Linux PC
超★簡単です。やっぱいいなぁLinux。
# install
sudo pacman -Sy syncthing
# running (<user>はユーザ名に読み替える)
sudo systemctl enable syncthing@<user>.service
sudo systemctl start syncthing@<user>.service
仕事場にあるUbuntu 16.04でapt install syncthing
実行してもインストールできませんでした。
Debian系ディストリビューションの場合、この手順を踏めばよいようです。Ubuntu21.04 on dockerだったら手順不要だったため、古いUbuntuを使ってる方は注意しましょう。
Windows10
公式サイトからダウンロード、インストールもできますが、解説記事は星の数ほどありましたので本記事ではみんな大好きScoopで導入しました。 超★簡単です。やっぱいいなぁScoop。
scoop install synctrayzor
インストールしたらSynctrayzorを起動して設定画面を開き、起動時に自動起動するようチェックを入れておきましょう。

Android
Playストアからインストール。
電池消費の観点からGPSの設定などはOFFにしていますが、このへんはお好みで。設定晒しておきます。

初期設定
http://localhost:8384 へお手持ちのブラウザでアクセスするとSyncthingの設定画面が開きます。セキュリティ考慮されており、LAN内マシンからIP指定してもアクセスできません。localhostのみ許可されています。 とはいえ、Synctrayzorではツール上にGUI設定があり、Androidアプリではアプリ上で設定完結できるので、実質ブラウザでGUI設定するOSはLinux版に絞られるかと思います。
さて、ここではファイル同期するための最低限の設定を行います。
その前に、初回アクセス時に使用状況をレポートしてもよいか聞かれますのでお好みのほうを選択しておきましょう。

端末ペア設定
まずはじめに同期するデバイスの登録を行う必要があります。(珍しくキャプチャ付きで丁寧にまとめました)
- 画面右下の
Remote Devices
にあるAdd Remote Device
をクリック Device ID
とDevice Name
を入力する。ローカルLANに既にSyncthingサーバが立ち上がっていたら、You can also select one of these nearby devices:
としてサジェスト表示されるので楽ちんです。Device Name
はエイリアスとして認識しやすい任意の名前を入力しておきましょう*1- サジェスト表示にデバイスが表示されない場合は、画面右上の
Actions >> Show ID
からDevice ID
の確認が可能です
- ペア設定を行うと、
Device ID
を登録された側のGUIで以下通知が届きます。Androidなら通知に表示されます。念のため自分のデバイスからのリクエストであることを確認しAdd Device
を選択します。上記項2の画面が開きますので同様に入力します*1
これでペア設定は完了です。同様の手順を繰り返し行い、Linux PC, Windows10, Android上でそれぞれのDeviceが見えている状態まで仕上げます
*1 ブログ用にDockerで立ち上げたSyncthingコンテナで、すぐ消すのでDeviceIDのモザイク処理などしていませんが、本来晒すべきではない情報ですので注意です
同期ディレクトリの設定
ペア設定が終わったら、いよいよ同期ディレクトリの設定に移ります。同期ディレクトリはいくつでも追加することが可能ですが今回はDefault Folderを同期させてみます(めずらs
- 画面左上の
Folders
のDefault Folder
をクリックすると、アコーディオンメニューが開きます。メニューの中のEdit
をクリック Unshared Devices
にいる、先ほどペア設定を行ったデバイスにチェックを入れてSave
します。- ペア設定の時と同様、同期設定された側のGUIで以下通知が届きます。Androidなら通知に表示されます。念のため自分のデバイスからのリクエストであることを確認し
Share
を選択します。
これで同期設定も完了です。必要に応じて同様の手順を繰り返し行い、各デバイス間の同期設定を行いましょう。
動作確認
フォルダを作ってファイルを置いてみます。10秒もせずにファイル同期がされました。 同期までのラグはファイルサイズに依存するようです。
今回同期設定したDefault Folder
は以下ディレクトリを参照します(アコーディオンメニューから確認が可能ですね)
OS | Path |
---|---|
Windows | C:\Users\<User>\Sync |
Linux | /home/<user>/Sync |
最後に
クラウドに保存していない性質上、同期させてるデバイス数だけファイルサイズを食うのが欠点といえば欠点でしょうか。 ※1GBのファイルを同期させると各デバイスに1GBのファイルを作るので、3台同期なら合計3GB消費する
ただ、DropboxやEvernoteだと無料枠内ではすぐにデバイス上限に引っ掛かり面倒だった私にとっては、とっても便利で利用させてもらってるサービスです。
PCからスマホにちょっとしたファイル送りたいときとか、写真のバックアップとか、PCにある音楽をスマホに移すときとか、、、 ぜひお試しください。それでは!
-
前の記事
【IoT】Raspberry Pi PicoでLEDを光らせてみた 2021.02.06
-
次の記事
オープンソースのファイル同期サービスSyncthingを会社でひっそりと使う【自己責任】 2021.04.26