Syncthingは、無料のオープンソースのピアツーピアファイル同期アプリケーションです。 Syncthingは、ローカルネットワーク上のデバイス間またはインターネット上のリモートデバイス間でファイルを同期できます。複数のデバイス間で送信されるすべてのデータはTLSで暗号化されます。 1つのピアリングノードでデータを作成、変更、または削除するたびに、アプリケーションは変更を他のサーバーに自動的に複製します。もう1つの人気のある機能は、Windows、macOS、Linux、Android、Solaris、Darwin、およびBSDで利用可能なクロスプラットフォームであるSyncthingであり、複数のデバイス間での同期を可能にします。
この優れた同期ソフトウェアを試してみたいユーザーは、このガイドの最後で、 Ubuntu20.04LTSにSyncthingをインストールする方法を理解できます。 。同じ原則が新しいバージョンのUbuntu21.04(Hirsute Hippo)でも機能します。
- 推奨OS: (2x) Ubuntu 20.04 –オプション(Ubuntu21.04およびLinuxMint 20)
- ユーザーアカウント: sudoまたはrootアクセス権を持つユーザーアカウント。
- 必要なパッケージ: apt-transport-https、curl
Ubuntu20.04オペレーティングシステムを確認して更新します。
sudo apt update && sudo apt upgrade -y
デフォルトでは、サーバーには(curl)が付属している必要があります インストールされていますが、(apt-transport-https)のインストールと一緒にこれを確認します パッケージ。これは、APTパッケージマネージャーがこのリポジトリとのHTTPS接続を確立できるようにするために必要です。
sudo apt install apt-transport-https curl -y
公式の.Debリポジトリを使用してSyncthingをインストールする
SyncthingはデフォルトのUbuntuリポジトリにありますが、多くの人が望むほど最新ではありません。代わりに、公式のソースdebリポジトリをインストールします:
まず、次のコマンドを実行してGPGキーを追加します。
curl -s https://syncthing.net/release-key.txt | sudo apt-key add -

(OK)を取得する必要があります 上記のようにUbuntuターミナルに出力します。これは、GPGキーが正常にインポートされたことを意味します。次に、ターミナルで次のコマンドを実行して、Syncthingリポジトリを追加する必要があります。
echo "deb https://apt.syncthing.net/ syncthing stable" | sudo tee /etc/apt/sources.list.d/syncthing.list

これで、リポジトリを更新してSyncthingをインストールできます:
sudo apt update && sudo apt install syncthing -y
バージョンビルドを確認して、インストールを確認します。
syncthing --version

SyncthingをSystemdサービスとして構成する
Syncthing (。deb) パッケージには必要な(systemd)が付属しています (/ lib / systemd / system)の場所にあるサービスファイル 。このディレクトリの下に、([email protected])があります。 ファイル。 Syncthingが機能する方法は、(@)の間にアカウントのユーザー名を入力する必要があることです。 および(。service)、 例:([email protected]) 。
キックスタートしてSyncthingを有効にするには、次のコマンドを実行する必要があります。
sudo systemctl enable [email protected]
成功したかどうかを知るには、以下の例を(Created symlink)で出力する必要があります。 :

起動時にサービスが有効になっているので、次のコマンドを実行して、今回は手動でサービスを開始する必要があります。
sudo systemctl start [email protected]
ここで、次のコマンドを入力してステータスを確認する必要があります。
sudo systemctl status [email protected]

