PCとスマホでファイルを同期するのに、クラウドストレージを使用しているという方も多いと思います。しかしほとんどのクラウドストレージは、サーバー管理者が中身を確認することができるので、プライバシーが心配です。そんな時に便利なのが、P2Pでファイル同期できるSyncthingです。誰にも内容を見られることもないし、クラウドストレージの容量を気にする必要もありません。この記事では、Syncthingの仕組みと使い方について、分かりやすく解説しています。
Syncthingの安全性と使い方
Syncthingの安全性の仕組みと、危険性について解説します。
Syncthingとは
「Syncthing」は、P2Pのファイル同期ツールです。
クラウドサーバーを経由せずに、デバイス間でデータが送受信され、フォルダの内容が即座に反映されます。
一般的なクラウドストレージとは異なり、サーバーにデータが保存されないので、検閲されたり、不正利用されたりする心配がありません。
また、オープンソースで開発されているので、透明性が保たれています。
Windows、macOS、Linux、Android等は無料で利用できます。iOSでは、一部の有料アプリが対応しています。
Syncthingの仕組み
Syncthingの基本的な仕組みをご紹介します。
P2P
Syncthingには中央管理サーバーがなく、各デバイスが「ピア」として直接通信をします。
各デバイスは対等な関係で、どちらがホスト・クライアントということもありません。
基本的に、各デバイスがインターネット上のどこにあっても同期することができます。
暗号化
通信データはTLS(Transport Layer Security)によって暗号化されるので、第三者が盗聴することは困難です。
デバイスID
Syncingをインストールすると、デバイスIDが自動生成されます。
同期をする際は、各デバイスが相互にデバイスIDを承認する必要があるので、第三者が不正に傍受することは困難です。
ディスカバリーサーバー(グローバル探索)
Syncthingは、まずローカルネットワークでマルチキャストをして、デバイスの検出を試みます。
ローカルネットワーク内で見つからない場合は、ディスカバリーサーバーに、自身のデバイスIDとIPアドレスを登録します。
両方の接続情報がディスカバリーサーバーに登録されることで、通信相手のIPアドレスを知ることができ、同期が開始されます。
ディスカバリーサーバーには一時的に接続情報が登録されるだけであり、通信内容は保存されません。
リレーサーバー(中継サーバー)
NATやファイアウォールによって通信が遮られ、P2Pで接続できない場合は、リレーサーバーが中継を行います。
つまり「A ↔ B」ではなく、「A ↔ リレーサーバー ↔ B」となります。
通信内容はエンドツーエンドで暗号化されているので、リレーサーバーはその内容を解読することはできません。
Syncthingの危険性
Syncthingを使う上での注意点をご紹介します。
データ漏洩
Syncthingは誰でも簡単に使える一方で、複雑なネットワーク設定も可能となっています。
誤った設定をすると、データ漏洩につながるリスクがあります。
また企業のネットワーク管理者からすると、従業員が勝手にSyncthingを使用して、内部データを流出させるリスクもあります。
データ消失
SyncthingのUIは洗練されているとはいい難く、特にフォルダの同期設定はかなり分かりにくくなっています。
誤った設定をして、データを消失してしまうリスクがあります。
匿名ではない
Syncthingは通信内容を暗号化しますが、匿名性を担保している訳ではありません。
特に、ディスカバリーサーバーやリレーサーバにはIPアドレスが登録されることに注意しましょう。これらのサーバーの使用をオフにすることもできますが、通信できなくなる恐れもあります。
VPNと併用することで、匿名性を高めることができます。
NordVPNでは、メッシュネットワーク機能により、簡単に仮想LANを構築することができます。(Syncthingを使う必要もなくなりそうですが)
JellyfinとNordVPNのメッシュネットワークを使って、PC内の動画をスマホで簡単に視聴する方法
PC内に保存してある動画をスマホで再生できたらいいのに、と思ったことがある方は多いと思います。JellyfinとNordVPNを使えば、無料で、簡単に実現できます。この記事では、NordVPNのメッシ ...
Syncthingの設定と使い方
Windows・Android・iOSでの、Syncthingのインストールと、同期の方法について解説します。
Windows
ダウンロード
ブラウザで「https://syncthing.net/」を開き、「Downloads」をクリックします。
「Syncthing Windows Setup」をクリックします。
GitHubのリリースページで、「syncthing-windows-setup.exe」をダウンロードします。
インストール
ダウンロードしたファイルを実行します。
ログインしているユーザーだけで使用するか、全ユーザーが使用するかを選択します。
内容を確認し、「Next」をクリックします。
内容を確認し、「Next」をクリックします。
インストールフォルダのパスを確認し、「Next」をクリックします。
スタートメニューに登録するか確認し、「Next」をクリックします。
ネットワーク設定を確認し、「Next」をクリックします。
後から変更もできます。
自動起動の設定、デスクトップにショートカットを作成するかを確認し、「Next」をクリックします。
設定内容を確認し、「Install」をクリックします。
Windowsファイアウォールに除外設定をするかの確認です。
「はい」でいいでしょう。
「Finish」をクリックして、完了です。
初期設定
Syncthingsの設定をするには、ブラウザで「http://127.0.0.1:8384」にアクセスします。
「https」ではないというセキュリティの警告が出ますが、無視して進みます。
「詳細情報」をクリックして「127.0.0.1にアクセスする」をクリックします。(エラーの表示の仕方はブラウザによって異なります)
使用状況をレポートするかを選択します。
どちらでもいいですが、私は「いいえ」にしました。
集計した情報は「https://data.syncthing.net/」で確認できるとのことです。
「ユーザー名」と「パスワード」を設定するように薦められます。
今回は自分しか使わないので、「OK」で無視しました。
初期設定では、「C:\Users\【ユーザー名】\Sync」が同期フォルダとなります。
このフォルダは変更できませんが、削除することはできます。
削除するには「編集」をクリックします。
「除去」をクリックします。
改めて、「フォルダーを追加」をクリックします。
「フォルダー名」と「フォルダーパス」を入力し、「保存」をクリックします。
フォルダーパスは、手入力する必要があります。
Android
Androidでは「Syncthing-Fork」が利用できます。
もともと公式の「Syncthing」アプリがありましたが、あまりメンテナンスされていなかったため(?)、Google Playストアから削除されました。
「Syncthing-Fork」は、その後継です。
「続行」をクリックします。
ファイル同期をするためには、ストレージアクセスの許可が必要となります。
「許可を与える」をタップします。
「全ファイルの管理権を付与」をオンにします。
バッテリー最適化と書かれていますが、要はバックグランド同期です。
「許可を与える」をタップします。
「許可」をタップします。
ロケーションアクセスの許可は、特定のWi-Fiアクセスポイントに接続した時のみ同期する、などの設定に必要となります。
今回は不要なので、無視して「続行」としました。
インストールが完了しましたが、まだ何もありません。
デバイスとフォルダーの同期設定が必要となります。
iOS
iOSでは公式のSyncthingアプリがありませんが、「Möbius Sync」で同期をすることができます。
ただし無料版は、全体で20MBまでしか同期できません。テスト用と割り切ったほうがよいでしょう。
有料版の「Möbius Sync Pro」は、700円の買い切りです。
使い方は、ブラウザ画面と大差ないので割愛させていただきます。
同期設定
WindowsとAndroidデバイスで、フォルダーを同期する方法をご紹介します。
どちら側からも設定できるので、この通りにやる必要はありません。
参考程度にしていただければと思います。
1. Android
「デバイス」タブを選択し、右上の「+」アイコンをタップします。
デバイスIDは長いので、QRコードアイコンをタップし、カメラを起動します。
2. Windows
右上の「メニュー」から、「IDを表示」をクリックします。
QRコードが表示されます。
3. Android
QRコードをカメラで読み取ります。
「デバイス名」を手入力し、右上の「✓」をタップします。
4. Windows
Windowsの方に通知が表示されるので、「デバイスを追加」をクリックします。
「デバイス名」を手入力し、「保存」をクリックします。
デバイスを登録しただけでは、まだ同期されません。
各フォルダーごとに、同期するデバイスを設定する必要があります。
共有したいフォルダーの「編集」をクリックします。
「共有」タブを選択し、同期したいデバイスにチェックを入れ、「保存」をクリックします。
5. Android
今度はAndroid側に接続を求める通知が来るので、「受付」をタップします。
保存するフォルダーを作成し、同期するデバイスをオンにし、右上の「✓」をタップします。
これで完了で、すぐに同期が始まります。
まとめ
分かりましたでしょうか。
デバイスの登録と、フォルダーごとにどのデバイスと同期をするのかが別れています。それぞれに承認が必要です。
また、「デバイスID / デバイス名」「フォルダーID / フォルダー名 / フォルダーパス」で、別々の名前を設定できるようになっています。
これにより、より柔軟な設定ができるようになっているのか、またはいろいろなOSで同期するために必要な処理なのかは分かりませんが、初見ではなかなか戸惑うところです。
Syncthingの終了
Syncthingは一度起動すると、バックグラウンドでも同期し続けます。(そうでないと困りますよね)
Windows版の場合、終了するには右上の「メニュー」から「シャットダウン」をクリックします。
Android版の場合、左上の「≡」から「終了」をタップします。
iOS版のMöbius Syncには、終了という概念がないようです。