Syncthing+tailscale 组建私人文件同步服务


为什么使用 syncthing

懒得讲了,使用开源软件图啥自己心里清楚,不要来杠什么好,用的舒服就行。

安装

官网

盗图让大家看到更加清楚

Win

在官网中选择图形化界面即可

下载后一路默认配置即可

Windows系统推荐安装 SyncTrayzor,拥有图形用户界面(如下图)并可以最小化到托盘后台运行,并可以设置开机启动(默认即是随开机自动启动)。

mac

同上,选择 mac 版本即可

Linux

下载安装包

# 下载中继服务器,根据不同的版本,一样在官网中选择
cd /tmp
wget https://github.com/syncthing/syncthing/releases/download/v1.29.7/syncthing-linux-amd64-v1.29.7.tar.gz
# 解压压缩包
tar -zxvf syncthing-*.tar.gz

rm syncthing-*.tar.gz
# 进入目录
sudo mkdir -p /opt/syncthing
sudo cp syncthing-*/* /opt/syncthing
cd /opt/syncthing

创建最小权限用户

# 创建系统用户 syncthing,不创建家目录(因为我们使用 /etc/syncthing)
sudo useradd --system \
    --no-create-home \
    --shell /usr/sbin/nologin \
    syncthing

# 创建必要的目录
sudo mkdir -p /etc/syncthing
sudo mkdir -p /var/lib/syncthing

# 设置目录权限
sudo chown -R syncthing:syncthing /etc/syncthing
sudo chown -R syncthing:syncthing /var/lib/syncthing

# 设置适当的权限
sudo chmod 750 /etc/syncthing
sudo chmod 750 /var/lib/syncthing

如果需要同步特定目录,需要额外授权:

# 示例:给 syncthing 用户访问特定同步目录的权限
sudo mkdir -p /path/to/sync/folder
sudo chown syncthing:syncthing /path/to/sync/folder
sudo chmod 750 /path/to/sync/folder

创建所需文件及目录

# 1. 首先使用 root 创建目录
sudo mkdir -p /etc/syncthing

# 2. 然后更改所有权
sudo chown -R syncthing:syncthing /etc/syncthing

# 3. 设置正确的权限
sudo chmod 750 /etc/syncthing

# 4. 创建默认同步文件夹
sudo mkdir -p /home/syncthing/Sync
sudo chown -R syncthing:syncthing /home/syncthing/Sync
sudo chmod 750 /home/syncthing/Sync
# 1 设置服务文件
sudo tee /etc/systemd/system/syncthing.service << 'EOF'
[Unit]
Description=Syncthing - Open Source Continuous File Synchronization
After=network-online.target
Wants=network-online.target

[Service]
Type=simple
User=syncthing
Group=syncthing
ExecStart=/opt/syncthing/syncthing serve --no-browser --no-restart --logflags=0 --home=/etc/syncthing
Restart=on-failure
RestartSec=5

# 2 基本资源限制
LimitNOFILE=524288

[Install]
WantedBy=multi-user.target
EOF

# 3. 重新加载并重启服务
sudo systemctl daemon-reload
sudo systemctl restart syncthing

# 4. 查看状态
sudo systemctl status syncthing

相关命令

#启动 syncthing 
sudo systemctl start syncthing.service
#重启 syncthing
sudo systemctl restart syncthing.service
#查看 syncthing 运行状态
sudo systemctl status syncthing.service

开机启动

win/mac

选择图形化界面直接点击即可,略过。

Linux

设置 syncthing 开机自启动

sudo systemctl enable syncthing.service

进阶教程

配置篇

打洞篇

推荐使用 tailscale 来进行打洞(P2P直连)

此软件的黑科技过多,可以说只要你有 ipv6 地址,打洞成功率就非常高了


如果本文帮助到了你,帮我点个广告可以咩(o′┏▽┓`o)


评论
 上一篇
go jwt go jwt
JWT是用于在认证之后传输信息的开放标准。它可以用于跨域信息交换和取代Session会话管理。JWT由Header, Payload, Signature三部分组成。Header描述元数据;Payload是我们要传输的数据;Signature是对前两部分的签名,用于防止数据被篡改。本文采用Go语言的jwt库来实现一个简单的JWT Demo。
2023-05-06
下一篇 
正则表达式自用表 正则表达式自用表
正则表达式自用表
2023-04-18
  目录