ウェブサイト検索

Ubuntu 22.04にSyncthingをインストールする方法


Ubuntu 22.04にSyncthingをインストールする方法

このチュートリアルはこれらのOSバージョンのために存在します

  • Ubuntu 22.04 (ジャミー・ジェリーフィッシュ)
  • Ubuntu 20.04 (フォーカルフォッサ)

このページで

  1. 前提条件
  2. Syncthingリポジトリの追加
  3. Syncthingをインストールする
  4. ファイアウォールの設定
  5. Syncthing インスタンスを初期化しています
  6. 二つのSyncthingインスタンスを接続する
  7. Syncthingでディレクトリを同期しています
  8. Syncthingインスタンス間のファイル同期
  9. 結論

Syncthingは、Windows、macOS、Linux、Android、Solaris、Darwin、BSDなどの複数のプラットフォーム向けの、安全でオープンソースのファイル同期プログラムです。これは、分散型のピアツーピア(P2P)ファイル同期ツールであり、ローカルネットワーク上のデバイス間や、インターネットを介したリモートデバイス間でファイルを同期することができます。

このチュートリアルでは、Ubuntu 22.04サーバーにSyncthingをインストールする方法をお見せします。その後、Syncthingインスタンス間の接続を確立する方法、ディレクトリの同期を設定する方法、および同期を確認する方法を学びます。

前提条件

このチュートリアルを始めるには、以下のものが必要です:

  • 2つのUbuntu 22.04マシン - この例では、2つのUbuntuサーバーserver1とserver2を使用します。
  • 管理者権限を持つ非ルートユーザー。

Syncthingリポジトリの追加

Syncthingは複数の方法でインストールできます。バイナリファイルを介して手動でインストールすることも、UbuntuのAPTを介してインストールすることもできます。この例では、公式リポジトリを両方のUbuntuマシンに追加することにより、APTを介してsyncthingをインストールします。

まず、Ubuntuシステムに基本的なパッケージをインストールするために、次のコマンドを実行してください。

sudo apt install gnupg2 curl apt-transport-https -y

次に、両方のUbuntuシステムにsyncthingのGPGキーとリポジトリを追加します。この場合、APTリポジトリを通じてSyncthingの最新リリースをインストールします。

curl -fsSL https://syncthing.net/release-key.txt | \
sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/syncthing.gpg
echo "deb https://apt.syncthing.net/ syncthing release" | \
sudo tee /etc/apt/sources.list.d/syncthing.list

次に、以下のコマンドを使用してUbuntuリポジトリを更新およびリフレッシュします。

sudo apt update

syncthingのリポジトリが利用可能であることが分かったら、準備完了です。

Syncthingをインストールする

両方のUbuntuマシンにsyncthingリポジトリを追加したので、次のステップは、両方のマシンにそれをインストールし、systemdサービスとして実行するように設定することです。また、syncthingを実行するために両方のマシンに非rootユーザーがいることを確認してください。

Syncthingをインストールするには、次のaptコマンドを実行します。インストールを続行するには、yと入力してENTERを押してください。

sudo apt install syncthing

インストールが完了したら、次のようにsyncthingのバージョンを確認してください:

syncthing --version
syncthing -h

以下の出力には、syncthing 1.26 がインストールされているはずです。

syncthingをインストールしたので、ユーザーごとに起動する必要があります。この例では、サーバー1のユーザーaliceとサーバー2のユーザーbobを使用します。

下記のコマンドを使用してユーザーにログインします。

su - alice

次に、次のようなコマンドを使用して、ユーザーアリスのためにsyncthingサービスを開始および有効にします:

