2024年7月

  1. 创建 systemd 服务文件

    首先,创建一个新的 systemd 服务文件:

    sudo nano /etc/systemd/system/syncthing.service
  2. 添加以下内容到服务文件

    [Unit]
    Description=Syncthing - Open Source Continuous File Synchronization
    Documentation=https://docs.syncthing.net/
    After=network.target
    
    [Service]
    User=your_username
    ExecStart=/opt/syncthing/syncthing -no-browser
    Restart=on-failure
    RestartSec=5
    
    [Install]
    WantedBy=multi-user.target

    请将 your_username 替换为实际的用户名。

  3. 重新加载 systemd 配置

    sudo systemctl daemon-reload
  4. 启用并启动 Syncthing 服务

    sudo systemctl enable syncthing
    sudo systemctl start syncthing

检查 Syncthing 状态

使用以下命令来检查 Syncthing 是否正在运行:

systemctl status syncthing

或者,如果你使用了 init.d

sudo service syncthing status

清华大学镜像站:

deb https://mirrors.tuna.tsinghua.edu.cn/debian/ buster main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ buster-updates main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ buster-backports main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian-security/ buster/updates main contrib non-free

中科大镜像站:

deb https://mirrors.ustc.edu.cn/debian/ buster main contrib non-free
deb https://mirrors.ustc.edu.cn/debian/ buster-updates main contrib non-free
deb https://mirrors.ustc.edu.cn/debian/ buster-backports main contrib non-free
deb https://mirrors.ustc.edu.cn/debian-security/ buster/updates main contrib non-free

阿里云镜像站:

deb http://mirrors.aliyun.com/debian/ buster main contrib non-free
deb http://mirrors.aliyun.com/debian-security buster/updates main
deb http://mirrors.aliyun.com/debian/ buster-updates main contrib non-free
deb http://mirrors.aliyun.com/debian/ buster-backports main contrib non-free

上海交大镜像站:

deb https://mirror.sjtu.edu.cn/debian/ buster main contrib non-free
deb https://mirror.sjtu.edu.cn/debian/ buster-updates main contrib non-free
deb https://mirror.sjtu.edu.cn/debian/ buster-backports main contrib non-free
deb https://mirror.sjtu.edu.cn/debian-security/ buster/updates main contrib non-free

问题:

The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 0E98404D386FA1D9 NO_PUBKEY 6ED0E7B82643E131 NO_PUBKEY F8D2585B8783D481

解决方法:手动导入公钥

  1. 获取并导入公钥: 你可以使用 apt-key 命令手动导入缺少的公钥。

    下面是获取并导入缺少公钥的命令:

    sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 0E98404D386FA1D9
    sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 6ED0E7B82643E131
    sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys F8D2585B8783D481
  2. 更新包列表: 导入公钥后,更新包列表:

    sudo apt-get update

OIP-C

下载arm版本客户端

image-20240724142547411

电脑本地解压缩后上传玩客云,建议是放到/opt文件夹中
给syncthing执行权限
运行syncthing
su - xxx #换成其他用户syncthing不支持root用户运行
./syncthing

随后就会看到有很多信息,看到类似以下内容的时候就可以按 CTRL-C 退出程序了:

[OH4IP] 13:32:15 INFO: Completed initial scan (rw) of folder edatb-zzc5f
[OH4IP] 13:32:15 INFO: Device OH4IPQD-QDCDAZB-YMMZE4F-BAK4BLQ-3EZLPTD-V73J37V-LTW44V6-YSM6JQ7 is "ruter.ga" at [dynamic]
[OH4IP] 13:32:15 INFO: Loading HTTPS certificate: open /root/.config/syncthing/https-cert.pem: no such file or directory
[OH4IP] 13:32:15 INFO: Creating new HTTPS certificate
[OH4IP] 13:32:15 INFO: GUI and API listening on 127.0.0.1:8384
[OH4IP] 13:32:15 INFO: Access the GUI via the following URL: http://127.0.0.1:8384/
[OH4IP] 13:32:16 INFO: Detected 0 NAT devices

我们第一次运行是为了让它创建配置文件,然后我们再进行修改。用以下命令对配置文件进行编辑:

vim /home/xxx/.local/state/syncthing/config.xml  #xxx是你的用户名

到下面这几行:

<gui enabled="true" tls="false" debugging="false">
    <address>127.0.0.1:8384</address>
    <apikey>2GeGJK9z6tXKP3nHJYU56ZHoYSYnqQ9S</apikey>
    <theme>default</theme>
</gui>

然后把 IP 127.0.0.1 修改成 0.0.0.0 即可保存退出:

<gui enabled="true" tls="false" debugging="false">
    <address>0.0.0.0:8384</address>
    <apikey>2GeGJK9z6tXKP3nHJYU56ZHoYSYnqQ9S</apikey>
    <theme>default</theme>
</gui>

设置好之后执行 syncthing 运行,就可以通过 http://your_ip_addr:8384 来进行访问管理了,如果直接通过外网 IP:端口访问还是无法打开管理页面,那就需要进行防火墙的设置开启 `8384端口了:

iptables -I INPUT -p tcp --dport 8384 -j ACCEPT
service iptables save
service iptables restart
syncthing

再次打开 http://your_ip_addr:8384 就能看见管理页面了

1

可以很明显地看到一条警告信息,提醒我们设置管理用户及密码,点击「设置」,然后把「用户名」和「密码」填写好,「使用加密连接到图形管理页面」这个是开启HTTPS,按需勾选

image-20240724143655837

同步

打开本地管理页面 http://127.0.0.1:8384/,然后点击「添加远程设备」将VPS添加到同步列表里,其中「设备ID」需要在VPS的管理页面打开「操作」–「显示ID」查看,将ID复制到「设备ID」一栏中,「地址列表」默认使用 dynamic 即可,其他按需修改

image-20240724143713764

保存之后我们可以在 VPS 端的管理页面上看见连接请求

image-20240724143733362

添加成功后会有共享文件夹的提示

image-20240724143752798

为了测试文件同步是否成功,我在本地同步路径 C:\Users\Administrator\Sync 添加了一个文件 ROR.txt,自动同步完成后可以在VPS端管理页面看到「最后接收的文件」显示「已更新 ROR.txt」

image-20240724143814067

进阶

在服务器上使用Syncthing可以修改配置文件后使用外网进行访问管理,本地端也可以如法炮制,如果没有外网IP则需要使用花生壳之类的进行映射,具体操作请移步Google :)

Syncthing有一些高级的功能前面没有提及,例如每个共享的文件夹都可以在「选项」内打开「高级设置」,进行一些设置,如开启「版本控制」。

通过Syncthing共享的文件夹,被取消共享后,本地已经同步的文件也依然会存在。

除了自己使用,在小圈子内也是很有利用价值,例如共享资源什么的,再也不用忍受各种网盘的龟速上传下载以及删资源啦!

「玩物志」Syncthing的安装与使用修改