以非 root 用户运行(强烈推荐)

在部署 Syncthing 时,不建议使用 root 用户运行

原因如下:

  • root 权限过高,一旦配置错误可能影响整个系统
  • 同步过程中可能误操作系统目录(如 /etc/var
  • 文件权限容易混乱,后期维护成本高

实际运维中,使用独立用户运行是标准做法

  1. 创建用户

    1
    
    useradd -m -s /usr/sbin/nologin syncthing

    说明:

    -m:自动创建用户目录 -s /usr/sbin/nologin:禁止该用户登录系统(提升安全性)

    这个用户仅用于运行 Syncthing 服务,不用于登录

  2. 使用 syncthing 启动 Syncthing 服务

    1
    
    systemctl enable --now syncthing@syncthing

    首次启动后,Syncthing 会自动初始化配置目录:

    1
    
    /home/syncthing/.local/state/syncthing/

    该目录包含:

    • config.xml(主配置文件)
    • 设备证书(身份认证)
    • 同步索引数据

    建议不要手动删除或随意修改此目录内容

(可选) 配置WEB监听地址或端口

默认情况下,Syncthing 的 Web 管理界面仅监听:

127.0.0.1:8384

这意味着:

只能通过本机访问(更安全)

如果你需要远程访问(例如跨服务器管理),可以修改配置文件:

1
vi "/home/syncthing/.local/state/syncthing/config.xml"

找到:

1
<address>127.0.0.1:8384</address>

修改为:

1
<address>0.0.0.0:8384</address>

表示监听所有网络接口的TCP 8384端口。

安全建议

  • 不建议直接暴露到公网
  • 推荐配合以下方式使用:
    • SSH 隧道
    • 反向代理(带认证)
    • 防火墙限制 IP

(可选)为 Syncthing 用户设置目录权限

为了确保 Syncthing 可以正常读写同步目录,需要正确设置权限.

例如: 需要同步 /site 目录

1
chown -R syncthing:syncthing /site

说明:

  • Syncthing 不会自动提升权限
  • 所有文件操作都以运行用户身份执行

如果权限不正确,可能出现:

  • 文件无法同步
  • 无法删除文件
  • 同步报错(permission denied)

运维建议:

  • 同步目录尽量统一归属 syncthing 用户
  • 避免多个用户同时写入同一目录
  • 特别是在 “Receive Only” 场景下,避免人为修改文件