
本镜像基于 Syncthing 项目,集成中继服务器(strelaysrv)和发现服务器(stdiscosrv),提供 Syncthing 设备间的中继转发与节点发现功能。适用于搭建私有 Syncthing 中继网络,解决设备间直接连接困难问题,提升同步稳定性。
| 组件名 | 版本 | 支持架构 |
|---|---|---|
| strelaysrv | 2.0.10 | amd64; arm64v8; arm32v7 |
| stdiscosrv | 2.0.10 | amd64; arm64v8; arm32v7 |
| 镜像源 | 拉取命令 |
|---|---|
| DockerHub | docker pull johngong/syncthing-relay-discosrv:latest |
| GitHub Container Registry | docker pull ghcr.io/gshang2017/syncthing-relay-discosrv:latest |
快速启动(默认配置)
bashdocker run -d \ --name=syncthing-relay-discosrv \ -p 22067:22067 \ -p 22070:22070 \ -p 8443:8443 \ --restart unless-stopped \ johngong/syncthing-relay-discosrv:latest
自定义配置示例(持久化+速率限制)
bashdocker run -d \ --name=syncthing-relay-discosrv \ -p 22067:22067 \ -p 22070:22070 \ -p 8443:8443 \ -v /path/to/local/config:/config \ # 持久化配置、证书与数据库 -e UID=1024 \ -e GID=1024 \ -e GLOBAL_RATE=200000000 \ # 全局速率限制 200MB/s -e PER_SESSION_RATE=20000000 \ # 每会话速率限制 20MB/s --restart unless-stopped \ johngong/syncthing-relay-discosrv:latest
卷配置(可选)
| 本地文件夹 | 容器路径 | 说明 |
|---|---|---|
/volume1/docker/syncthing-config | /config | 持久化配置目录,包含证书(/config/certs)和数据库(/config/discosrvdb),避免重装后 Device ID 变更 |
端口配置
| 本地端口 | 容器端口 | 说明 |
|---|---|---|
| 22067 | 22067 | 中继服务器协议监听端口 |
| 22070 | 22070 | 中继服务器状态监控端口 |
| 8443 | 8443 | 发现服务器监听端口 |
环境变量配置
在群晖 Docker 界面「环境」选项卡中添加以下变量:
| 变量名 | 值示例 | 说明 |
|---|---|---|
| UID | 1000 | 运行用户 UID,默认 1000 |
| GID | 1000 | 运行用户 GID,默认 1000 |
| ENABLE_STDISCOSRV | true | 是否启用发现服务器(true/false),默认 true |
| ENABLE_STRELAYSRV | true | 是否启用中继服务器(true/false),默认 true |
| GLOBAL_RATE | *** | 全局速率限制(bytes/s),默认 ***(100MB/s) |
| PER_SESSION_RATE | *** | 每会话速率限制(bytes/s),默认 ***(10MB/s) |
| MESSAGE_TIMEOUT | 1m30s | 消息超时时间,默认 1m30s |
| NATWORK_TIMEOUT | 3m0s | 客户端-中继服务器操作超时时间,默认 3m0s |
| PING_INTERVAL | 1m30s | 心跳包发送间隔,默认 1m30s |
| PROVIDED_BY | "My Private Relay" | 中继提供者标识,默认 "strelaysrv" |
| 参数形式 | 说明 |
|---|---|
--name=syncthing-relay-discosrv | 容器名称,建议保持默认以便识别 |
-restart unless-stopped | 容器重启策略,确保服务持续运行 |
| 端口映射 | 说明 |
|---|---|
-p 22067:22067 | 中继服务器核心端口,用于设备间中继数据传输 |
-p 22070:22070 | 中继服务器状态端口,可通过 http://<IP>:22070/status 查看中继状态 |
-p 8443:8443 | 发现服务器端口,用于设备节点发现和地址解析 |
| 挂载形式 | 说明 |
|---|---|
-v /local/config:/config | 持久化配置目录,推荐设置。包含: - 证书(/config/certs):服务器 TLS 证书,决定 Device ID - 数据库(/config/discosrvdb):发现服务器节点数据 |
| 变量名 | 类型/取值范围 | 默认值 | 说明 |
|---|---|---|---|
| UID | 整数 | 1000 | 运行用户 UID,需与宿主机用户权限匹配 |
| GID | 整数 | 1000 | 运行用户 GID,需与宿主机用户权限匹配 |
| ENABLE_STDISCOSRV | true/false | true | 是否启用 stdiscosrv(发现服务器) |
| ENABLE_STRELAYSRV | true/false | true | 是否启用 strelaysrv(中继服务器) |
| GLOBAL_RATE | 整数(bytes/s) | *** | 全局中继数据传输速率限制,0 表示无限制 |
| PER_SESSION_RATE | 整数(bytes/s) | *** | 单个设备会话的速率限制,0 表示无限制 |
| MESSAGE_TIMEOUT | 时间字符串(如 1m30s) | 1m30s | 中继消息等待超时时间 |
| NATWORK_TIMEOUT | 时间字符串(如 3m0s) | 3m0s | 客户端与中继服务器的连接超时时间 |
| PING_INTERVAL | 时间字符串(如 1m30s) | 1m30s | 中继服务器向客户端发送心跳包的间隔 |
| PROVIDED_BY | 字符串 | "strelaysrv" | 中继服务器标识,可自定义(如组织名称),用于客户端识别 |
| POOLS | 字符串(逗号分隔URL) | 空 | 中继服务器池地址列表,留空则为私有中继,不接入公共池 |
| DISCO_OTHER_OPTION | 字符串 | 空 | 发现服务器额外参数,如 -debug(调试模式)、-metrics(启用指标),详见 Syncthing stdiscosrv 文档 |
| RELAY_OTHER_OPTION | 字符串 | 空 | 中继服务器额外参数,如 -ext-address(指定外部地址)、-protocol(指定传输协议),详见 Syncthing strelaysrv 文档 |
bash# 启动容器 docker start syncthing-relay-discosrv # 停止容器 docker stop syncthing-relay-discosrv # 重启容器 docker restart syncthing-relay-discosrv # 查看容器日志(获取 Device ID 等关键信息) docker logs syncthing-relay-discosrv # 删除容器(需先停止) docker rm syncthing-relay-discosrv # 删除镜像 docker rmi johngong/syncthing-relay-discosrv:latest
输出示例:bashdocker logs syncthing-relay-discosrv | grep "Device ID"
Device ID: ITZRNXE-YNROGBZ-HXTH5P7-VK5NYE5-QHRQGE2-7JQ6VNJ-KZUEDIU-5PPR5AM1. 全局连接配置
进入 Syncthing 客户端界面 → 操作 → 设置 → 连接:
协议监听地址:添加中继服务器地址
格式:relay://<服务器IP或域名>:22067/?id=<Device ID>
示例:relay://syncthing-relay.example.com:22067/?id=ITZRNXE-YNROGBZ-HXTH5P7-VK5NYE5-QHRQGE2-7JQ6VNJ-KZUEDIU-5PPR5AM
全球发现服务器:添加私有发现服务器(若启用)
格式:https://<服务器IP或域名>:8443/?id=<Device ID>
示例:https://syncthing-disco.example.com:8443/?id=ITZRNXE-YNROGBZ-HXTH5P7-VK5NYE5-QHRQGE2-7JQ6VNJ-KZUEDIU-5PPR5AM
连接选项:勾选「启用中继」,按需启用「本地发现」(局域网环境)。
2. 远程设备高级配置
针对特定远程设备,进入 远程设备 → 选择设备 → 编辑 → 高级 → 地址列表:
relay://syncthing-relay.example.com:22067/?id=ITZRNXE-YNROGBZ-HXTH5P7-VK5NYE5-QHRQGE2-7JQ6VNJ-KZUEDIU-5PPR5AM您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务