ステータス画面を終了するには、(Q)を押します または(CTRL + C) 。
構成ファイルは(/ home / username / .config / syncthing /)の下にあることに注意してください デフォルトのホームフォルダは(/ home / username / syncthing /) 。必要に応じて、後でホームフォルダを変更できます。
メインの構成ファイルは(/ home / username / .config / syncthing / config.xml)にあります。 デフォルトの127.0.0.1を内部または外部IPアドレスに変更するなど、設定を変更または修正する必要がある場合。
UFWファイアウォールの構成
Syncthingはポートを使用できるようにする必要があります(22000) ピアと通信します。 UFWを使用している場合は、次のコマンドを実行してポートを許可します。
sudo ufw allow 22000/tcp
SyncthingPeersをインストールする
Syncthingを使用するには、この時点までの2番目のコピーを別のサーバーまたはデスクトップにインストールする必要があります。 Syncthingの最も素晴らしい部分は、Linuxだけでなく複数のオペレーティングシステムにインストールできることです。
Syncthingを使用してLinux以外の別のプラットフォームにバックアップする場合は、必ず(受信)を設定してください。 ファイルのアクセス許可が出入りする場合にのみ問題が発生します。
最初の使用と構成同期WebUI
Syncthingは(127.0.0.1:8384)をリッスンします デフォルトでは、Webブラウザでアクセスできます。 InternetExplorerのアドレスバーに次のように入力します。
http://127.0.0.1:8384
初めてWebUIを起動すると、(匿名の使用状況レポートを許可しますか?)を尋ねるポップアップが表示されます。 。続行するオプションを選択してください。

使用状況レポートを整理すると、(GUI認証:ユーザーとパスワードの設定)通知が表示されます。 Syncthingサービスを保護することは非常に重要なので、すぐに(設定)を押す必要があります 設定ページに進みます。

次の画面で、(GUI)を選択します 以下に示すように:

次に、(ユーザー名)を設定します および(パスワード) 。また、この部分は(HTTPS)を設定できます 必要に応じてGUIを使用します。終了したら、(保存)を押します 図のように右下隅にあるボタン:

今こそ、2番目のピアリングオペレーティングシステムで上記のすべてのガイドを繰り返して、ガイドの次の部分に移動するときです。これには、(2)が必要です。 Syncthingクライアント。
デバイス間でのファイルとフォルダの同期
これで、さまざまなデバイスとオペレーティングシステムに2つ以上のSyncthingクライアントがインストールされ、デバイス間でファイルまたはフォルダーの同期を設定できるようになりました。
まず、(ピアリングノード1)のWebUIで 、([アクション]> [IDを表示])をクリックできます 右上隅に、文字と数字の長い文字列であるデバイスIDがあります。

QTコード、デバイスIDも表示され、スマートフォンやタブレットのSyncthingに使用されます。

次のステップは、(デバイスID)をコピーすることです。 ガイドの例では、(CAL3FN4-R72LBTK-Q3ZFAEC-OUOAIEM-ZOJIMQ3-JHG5OCK-ZSJORVA-64552A3)です。 (ピアリングノード1)と呼ばれる最初からファイルを同期させたいノードのWebUIインターフェースから このガイドのために。
次に、2番目のピアリングデバイスのWebUIを開きます(ピアリングノード2) (リモートデバイスの追加)をクリックします 右下隅にあります。デバイスIDを過ぎて、新しいデバイスに名前を付けてから、(保存)をクリックします。 ボタンをクリックして続行します。

ここで(ピアリングノード1 )に戻ります )、(ピアリングノード2)が接続を試みているのがわかります。表示されない場合は、ページを更新し、UFWまたは同様のファイアウォールがページをブロックしていないことを確認してください。 (デバイスの追加)をクリックします 続行するには:

クリックしてデバイスを追加すると、(ピアリングノード1)に新しい画面が表示されます。ここでは、デバイスのデフォルト名を変更したり、共有パネルでファイルやディレクトリを自動的に共有したりできます。 (保存)をクリックします 続行するには:

これで、両方のノードが接続されました。これで、デバイス間でディレクトリを共有できます。例:(ピアリングノード1) 自分自身と(ピアリングノード2)の間で同期するフォルダがあります 。最初のクリックで、(ピアリングノード1)にフォルダが追加されます :

ガイドとして、例では(ダウンロード)を使用しました デバイス間で同期するディレクトリ。同期するフォルダを(ピアリングノード2)に指定できます。 一意のID(名前) 。ガイドとして、IDに(downloads-backup)という名前を付けました。 パスを設定します。 [保存]をクリックしないでください。 (共有)をクリックします 続行するには一番上の行:

現在、(共有)にあります パネルで、共有するリモートデバイスをクリックします。以下の例では(ピアリングノード2)、[保存]をクリックして続行します。

