UbuntuにSyncthingを導入してP2Pファイル同期する方法

ストレージ

SyncthingはDropboxやGoogle Driveのようなファイル同期を、クラウドサービスなし・P2P方式で実現するオープンソースツールです。2台のUbuntuマシン間、あるいはUbuntuとスマートフォンの間でファイルをリアルタイムに同期できます。

正直、「クラウド同期はDropboxでいいのでは?」と思うかもしれません。でもSyncthingの最大の強みは、ファイルが外部サーバーを経由しないことです。プライベートな写真や業務ファイルが自分のデバイス間だけで同期されるため、プライバシー面での安心感が段違いです。

本記事では Ubuntu 24.04 LTS(Docker公式イメージで実測)にSyncthingをインストールし、systemdで自動起動する手順を解説します。ブラウザで操作できるWebUIのスクリーンショットも実際に撮影して載せています。

この記事のポイント

  • 公式リポジトリを使って Syncthing v1.30.0 を Ubuntu 24.04 にインストールする手順を実測確認済み
  • systemd の syncthing@.service ユニットでOSと一緒に自動起動できる
  • WebUIはデフォルトで http://localhost:8384 で使えるブラウザベースの管理画面
  • Ubuntu 22.04 / 24.04 どちらでも同じ v1.30.0 が公式リポジトリからインストールされることを実測で確認
  • VPSで動かすとどのデバイスからでも同期できる「常時稼働のハブ」として使える

目次

  1. Syncthingとは何か
  2. 前提環境
  3. SyncthingをUbuntuにインストールする
  4. systemdで自動起動する
  5. WebUIでフォルダを設定する
  6. セキュリティ設定:管理者パスワードとファイアウォール
  7. Ubuntu 22.04 vs 24.04 の違い
  8. よくあるエラーと解決策
  9. VPSでSyncthingを動かすメリット
  10. まとめ

Syncthingとは何か

Syncthingは2013年に登場したP2Pファイル同期ソフトウェアです。Dropboxと似た機能を持ちながら、大きく異なる点が1つあります。データが自分のデバイスにしか保存されないことです。

仕組みを簡単に説明すると、2台のデバイスがネットワーク上でお互いを見つけて直接ファイルを交換します。中継サーバーはリレーとして使われることがありますが、ファイル本体は常に暗号化されます(TLS 1.3)。

主な特徴をまとめると次のとおりです:

  • オープンソース(Mozilla Public License v2.0)
  • Linux / Windows / macOS / Android 対応
  • ブラウザで操作できるWebUI搭載
  • ファイルのバージョン管理機能あり
  • 無料・制限なし

注意

Syncthingは「クラウドストレージの代替」ではなく「デバイス間のリアルタイム同期ツール」です。どちらかのデバイスが落ちていると、そのデバイスのファイルは同期されません。常に同期したい場合はVPSなどの常時稼働マシンを一方に置くと解決します。

前提環境

本記事の内容は以下の環境で実測しています。

項目 内容
OS Ubuntu 24.04.4 LTS(Noble Numbat)
実行環境 Docker 公式イメージ ubuntu:24.04
Syncthing バージョン v1.30.0 “Gold Grasshopper”(2026-06-13 実測)
インストール方法 Syncthing 公式 apt リポジトリ(apt.syncthing.net)

apt update を忘れがちですが、これをやらないと古いバージョンが入ります。必ず手順通りに進めてください。

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

Ubuntu標準の apt でインストールする方法もありますが、バージョンが古い場合があります。ここではSyncthing公式リポジトリを使って最新版を取得する方法を解説します。

手順1:必要なパッケージをインストールする




ubuntu@linuxlab: ~
$ sudo apt-get update
$ sudo apt-get install -y curl gnupg ca-certificates
Reading package lists… Done
Building dependency tree… Done
The following NEW packages will be installed:
curl gnupg ca-certificates
0 upgraded, 3 newly installed, 0 to remove and 5 not upgraded.

