環境
1 2 3 4 5 6 |
Linux ServerName 5.15.0-53-generic #59-Ubuntu SMP Mon Oct 17 18:53:30 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux LSB Version: core-11.1.0ubuntu4-noarch:printing-11.1.0ubuntu4-noarch:security-11.1.0ubuntu4-noarch Distributor ID: Ubuntu Description: Ubuntu 22.04.1 LTS Release: 22.04 Codename: jammy |
下記を参考にインストールしました:
https://qiita.com/MasanoriIwakura/items/555f3bc0f4f322c63cdf
準備
同期対象のファイルが多いと下記のエラーが起きるので事前に対応しておく
以下のフォルダへの変更の監視を始めるにあたってエラーが発生しました。
1分ごとに再試行するため、すぐに回復するかもしれません。
エラーが続くようであれば、原因に対処するか、必要に応じて助けを求めましょう。 サポート
data failed to setup inotify handler. Please increase inotify limits, see https://docs.syncthing.net/users/faq.html#inotify-limits
- 自動再起動の設定
- lsync を使用するので監視可能なファイル数を増やす設定
1 |
$ sudo vi /etc/sysctl.conf |
1 2 3 4 5 |
# reboot if kernel panic. kernel.panic = 5 # lsyncd fs.inotify.max_user_watches = 1920000 |
5 は再起動までの秒数 (1 – 60, 0: 再起動しない)
設定の反映
1 |
$ sudo /sbin/sysctl -p |
設定の確認
1 2 |
$ sudo /sbin/sysctl -n 'kernel.panic' $ sudo /sbin/sysctl -n 'fs.inotify.max_user_watches' |
—
Install
下記を参考に stable インストールしました
そのままです:
https://apt.syncthing.net/
To allow the system to check the packages authenticity, you need to provide the release key.
# Add the release PGP keys:
sudo curl -o /usr/share/keyrings/syncthing-archive-keyring.gpg https://syncthing.net/release-key.gpgThe stable channel is updated with stable release builds, usually every first Tuesday of the month.
# Add the “stable” channel to your APT sources:
echo “deb [signed-by=/usr/share/keyrings/syncthing-archive-keyring.gpg] https://apt.syncthing.net/ syncthing stable” | sudo tee /etc/apt/sources.list.d/syncthing.listThe candidate channel is updated with release candidate builds, usually every second Tuesday of the month. These predate the corresponding stable builds by about three weeks.
# Add the “candidate” channel to your APT sources:
echo “deb [signed-by=/usr/share/keyrings/syncthing-archive-keyring.gpg] https://apt.syncthing.net/ syncthing candidate” | sudo tee /etc/apt/sources.list.d/syncthing.listAnd finally.
# Update and install syncthing:
sudo apt-get update
sudo apt-get install syncthing
実行
1 |
$ syncthing |
ブラウザが立ち上がります
http://127.0.0.1:8384
GUI認証: ユーザー名とパスワードを設定
メニュー > 設定 > GUI
接続先デバイスとフォルダの追加
ファイルのバージョン管理を期間別設定してみました
Service 設定
1 2 |
$ sudo systemctl enable syncthing@${USER}.service $ sudo systemctl start syncthing@${USER}.service |
1 2 3 |
$ sudo systemctl enable syncthing@${USER}.service $ sudo systemctl start syncthing@${USER}.service $ sudo systemctl status syncthing@${USER}.service |
ssh portforwarding
Syncthing の利用では常時電源の入っているPCが無いと都合が悪いので
モニターもキーボードも接続されていないPCにもインストールしたのですが
設定をするのに Syncthing の httpポートに接続できないとしんどいので
Syncthing サーバー ここでは 192.168.11.105
の http ポート 8384 をローカールの 8000 へ転送
ssh の認証が password の場合
1 |
$ ssh ${USER}@192.168.11.105 -p 22 -L 8000:localhost:8384 -o PreferredAuthentications=password -CN |
それ以外で必要になりそうなオプション
1 |
$ ssh ${USER}@192.168.11.105 -p 22 -L 8000:localhost:8384 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -CN |
これで下記で接続、設定できるようになった
http://localhost:8000/
—
中継サーバーを介する ssh portforwarding の例
行う度に思い出せない…
転送元 -> 中継 リバース接続
http.example.com:80 -> relay.example.com:44000
1 |
$ ssh username@relay.example.com -p 22 -R 44000:http.example.com:80 -i ~/.ssh/id_rsa -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -CN |
ローカル -> 中継
127.0.0.1:8000 -> relay.example.com:44000
1 |
$ ssh username@relay.example.com -p 22 -L 8000:localhost:44000 -i ~/.ssh/id_rsa -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -CN |
—