ウェブサイト検索

CentOS 8/CentOS 7 での Syncthing のインストールと構成 |


Syncthing は、ネットワーク内の 2 台以上のコンピューター間でファイルを同期するために使用されるオープンソースの継続的なファイル同期です。このチュートリアルは、CentOS 8/CentOS 7 Linux マシンに Syncthing をインストールして構成するのに役立つように書かれています。 Syncthing はインストール、保守が簡単で、ローカル ネットワーク内およびインターネット上のコンピューター間でファイルを簡単に同期する方法を提供します。

Syncthing の核となる設計原則

Syncthing は以下の中核的な目標を持って構築されています。

  • データ損失から安全 – ユーザーのファイルが破損しないようにすることで、ユーザーのデータを保護します。
  • 使いやすさ – Syncthing は、親しみやすく、理解しやすく、包括的である必要があります。
  • 攻撃者から保護する – ユーザーのデータが不正な当事者による盗聴や変更の危険にさらされることを決して許可しないでください。
  • 個人向け – Syncthing は主に、安全で使いやすいファイル同期を個人ユーザーに提供することを目的としています。
  • 自動 – ユーザーの操作は、絶対に必要な場合にのみ必要となります。
  • 世界中で利用可能 – Syncthing はすべての一般的なコンピュータで実行できる必要があります。

CentOS 8/CentOS 7 に Syncthing をインストールする

CentOS およびその他の RHEL Linux ディストリビューション ファミリの場合、インストール用の RPM パッケージを提供する公式にサポートされるリポジトリはありません。このため、公式ソース アーカイブから Syncthing を CentOS 8/CentOS 7 にダウンロードしてインストールします。

ご使用のオペレーティング システム用の Syncthing の最新リリースを入手します。

curl -s https://api.github.com/repos/syncthing/syncthing/releases/latest | grep browser_download_url | grep linux-amd64 | cut -d '"' -f 4 | wget -qi -

ダウンロードしたアーカイブを解凍します。

tar xvf syncthing-linux-amd64*.tar.gz

解凍して作成したフォルダーにsyncthingというバイナリが入っています。バイナリ ファイルを /usr/local/bin ディレクトリにコピーしましょう。

sudo cp syncthing-linux-amd64-*/syncthing  /usr/local/bin/

Syncthing のバージョンをチェックして、バイナリ ファイルがコピーされたことを確認します。