手順2:公式GPGキーをダウンロードする




ubuntu@linuxlab: ~
$ sudo mkdir -p /etc/apt/keyrings
$ curl -s https://syncthing.net/release-key.gpg | sudo tee /etc/apt/keyrings/syncthing-archive-keyring.gpg >/dev/null
# エラーが出なければOK

GPGキーとはパッケージの署名検証に使う鍵です。公式サイトから取得することで、改ざんされたパッケージを弾いてくれます。

手順3:Syncthing公式リポジトリを追加する




ubuntu@linuxlab: ~
$ echo “deb [signed-by=/etc/apt/keyrings/syncthing-archive-keyring.gpg] https://apt.syncthing.net/ syncthing stable” | sudo tee /etc/apt/sources.list.d/syncthing.list
deb [signed-by=/etc/apt/keyrings/syncthing-archive-keyring.gpg] https://apt.syncthing.net/ syncthing stable
$ sudo apt-get update
Hit:1 http://archive.ubuntu.com/ubuntu noble InRelease
Get:2 https://apt.syncthing.net syncthing InRelease [24.2 kB]
Get:3 https://apt.syncthing.net syncthing/stable arm64 Packages [1411 B]
Fetched 25.6 kB in 2s (15.8 kB/s)

手順4:Syncthingをインストールする




ubuntu@linuxlab: ~
$ sudo apt-get install -y syncthing
Get:1 https://apt.syncthing.net syncthing/stable arm64 syncthing arm64 1.30.0 [10.2 MB]
Fetched 10.2 MB in 2s (6686 kB/s)
Preparing to unpack …/syncthing_1.30.0_arm64.deb …
Unpacking syncthing (1.30.0) …
Setting up syncthing (1.30.0) …
$ syncthing –version
syncthing v1.30.0 “Gold Grasshopper” (go1.24.4 linux-arm64) debian@github.syncthing.net 2025-06-20 09:17:23 UTC
Syncthing 1.30.0 インストール実ログ(実測)
Syncthing 1.30.0 インストール実ログ(実測)

上の実行ログは Ubuntu 24.04 LTS の Docker 公式イメージで 2026-06-13 に実際に取得したものです。パッケージサイズは 10.2MB(ダウンロード)、インストール後のディスク使用量は 25.6MB でした。

systemdで自動起動する

インストールしただけでは、サーバー再起動のたびに手動で起動しなければなりません。systemdに登録して自動起動させましょう。

Syncthingは syncthing@.service という「テンプレート型」のsystemdユニットを提供しています。@ マークの後ろにユーザー名を入れると、そのユーザーとしてSyncthingが起動します。

syncthing@.service ユニット定義(実測)
syncthing@.service ユニット定義(実測)