現在、(ピアリングノード1)にあります 、フォルダのスキャン自体に気付くでしょう。これで問題ありません。ここで(ピアリングノード2)に戻り、(ピアリングノード1)の新しいポップアップが表示されます。 (ダウンロード)を送信したい ディレクトリ。 [追加]をクリックします:

これで、新しいポップアップが(ピアリングノード2)に表示されます。 、ここでは、必要に応じてパスを変更したり、上部ペインの他のオプションを調整したりできます。今のところ、[保存]をクリックして、同期プロセスの開始を確認します。

これで1分ほどかかる場合がありますが、デバイスの同期が開始されます(以下の例)。

おめでとうございます。Syncthingを使用して2つのデバイスを同期しました。次のエラーが表示された場合は注意してください(フォルダマーカーの作成に失敗しました:mkdir .stfolder:読み取り専用ファイルシステム) 、権限を修正するには、次の手順を参照してください。修正したら、syncthingサービスを再起動すると、プロセスが開始されます。
Syncthingパーミッションの設定
Syncthingは、リモートノード間の送受信で問題が発生する場合があります。 Linuxシステムでは、パッケージをインストールできます(setfacl) 次のコマンドを入力して:
sudo apt install acl
次に、ユーザー名を使用して次のコマンドを実行します。
sudo setfacl -R -m u:username:rwx /folder/path/
ファイルが絶えず変更されるため、これに常に問題が発生する場合は、次のようにcronジョブを設定できます。
sudo crontab -e
次に、5分ごとに同期権限を追加します:
*/5 * * * * sudo setfacl -R -m u:username:rwx /folder/path/ -n
2番目の機能は、(権限を無視)を設定することです。 (詳細) SyncthingWebUIのオプション。これで問題も修正できますが、上記の手順に(setfacl)を使用して注意してください。 ほとんどの場合、この機能と組み合わせて実行する必要があります。

送信専用フォルダーと受信専用フォルダーの構成
Syncthingの優れた機能は、送受信するピアリングノードを指定できることです。ただし、送信のみと受信のみが可能であるため、究極の柔軟性が得られます。これを行うには、(詳細)を開きます 現在同期しているフォルダのトップパネルで、(フォルダタイプ)を参照してください。 受信、送信、またはその両方に変更します。

保存をクリックすることを忘れないでください。
Syncthingの構成スキャン間隔の調整
変更を常に監視してCPUを解放するために同期を必要としない場合は、デバイス間の同期フォルダーを編集する際の(詳細)セクションで(変更の監視)を無効にできます。
また、デフォルトでは、1時間ごとに完全な再スキャンがスケジュールされ、変更が1時間ごとに同期され、より長くまたはより短く調整されます。

NginxをSyncthingのリバースプロキシとして構成する
サーバーにアクセスするためのリバースプロキシとしてSyncthingtoNginxを設定するとします。このガイドでは、ポート80を使用してセットアップする方法を説明します。以下の例に従ってください。
まず、OndřejSurýからカスタムNginx PPAをインストールします。これは、より優れた機能で更新されています。
安定:
sudo add-apt-repository ppa:ondrej/nginx && sudo apt update -y
メインライン:
sudo add-apt-repository ppa:ondrej/nginx-mainline && sudo apt update -y
次に、Nginxをインストールします:
sudo apt install nginx-core nginx-common nginx nginx-full -y
次に、仮想ホストファイルを作成する必要があります。これを行うには、次のコマンドを実行します。
sudo nano /etc/nginx/sites-available/syncthing.conf
(syncthing.conf)に次のコードを追加します ファイル:
server {
listen 80;
server_name syncthing.example.com;
access_log /var/log/nginx/syncthing.access.log;
error_log /var/log/nginx/syncthing.error.log;
location / {
proxy_pass http://127.0.0.1:8384;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
ファイルを保存するには(CTRL + O) 次に(CTRL + X) 出る。次に、次のコマンドを実行してNginx構成をテストします:
sudo nginx -t
エラーがなくすべてが正しい場合は、次の出力が得られます。
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
終了するには、Nginxサービスをリロードまたは再起動します:
sudo systemctl restart nginx
この時点から、URLhttp://syncthing.example.comを使用してSyncthingサーバーにアクセスできます。