sudo systemctl start [email 
sudo systemctl enable [email 

求められた時にルート権限を取得するために、必ずパスワードを入力してください:

次に、以下のコマンドを使用してサービスが実行されていることを確認してください。

sudo systemctl status [email 

ユーザーaliceのためのsyncthingサービスが実行されていることを確認してください。また、両方のサーバーでsyncthingサービスが実行されていることも確認してください。

ファイアウォールの設定

このガイドでは、2台のUbuntuマシンでファイアウォールを有効にします。Ubuntuでは、UFW(Uncomplicated Firewall)を使用できます。また、デフォルトで、syncthingもUFWアプリケーションプロファイルを提供しているため、簡単に有効にできます。

以下のコマンドを実行して、syncthingとsyncthing-guiのプロファイルをUFWに追加してください。

sudo ufw allow syncthing
sudo ufw allow syncthing-gui

次に、OpenSSHプロファイルを追加し、以下のコマンドを使用してUFWを開始し、有効にします。操作を確認するためにyと入力します。

sudo ufw allow OpenSSH
sudo ufw enable

完了すると、次の出力が表示されます。

次に、以下のコマンドを使用して、UFWでリスト対応のルールとプロファイルを確認します。

sudo ufw status verbose

syncthingとsyncthing-guiの両方がUFWに追加されていることを確認してください。

Syncthing インスタンスを初期化しています

Syncthingをインストールし、UFWを設定したので、今度はインストールを初期化する準備が整いました。このステップでは、HTTPSを有効にしてローカルIPアドレス上でSyncthingを実行するように設定し、Syncthingのユーザー認証を設定します。

デフォルトでは、syncthingはlocalhostで実行されています。ローカルIPアドレスでsyncthingを実行したい場合は、syncthingの設定ファイル~/.config/syncthing/conf.xmlを修正してください。

~/.config/syncthing/conf.xmlファイルを以下のnanoエディタコマンドを使用して開いてください。

nano ~/.config/syncthing/conf.xml file

「<gui ..>」セクション内で、'tls'の値を'true'に変更し、デフォルトのローカルホストをあなたのローカルIPアドレスに変更してください。

    <gui enabled="true" tls="true" debugging="false" sendBasicAuthPrompt="false">
        <address>192.168.5.30:8384</address>
        <apikey>GENERATED-API-KEY</apikey>
        <theme>default</theme>
    </gui>

作業が終わったら、ファイルを保存して閉じてください。

次のコマンドを実行して、syncthingサービスを再起動してください。

sudo systemctl restart [email 

ウェブブラウザを開き、サーバーのIPアドレスとポート8384(例:https://192.168.5.30:8384/)を介してsyncthingにアクセスしてください。

インストールが成功した場合、次のページが表示されるはずです:

設定をクリックして、Syncthingを設定します。

GUIタブ内でユーザー名とパスワードを変更し、次に保存をクリックしてください。

新しいパスワードが設定された後、あなたはSyncthingの認証を求められます。

ユーザー名とパスワードを入力し、ログインをクリックしてください。

適切なユーザー名とパスワードを持っていれば、次のようなSyncthingダッシュボードが表示されるはずです:

以下は、ユーザー名とパスワードが設定された後のserver2のSyncthingダッシュボードです。

二つのSyncthingインスタンスを接続する

両方のUbuntuマシンでSynthingを設定した後、接続してそのマシン間でファイルを同期することができます。そのためには、GUIを介して両方のマシンを確認する必要があります。

サーバー1の右上にあるアクションボタンをクリックし、次にIDを表示を選択します。

server1 のデバイスIDをコピーしてください。syncthingのデバイスIDはスタート時に自動的に生成されます。また、QRコードを使用してsyncthingのインスタンス間、例えばコンピュータとAndroidフォンの間で接続することもできます。

サーバー2に移動し、リモートデバイスの追加をクリックして新しいSyncthingインスタンスを追加します。

server1のデバイスIDを入力し、名前をserver1として、保存をクリックして確認します。

次に、server1のダッシュボードに戻り、接続したいserver2に関する情報を見る。Add Deviceをクリックしてserver1を追加します。

今、新しいポップアップが表示されますので、server2 のデバイスIDを確認し、その後保存をクリックしてください。

最後に、syncthingダッシュボードに移動し、リモートデバイスセクションに移動します。プロセスが成功すれば、server2が接続済みのステータスで表示されるはずです。

一方で、server2を確認すると、server1が接続されていることがわかります。

Syncthingでディレクトリを同期しています

この時点で、server1とserver2は両方ともsyncthingを介して接続されています。これから、ディレクトリ/フォルダーを共有し、syncthingインスタンス間でファイルを同期する方法を学びます。

サーバー1のダッシュボードで、フォルダセクションを見てください。そこにパスディレクトリ/home/alice/Syncとステータス未共有のデフォルトフォルダがあります。

フォルダーを共有するには、編集をクリックしてください。

  • 共有タブに移動すると、接続されているsyncthingインスタンスのリストが表示されます。server2を選択して、デフォルトフォルダをsyncthingインスタンスserver2と共有します。
  • ファイルバージョン管理タブに移動し、使用したいファイルバージョン管理の方法を選択し、保持したいバージョンの数を入力してください。

保存をクリックして変更を適用してください。

最後に、server2 ダッシュボードに移動すると、server1 がデフォルトフォルダーを共有したいという通知メッセージが表示されます。確認するには共有をクリックしてください。

プロセスが完了すると、デフォルトフォルダーが共有されていることが確認できます。

server1 デフォルトフォルダセクションでは、共有先セクションにserver2という値が表示されるはずです。

server2 では、Default Folder と Shared With セクションが server1 に表示されるはずです。

Synchthingインスタンス間のファイル同期

Syncthingを介して共有ディレクトリを設定したので、server1から新しいファイルを作成し、server2でファイルのリストを確認して同期が正常に動作していることを確認しましょう。

server1で、Syncディレクトリに移動し、次のコマンドを使用して新しいファイルを作成します。

cd ~/Sync/
touch {1..20}.txt

server2に移動し、Syncディレクトリに行って、そのディレクトリ内のファイルのリストを確認してください。

cd ~/Sync/
ls -ah

同期ディレクトリに複数の.txtファイルが表示されている場合は、syncthingのインストールが問題なく完了したことになります。

ここから、syncthingインスタンス間で新しいディレクトリを作成し、共有することができます。また、新しいインスタンスを追加することもできます。

結論

おめでとうございます!あなたはUbuntu 22.04サーバーにSyncthingのインストールを完了しました。また、UFW(簡素なファイアウォール)を使ってSyncthingを保護する方法、Syncthingインスタンス間の接続方法、共有フォルダーの設定方法、共有ディレクトリ間の同期を確認する方法も学びました。

さらに、新しいデバイスを現在のSyncthingインストールに追加し、共有フォルダを設定することで、複数のデバイスからファイルにアクセスすることができます。

関連記事: