Syncthing 代理配置

2023-03-19 · 647 chars · 4 min read

Syncthing 是个非常好用的免费同步 & 备份工具,之前在我的常用工具里简单介绍过了。使用方法非常简单,网上有大把大把的教程,按着教程自己动手玩一玩,很快就能掌握了。

今天主要讲一下怎么给 Syncthing 配置代理,通过代理服务器完成同步。这里以 macOS 为例,其他系统也是类似的思路。

Note

额外说明两点:

  1. 配置代理是不影响通过「局域网 TCP」等方式连接的
  2. 它主要影响的是「外网」,比如通过「中继服务器」。所以相关的 Syncthing 客户端,请确保 Relays Enabled 是 true

调整安装方式#

macOS 上最常用的应该就是 syncthing-macos 了,但是,目前 GUI 工具都是没办法设置代理的,所以我们第一步要做的就是「调整安装方式」。

有两种选择:

  • 使用 homebrew
  • 直接在 github 下载

直接下载其实稍微麻烦一些,在 mac 上比较方便的还是实用 homebrew

brew install syncthing

这样就算安装好了,直接执行 syncthing 就可以启动了。

配置开机启动和代理#

接来下配置开机启动,虽然 homebrew 可以轻松做到开机启动,但是,Syncthing 必须在启动时,通过环境变量开启代理。所以,我们要自定义开机启动命令。

进入 /Users/<User Name>/Library/LaunchAgents 目录,新建文件 syncthing.plist,内容如下:

这里我的用户名是 keenwon,你记得替换为你自己的

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>Label</key>
    <string>net.syncthing.syncthing</string>

    <key>ProgramArguments</key>
    <array>
      <string>/usr/local/bin/syncthing</string>
    </array>

    <key>EnvironmentVariables</key>
    <dict>
      <key>HOME</key>
      <string>/Users/keenwon</string>
      <key>STNORESTART</key>
      <string>1</string>
      <key>all_proxy</key>
      <string>socks5://127.0.0.1:1234</string>
    </dict>

    <key>KeepAlive</key>
    <true/>

    <key>LowPriorityIO</key>
    <true/>

    <key>ProcessType</key>
    <string>Background</string>

    <key>StandardOutPath</key>
    <string>/Users/keenwon/Library/Logs/Syncthing.log</string>

    <key>StandardErrorPath</key>
    <string>/Users/keenwon/Library/Logs/Syncthing-Errors.log</string>
  </dict>
</plist>

格式就是这么个格式。里面的 Syncthing 路径,Syncthing.log 等都是可以改的。代理通过环境变量 EnvironmentVariables - all_proxy 配置,我这里写的是 socks5://127.0.0.1:1234,同理,改为你的代理地址。

plist 文件的语法,可以看看这篇文章

保存之后,就添加好开机启动项了:

重启,确保 syncthing 可以正常启动,然后打开日志文件,文件位置在上面的 xml 配置里:

2023/03/10 22:56:11 INFO: Proxy settings detected
  2 [start] 2023/03/10 22:56:17 INFO: syncthing v1.23.2 "Fermium Flea" (go1.20.2 darwin-amd64) brew@Ventura 2023-02-27 03:45:16 UTC [noupgrade]
  3 [RFVYT] 2023/03/10 22:56:17 INFO: My ID: xxxxxxxx
  4 [RFVYT] 2023/03/10 22:56:17 INFO: Proxy settings detected
  5 [RFVYT] 2023/03/10 22:56:18 INFO: Single thread SHA256 performance is 81 MB/s using minio/sha256-simd (80 MB/s using crypto/sha256).
  6 [RFVYT] 2023/03/10 22:56:19 INFO: Hashing performance is 79.12 MB/s

看到 Proxy settings detected 就说明代理生效了。

赞赏

微信