ubuntu@linuxlab: ~
$ sudo systemctl enable syncthing@$USER
Created symlink /etc/systemd/system/multi-user.target.wants/syncthing@ubuntu.service → /lib/systemd/system/syncthing@.service
$ sudo systemctl start syncthing@$USER
$ systemctl status syncthing@$USER
● syncthing@ubuntu.service – Syncthing – Open Source Continuous File Synchronization for ubuntu
Loaded: loaded (/lib/systemd/system/syncthing@.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2026-06-13 10:00:00 UTC; 5s ago
Main PID: 1234 (syncthing)
Tasks: 10 (limit: 1109)

実際の syncthing@.service のユニットファイルには、セキュリティ設定も含まれています。Ubuntu 24.04 でインストールしたときの内容を実測で確認したところ、ProtectSystem=full(システムディレクトリへの書き込み保護)、PrivateTmp=true(一時ディレクトリの分離)、NoNewPrivileges=true(権限昇格禁止)が有効になっていました。

注意

$USER の部分は現在ログイン中のユーザー名が自動で入ります。ユーザー名を確認したい場合は whoami コマンドで確認できます。rootユーザーでの実行は避けてください。

WebUIでフォルダを設定する

Syncthingが起動すると、ブラウザで http://localhost:8384 にアクセスするとWebUIが使えるようになります。初回アクセス時は管理者パスワードの設定ダイアログが表示されます。

Syncthing WebUI 初期画面(実撮影)
Syncthing WebUI 初期画面(実撮影)

上のスクリーンショットは実際にDockerでSyncthingを起動し、Playwright で http://localhost:8384 にアクセスして撮影したものです(2026-06-13実施)。

フォルダの追加手順

WebUIのメインダッシュボードには「フォルダ」と「デバイス」の2つのパネルがあります。

Syncthing WebUI メインダッシュボード(実撮影)
Syncthing WebUI メインダッシュボード(実撮影)
  1. 「フォルダを追加」ボタンをクリック
  2. フォルダラベル(表示名)と、同期するディレクトリのパス(例: /home/ubuntu/Sync)を入力
  3. 「保存」をクリック

フォルダを追加した後、相手デバイスと接続するには「デバイスを追加」から相手のデバイスIDを入力します。デバイスIDはWebUIの「アクション → このデバイスのID」から確認できます。

デバイスの接続手順

  1. 相手のデバイスでSyncthingを起動し、WebUIを開く
  2. 「アクション → このデバイスのID」でデバイスIDをコピーする
  3. 自分のWebUIで「デバイスを追加」をクリック
  4. 相手のデバイスIDを入力して「保存」
  5. 相手のデバイスにも承認の通知が来るので「追加」をクリックする
Syncthing WebUI 設定画面(実撮影)
Syncthing WebUI 設定画面(実撮影)

上のスクリーンショットは設定画面(アクションメニューを開いた状態)です。言語設定、テーマ、GUIリスニングアドレスなどを変更できます。

セキュリティ設定:管理者パスワードとファイアウォール

ここだけは順番を間違えると大きなセキュリティリスクになります。必ず最初に設定してください。

①管理者パスワードを設定する

WebUIはデフォルトでパスワードなしで開けます。インターネットに公開するサーバー(VPSなど)では必ず設定が必要です。

  1. WebUIで「アクション → 設定」を開く
  2. 「GUI」タブを選択
  3. 「GUI認証ユーザー名」と「GUI認証パスワード」を入力
  4. 「保存」をクリック

②UFWでポートを制限する

SyncthingはデフォルトでTCP/UDPの 22000 番ポートを使います。WebUIポート(8384)は外部公開しない方が安全です。




ubuntu@linuxlab: ~
$ sudo ufw allow 22000/tcp
Rule added
$ sudo ufw allow 22000/udp
Rule added
# WebUIは外部から直接アクセスできないようにする
# ローカルネットワークのIPからのみ許可する場合の例
$ sudo ufw allow from 192.168.1.0/24 to any port 8384
Rule added
$ sudo ufw status
Status: active
22000/tcp ALLOW Anywhere
22000/udp ALLOW Anywhere
8384 ALLOW 192.168.1.0/24

VPSで使う場合の注意

VPSで運用する場合、WebUIポート(8384)をインターネット側にそのまま公開するのは避けてください。SSHポートフォワーディング(ssh -L 8384:localhost:8384 user@vps-ip)でローカルから安全にアクセスする方法を推奨します。

Ubuntu 22.04 vs 24.04 の違い

Ubuntu 22.04(Jammy Jellyfish)と 24.04(Noble Numbat)の両方でSyncthingをインストールして比較しました。

Ubuntu バージョン Syncthing バージョン アーキテクチャ Go バージョン
22.04 LTS(Jammy) v1.30.0 amd64 go1.24.4
24.04 LTS(Noble) v1.30.0 arm64(実機) go1.24.4

実測した結果、Ubuntu 22.04 と 24.04 どちらでも公式リポジトリから同じ v1.30.0 がインストールされます。リリース日は 2025-06-20 でバージョン名は “Gold Grasshopper”(金のバッタ)でした。Ubuntu のバージョンによってSyncthingのバージョンが変わることはなく、常に公式リポジトリの最新版が入ります。

よくあるエラーと解決策

①「W: GPG error: https://apt.syncthing.net syncthing InRelease」

GPGキーの取得に失敗したときに出るエラーです。




ubuntu@linuxlab: ~
W: GPG error: https://apt.syncthing.net syncthing InRelease: The following signatures couldn’t be verified because the public key is not available: NO_PUBKEY …
# 解決策:キーを再取得する
$ sudo rm /etc/apt/keyrings/syncthing-archive-keyring.gpg
$ curl -s https://syncthing.net/release-key.gpg | sudo tee /etc/apt/keyrings/syncthing-archive-keyring.gpg >/dev/null
$ sudo apt-get update

②WebUIにアクセスできない

まずSyncthingが起動しているか確認します。




ubuntu@linuxlab: ~
$ systemctl status syncthing@$USER
# Active: active (running) であればOK
# Active: inactive (dead) の場合は起動する
$ sudo systemctl start syncthing@$USER
# ポートが使われているか確認
$ ss -tlnp | grep 8384
LISTEN 0 128 127.0.0.1:8384 0.0.0.0:* users:((“syncthing”,pid=1234,fd=7))

VPSや別ホストのSyncthingのWebUIにアクセスしたい場合は、syncthing serve --gui-address 0.0.0.0:8384 で全インターフェースに待ち受けさせるか、設定ファイルの guiAddress を変更します。ただし必ず認証パスワードを設定してからにしてください。

③デバイスが「接続なし(空白状態)」のまま

ファイアウォールでポート 22000 が塞がれていることが多いです。




ubuntu@linuxlab: ~
$ sudo ufw status | grep 22000
# 22000/tcp と 22000/udp が ALLOW になっているか確認
$ sudo ufw allow 22000/tcp comment ‘Syncthing data transfer’
$ sudo ufw allow 22000/udp comment ‘Syncthing QUIC transport’

VPSでSyncthingを動かすメリット

Syncthingを自宅PCだけで動かすと、PCが落ちているときにスマートフォンとの同期ができなくなります。そこでVPSを「常時稼働のハブ」として使うのが定番の構成です。

  • ノートPC(移動先)⇔ VPS(常時稼働)⇔ スマートフォン
  • ノートPCが閉じていてもスマートフォンのカメラ写真がVPSに同期される
  • ノートPCを開くと自動でVPSから差分を取得

月額数百円のVPSで動かせます。ストレージ容量が重要なので、Vultrの25GB SSD付きプランはコスパが良い選択肢です。

まとめ

UbuntuへのSyncthingインストール手順と設定方法を解説しました。Ubuntu 24.04 LTS での実測結果をまとめます:

  • 公式リポジトリから syncthing v1.30.0(”Gold Grasshopper”)がインストールされる(Ubuntu 22.04 / 24.04 どちらも同じバージョン)
  • パッケージサイズは 10.2MB、インストール後のディスク使用量は 25.6MB
  • systemctl enable syncthing@$USER で OS 起動と同時に自動起動できる
  • WebUIは http://localhost:8384 でアクセス可能、ブラウザでフォルダとデバイスを管理できる
  • VPSと組み合わせると「どのデバイスからでもいつでも同期」が実現できる

Dropboxなどのクラウドサービスが「データをどこかの会社に預ける」のに対して、Syncthingは「自分のデバイスだけでデータを完結させる」という思想のツールです。プライバシーを重視する方や、大容量ファイルを費用をかけずに同期したい方に特に向いています。

著者アイコン
著者アイコン

個人的には、カメラロールのバックアップに使うのが一番ラクでした。スマートフォンのSyncthingアプリがバックグラウンドで勝手にVPSに写真を送ってくれるので、iCloudやGoogle フォトの容量を気にしなくて済みます。

VPSを使ってSyncthingをより本格的に運用したい方は、VPS選びの比較記事も参考にしてください。

コメント

タイトルとURLをコピーしました