$ syncthing --version
syncthing v1.23.4 "Fermium Flea" (go1.20.2 linux-amd64) [email  2023-04-05 13:25:55 UTC

起動時に自動的に開始するように Syncthing を構成する

Linux Systemd を使用して Syncthing サービスを管理します。これにより、ユーザーはサービス ユニットを開始、停止、有効化、無効化できるようになります。

新しいファイルを作成しましょう。

sudo vi /etc/systemd/system/[email 

以下の内容をファイルに貼り付けます。

[Unit]
Description=Syncthing - Open Source Continuous File Synchronization for %I
Documentation=man:syncthing(1)
After=network.target

[Service]
User=%i
ExecStart=/usr/local/bin/syncthing -no-browser -gui-address=0.0.0.0:8384 -no-restart -logflags=0
Restart=on-failure
SuccessExitStatus=3 4
RestartForceExitStatus=3 4

# Hardening
ProtectSystem=full
PrivateTmp=true
SystemCallArchitectures=native
MemoryDenyWriteExecute=true
NoNewPrivileges=true

[Install]
WantedBy=multi-user.target

systemd サービスリストを更新します。

sudo systemctl daemon-reload

サービスを有効にして開始します。

sudo systemctl start syncthing@$USER
sudo systemctl enable syncthing@$USER

サービス状況を確認します。

$ systemctl status syncthing@$USER
 [email  - Syncthing - Open Source Continuous File Synchronization for root
   Loaded: loaded (/etc/systemd/system/s[email ; enabled; vendor preset: disabled)
   Active: active (running) since Mon 2023-06-05 22:07:35 UTC; 2s ago
     Docs: man:syncthing(1)
 Main PID: 1635 (syncthing)
   CGroup: /system.slice/system-syncthing.slice/[email 
           ├─1635 /usr/local/bin/syncthing -no-browser -gui-address="0.0.0.0:8384" -no-restart -logflags=0
           └─1642 /usr/local/bin/syncthing -no-browser -gui-address="0.0.0.0:8384" -no-restart -logflags=0

Jun 05 22:07:36 cent7.mylab.io syncthing[1635]: 2023/06/05 22:07:36 failed to sufficiently increase receive buffer size (was: 208 kiB, wanted: 2048 kiB, got: 416 kiB). See https://git...for details.
Jun 05 22:07:36 cent7.mylab.io syncthing[1635]: [E3OLA] INFO: TCP listener ([::]:22000) starting
Jun 05 22:07:36 cent7.mylab.io syncthing[1635]: [E3OLA] INFO: Relay listener (dynamic+https://relays.syncthing.net/endpoint) starting
Jun 05 22:07:36 cent7.mylab.io syncthing[1635]: [E3OLA] INFO: QUIC listener ([::]:22000) starting
Jun 05 22:07:36 cent7.mylab.io syncthing[1635]: [E3OLA] INFO: Completed initial scan of sendreceive folder "Default Folder" (default)
Jun 05 22:07:36 cent7.mylab.io syncthing[1635]: [E3OLA] WARNING: Failed starting API: listen tcp: address tcp/8384": unknown port
Jun 05 22:07:36 cent7.mylab.io syncthing[1635]: [E3OLA] INFO: Detected 0 NAT services
Jun 05 22:07:36 cent7.mylab.io syncthing[1635]: [E3OLA] INFO: Relay listener (dynamic+https://relays.syncthing.net/endpoint) shutting down
Jun 05 22:07:36 cent7.mylab.io syncthing[1635]: [E3OLA] INFO: QUIC listener ([::]:22000) shutting down
Jun 05 22:07:36 cent7.mylab.io syncthing[1635]: [E3OLA] WARNING: Starting API/GUI: listen tcp: address tcp/8384": unknown port
Hint: Some lines were ellipsized, use -l to show in full.

$USER をユーザー名に置き換えることで、別のユーザー アカウントを使用してサービスを開始することもできます。

Syncthing UI へのアクセス

Syncthing 管理 GUI は systemd によって自動的に起動され、構成されたリッスン アドレス、ポート 8384 で使用できます。-gui-address="ip:port" オプションがオンになっていない場合は、指定すると、サービスは https://localhost:8384/ で実行されます。

$ sudo ss -tunelp | grep 8384
tcp    LISTEN     0      128    [::]:8384               [::]:*                   users:(("syncthing",pid=2194,fd=15)) ino:23328 sk:ffff9ede320e5280 v6only:0 <->

デフォルトでは、Syncthing 管理インターフェースはパスワードなしでリモート アクセスを許可するように設定されています。

設定を開いてパスワードを設定します: [設定] > [GUI]

次に、認証を求めるメッセージが表示されます。

Syncthing GUI にアクセスすると、次のようなインターフェースが表示されます。

Syncthing を使用して 2 つのデバイス間でデータを同期する

2 台以上のコンピュータ間でデータを同期できるようにするには、

同期デバイスID

これは「デバイス ID」を交換することで実現されます。あ

同期デバイス ID の追加

2 つのデバイスが相互に通信できるようにするには、両方の右下にある [リモート デバイスの追加] をクリックし、相手側のデバイス ID を入力します。

また、共有するフォルダを選択します。デバイス名はオプションであり、単なる表面的なものです。必要に応じて後で変更できます。 「保存」をクリックすると、新しいデバイスが GUI の右側に表示され ( ただし切断されます)、再起動の必要性を示すプロンプトが表示されます。

注: 共有されるデフォルトのフォルダは ~Sync です。 同期ディレクトリの追加などの変更を行った場合は、[アクション] > [再起動] で Syncthing を再起動してください。

頑張って楽しんでね!さらに多くのドキュメントがあります。問題が発生した場合は、サポート フォーラムに遠慮なく質問を投稿してください。

同様のガイド:

  • Ceph Object Gateway ストレージ用に AWS S3 CLI を設定する方法
  • Virtual Data Optimizer (VDO) によるストレージの圧縮と重複排除
  • CentOS 8/CentOS 7 で Heketi を使用して GlusterFS ストレージをセットアップする

関連記事: