按操作系统选择配置:Windows、macOS 或 Linux。
Windows
目前没有 Windows 官方安装程序,不过有几种简单的解决方案。
系统内置方案:通过任务计划程序,在用户登录时或系统启动时运行;通过启动文件夹,在用户登录时运行。其他方案:使用第三方工具安装、运行;作为服务运行,不依赖用户登录。
使用任务计划程序,在用户登录或系统启动时运行
任务计划程序是 Windows 内置的管理工具,可以在用户登录时或系统启动时自动启动 Syncthing。两种情况下,Syncthing 都会启动并在后台运行,不显示窗口。技术信息见 Task Scheduler 文档。
- 从“开始菜单 > Windows 管理工具”打开“任务计划程序”,或按
Win+R,运行taskschd.msc。

Syncthing 官方文档界面示例:Windows Task Scheduler Create Task Screenshot - 在“操作”侧栏选择“创建任务…”。
- 在“常规”选项卡中,给任务命名,例如“Syncthing”,并选择“不管用户是否登录都要运行”。

Syncthing 官方文档界面示例:Windows Task Scheduler General Screenshot - 在“触发器”选项卡中,选择下列一种启动方式。
用户登录时运行: 如果只打算在登录 Windows 用户账户后使用 Syncthing,选择这一方式。点击“新建…”,将“开始任务”设为“登录时”,选择“特定用户”,然后点击“确定”。

系统启动时运行: 如果希望 Windows 一启动,Syncthing 就在后台运行,即使尚未登录用户账户,也选择这一方式。如果 Syncthing 文件夹位于受 BitLocker 保护的非系统分区,请不要采用这一方式:用户登录前无法访问这些文件夹。点击“新建…”,将“开始任务”设为“启动时”,然后点击“确定”。

- 在“操作”选项卡中,点击“新建…”。在“程序或脚本”中填写
syncthing.exe的路径,例如C:\syncthing\syncthing.exe;在“添加参数(可选)”中填写--no-console --no-browser,然后点击“确定”。

Syncthing 官方文档界面示例:Windows Task Scheduler Actions Screenshot - 在“设置”选项卡中,取消勾选“如果任务运行时间超过以下时间,停止任务”。点击“确定”,输入该用户的密码。

Syncthing 官方文档界面示例:Windows Task Scheduler Settings Screenshot
注意: 至少交互式启动一次 Syncthing,也就是直接启动,而不是依靠任务计划程序。这样才能触发 Windows 防火墙弹窗,请求你允许 Syncthing 访问网络。例如,要让 Syncthing 在当前网络中建立直接连接,或者远程访问 Web GUI,就需要完成这一操作。
任务计划程序中的附加配置
下面的设置是可选的,不是正常运行 Syncthing 的必要条件,但可以提供额外功能。根据需要选择使用。
在“条件”选项卡中:

- 取消勾选“如果计算机改用电池电源,停止”。仅取消“只有在计算机使用交流电源时才启动此任务”,并不会禁用这个选项。即使它显示为灰色,仍然有效,必须单独取消勾选。
- 取消勾选“只有在计算机使用交流电源时才启动此任务”。
- 勾选“只有在以下网络连接可用时才启动”,并将其设为“网络”。在笔记本电脑上,如果只希望通过有线互联网连接而非 Wi-Fi 启动 Syncthing,可使用这一选项。注意:启动之后,即使连接发生变化或不可用,Syncthing 也不会停止运行。
在“操作”选项卡中,选择先前创建的操作并点击“编辑…”。在“起始于(可选)”中填写 syncthing.exe 所在的父文件夹路径,然后点击“确定”。这样便能在 Syncthing 中使用相对于该文件夹的路径。

警告: 由于技术限制,在任务计划程序中结束任务,只会终止 Syncthing 的监控进程。要真正退出 Syncthing,请打开 Web GUI,在“操作”下拉菜单中点击“关闭”。
使用启动文件夹,在用户登录时运行
要在用户登录时启动 Syncthing,同时不显示控制台窗口、也不打开浏览器,操作很简单。
- 在 Windows 文件资源管理器的地址栏中粘贴
%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup,按回车。较新 Windows 版本也可以按Win+R,运行shell:startup。

Syncthing 官方文档界面示例:Windows Startup Folder Address Bar Screenshot - 右键点击文件夹空白处,选择“新建 > 快捷方式”。

Syncthing 官方文档界面示例:Windows Startup Folder New Shortcut Screenshot - 在“请输入对象的位置”中填写
syncthing.exe的路径,后接--no-console --no-browser,例如C:\syncthing\syncthing.exe --no-console --no-browser。

Syncthing 官方文档界面示例:Windows Startup Folder Create Shortcut Screenshot - 点击“下一步”,再点击“完成”。
下一次登录 Windows 用户账户时,Syncthing 就会自动启动,不会弹出控制台或浏览器窗口。你仍然可以在浏览器中打开 http://localhost:8384,访问管理界面。
使用第三方工具安装、运行
有一些第三方工具旨在让 Syncthing 更容易安装和运行。它们通常提供安装程序、自动启动选项,以及更完善的使用体验,例如像普通 Windows 应用那样运行,而不是要求你通过浏览器与 Syncthing 交互。
另见官方的 Windows GUI 包装工具、跨平台 GUI 包装工具和Windows 软件包列表。
作为服务运行,不依赖用户登录
警告: 这种方式有重要的安全注意事项。如果没有保护好 Syncthing 的 GUI 和 REST API,任何以任何权限运行的进程,都可以通过连接 Syncthing,读写文件系统中的任何文件。因此,必须设置 GUI 密码,或者以非特权用户身份运行 Syncthing。
前面启动文件夹的配置只会在用户登录后启动 Syncthing。这不适合重启后可能长时间无人登录的服务器。这时,最好创建一个在 Windows 启动时运行的服务。可以使用 NSSM,即“Non-Sucking Service Manager”来实现。
对于几乎所有终端用户场景,登录时启动都是首选方案。作为服务运行,主要适用于由了解其安全影响的系统管理员管理、通常没有显示器的服务器。
- 下载并解压 NSSM,放在可以长期保留的文件夹中。NSSM 可执行程序既负责管理,也负责作为 Windows 服务运行,因此要放在合适的位置。
- 在管理员命令提示符中,切换到 NSSM 文件夹,运行
nssm.exe install <syncthing service name>。 - 在 Application 选项卡中,将 Path 设为
syncthing.exe的路径;Arguments 填写--no-restart --no-browser --home="<path to your Syncthing folder>"。日志在后面的步骤中设置,这里使用--logfile不会生效。

Syncthing 官方文档界面示例:Windows NSSM Configuration Screenshot - 在 Details 选项卡中,可选地把 Startup type 改为 Automatic (Delayed Start),延迟系统首次启动时 Syncthing 的启动时间,从而改善开机速度。
- 在 Log On 选项卡中,填写用于运行 Syncthing 的账户。该用户必须能够完全访问 Syncthing 可执行文件及其父文件夹、配置文件/数据库文件夹,以及同步文件夹。可以保留 Local System,但这有安全风险。使用你的 Windows 用户账户可以降低风险;理想方案是创建一个具有最小权限的专用账户。
- 在 Process 选项卡中,可选地将优先级改为 Low,在系统繁忙时改善响应,代价是同步时间可能稍长。要启用日志,还可勾选“Console window”。
- 在 Shutdown 选项卡中,为确保 Syncthing 正常关闭,勾选所有复选框,并将所有超时设为
10000ms。 - 在 Exit Actions 选项卡中,将 Restart Action 设为 Stop service(oneshot 模式)。稍后会针对退出、重启和升级设置具体处理方式。
- 在 I/O 选项卡中,如需日志,将 Output (stdout) 设为期望的日志文件。Error 字段会自动使用同一个文件。
- 在 File Rotation 选项卡中,可按个人需要设置日志轮转。
- 点击 Install Service 按钮。
- 为使 Windows 服务管理器正确处理 Syncthing 的退出、重启与升级,在同一个命令提示符中执行以下命令:
nssm set syncthing AppExit Default Exit
nssm set syncthing AppExit 0 Exit
nssm set syncthing AppExit 3 Restart
nssm set syncthing AppExit 4 Restart
- 在命令提示符中执行
sc start syncthing,启动服务。 - 连接 Syncthing UI,启用 HTTPS,并设置安全的用户名和密码。
macOS
使用 Homebrew
- 执行
brew install syncthing。 - 按照
brew显示的信息,使用 launchctl 设置 Syncthing 自动启动。
不使用 Homebrew
下载并解压 Mac 版 Syncthing。
- 将 syncthing 二进制文件——也就是启动 Syncthing 时会打开的文件——复制到主目录下名为
bin的目录,即/Users/<username>/bin。如果没有bin,先创建它。 - 打开
/etc/macos-launchd中的syncthing.plist。将其中四处/Users/USERNAME替换为你的真实主目录位置。 - 将
syncthing.plist复制到~/Library/LaunchAgents。如果找不到这个位置,在 Finder 中选择“前往 > 前往文件夹…”,填写~/Library/LaunchAgents。原文说明,复制到这个位置通常会要求管理员密码。 - 注销并重新登录。如果不想注销,可以在终端执行
launchctl load ~/Library/LaunchAgents/syncthing.plist。
注意:你可能希望在 Web GUI 设置中关闭“Start Browser”,避免每次登录都打开浏览器。之后可在 Safari 中输入默认地址 127.0.0.1:8384,访问 GUI。
Linux
使用桌面环境(KDE、Gnome、Xfce、Cinnamon 等)
有两种方式,让 Syncthing 在登录桌面环境(DE)时启动。
使用桌面环境工具:搜索并打开与自动启动或启动应用有关的工具;添加一个新的自动启动应用,搜索并选择“Start Syncthing”。
如果找不到“Start Syncthing”,或者更喜欢手动操作:
- 找到
syncthing-start.desktop。从 GitHub 下载的软件包中,它位于etc/linux-desktop/;通过软件包管理器安装时,可能位于/usr/share/applications/;也可以从官方仓库获取。 - 将它复制到
~/.config/autostart/。
与应用菜单等用途的 .desktop 文件有关的更多信息,也见上面的仓库目录。
使用 Supervisord
进入 /etc/supervisor/conf.d/,创建 syncthing.conf,填写以下内容。务必把 <USERNAME> 替换为有效用户名。
文件:/etc/supervisor/conf.d/syncthing.conf
[program:syncthing]
autorestart = True
directory = /home/<USERNAME>/
user = <USERNAME>
command = /usr/bin/syncthing --no-browser
environment = STNORESTART="1", HOME="/home/<USERNAME>"
重新加载 Supervisord:
supervisorctl reload
随后启动 Syncthing:
supervisorctl start syncthing
检查是否正常运行:
supervisorctl status syncthing
出现问题时,检查日志:
supervisorctl tail syncthing
使用 systemd
systemd 是一套系统管理守护进程、库和工具,为 Linux 提供集中式管理、配置平台。它还可以为每个用户提供独立的 systemd 实例,使用户能够管理自己的服务,启动、停止、启用、禁用自己的单元。
Syncthing 提供 systemd 服务文件。它们位于下载压缩包的 etc/linux-systemd 目录中;通过 apt.syncthing.net 安装时,会直接放到系统中的适当位置。
主要有两种选择:系统服务或用户服务。
- 系统服务: 即使 Syncthing 用户没有活动会话,也能在开机时运行。因为无人登录时仍会保持运行,所以适用于服务器。
- 用户服务: 用户登录系统后才启动,例如通过图形登录界面或 SSH 登录。因此,适用于多人使用的桌面电脑,可以避免不必要地运行 Syncthing 实例。
官方 Debian/Ubuntu Syncthing 软件源和一些发行版(包括 Arch Linux)会随 Syncthing 软件包一起提供服务文件。如果发行版已安装这些文件,下面系统服务和用户服务的步骤2均可跳过。不确定时,可以先跳过;只有启用服务失败,才回到步骤2。
配置系统服务
- 创建运行服务的用户,或者选择一个已有用户。
- 如果发行版未安装服务文件,从官方仓库系统服务目录将
syncthing@.service复制到系统实例的加载路径。 - 启用并启动服务。把
@后的myuser替换为实际的 Syncthing 用户:
systemctl enable syncthing@myuser.service
systemctl start syncthing@myuser.service
配置用户服务
- 创建运行服务的用户,或者选择已有用户。通常就是你自己的用户账户。
- 如果发行版未安装服务文件,从官方仓库用户服务目录将
syncthing.service复制到用户实例的加载路径。不使用 root 权限时,可以放在主目录中的~/.config/systemd/user/。 - 启用并启动服务:
systemctl --user enable syncthing.service
systemctl --user start syncthing.service
- 如果在 Debian/Ubuntu 上使用 eCryptfs 加密主目录,需要按照 Ubuntu bug 1734290 所述进行修改。否则用户服务无法启动,因为默认情况下,systemd 会在主目录解密之前检查用户服务。
如果不使用系统服务,也可以通过 systemd 的 lingering 功能,在开机时而非登录时自动启动用户服务。它会在开机时激活启用了 linger 的用户的全部已启用服务:
sudo loginctl enable-linger myuser
systemctl --user enable syncthing.service
更多信息见 loginctl 的 enable-linger 命令,它可为指定用户启用这一功能。
检查服务状态
用 status 子命令检查 Syncthing 是否正常运行。系统服务:
systemctl status syncthing@myuser.service
用户服务:
systemctl --user status syncthing.service
使用日志
systemd 将日志记录到 journal 中,便于查看 Syncthing 的日志消息。下面两例中的 -e 会让分页查看器跳到末尾,显示最新日志。
系统服务:
journalctl -e -u syncthing@myuser.service
用户服务:
journalctl -e --user-unit=syncthing.service
权限
如果在 Syncthing 客户端的文件夹设置中启用了“忽略权限”(Ignore Permissions),还需要在 syncthing@.service 文件的 [Service] 部分添加 UMask=0002,或者其他你希望使用的 umask 设置。
要使 syncOwnership 选项生效,可以通过 systemd 单元文件授予服务额外能力。将以下片段添加到服务文件中,提供的模板已将它作为注释列出。为使升级顺利,建议用 systemctl edit ...,将这些内容保存在覆盖配置文件中:
[Service]
AmbientCapabilities=CAP_CHOWN CAP_FOWNER
通过远程文件系统挂载的主目录
如果为一个或多个用户配置系统服务,而这些用户的主目录通过网络挂载,例如 NFS,那么开机时 Syncthing 会启动失败,除非告诉 systemd,等远程文件系统挂载完毕再启动服务。
用 systemctl edit syncthing@.service 创建覆盖配置文件,调整服务:
# Wait for NFS-mounted home directories to become available
# before starting syncthing on boot.
[Unit]
After=remote-fs.target
上述英文注释表示:等待 NFS 主目录可用后再在开机时启动 Syncthing。对于开启 linger 的用户服务,无需这样配置;它们本来就会等待远程文件系统可用(如果存在)。
调试
如果问题跟踪系统要求你带特定环境变量启动 Syncthing,通常的设置方法在 systemd 下不会生效。systemd 将每项服务隔离,服务无法访问全局环境变量。解决办法是将变量添加到服务文件中。
编辑系统服务:
systemctl edit syncthing@myuser.service
编辑用户服务:
systemctl --user edit syncthing.service
这些命令会自动创建附加配置文件,你可以在里面定义或覆盖进一步的服务参数,例如 Environment=STTRACE=model。
来源:Starting Syncthing Automatically,Syncthing Authors。文档许可声明:CC BY 4.0。本页为中文翻译,命令与配置保留原文。原文 macOS 路径、旧命令形式与权限说明均按原文保留;实际使用应核对所安装版本随附的文件位置。



















暂无评论内容