新闻详情

新闻详情

首页 / 资讯中心 / 详情

Syncthing 中继实战:strelaysrv 私有部署、连通性验证与排错清单

发布时间:2026/10/2 8:24:03来源:尧图网络
Syncthing 中继实战:strelaysrv 私有部署、连通性验证与排错清单
Syncthing 中继实战strelaysrv 私有部署、连通性验证与排错清单【免费下载链接】syncthingOpen Source Continuous File Synchronization项目地址: https://gitcode.com/GitHub_Trending/sy/syncthing两台设备都在 NAT 后面UDP hole-punch 打不通、TCP 直连超时Syncthing 的同步卡死在等待连接。这时就需要一台 strelaysrvSyncthing 中继服务器两端各自连到同一台服务器由它完成字节级双向转发。以下流程按做选择 → 放行端口 → 启动拿地址 → 客户端接入 → 验证连通 → 长跑监控展开全程可照做。公共池还是私有中继先做选择再动手动手前先定一个策略它决定你后面所有参数。strelaysrv 的默认池地址是公共中继池 relays.syncthing.net/endpoint不传任何参数启动时它会向该池 POST 自己的 relay:// 地址完成注册见 pool.go并打印醒目横幅!! Joining default relay pools, this relay will be available for public use. !! !! Use the -pools command line option to make the relay private. !!警告默认入池意味着你的带宽将持续被陌生人占用这是默认行为而非可选项。只想服务自己的设备时启动参数务必带上-pools。决策维度公共池接入私有中继暴露面对全球 Syncthing 用户开放仅自己填入 URI 的设备可连带宽成本持续为公众转发长期消耗只服务内部流量接入方式自动注册到池客户端可发现手动把 relay:// 填进客户端适合场景愿意回馈社区的公网机器团队、家庭、跨内网同步两个私有化补充其一-token...会自动禁用加入任何池main.go 中直接把poolAddrs置空并在收到令牌不匹配的JoinRelayRequest时回ResponseWrongToken后断开连接见 listener.go等于给中继加了门禁其二客户端版本是硬门槛——只有 Syncthing v0.12 及以上才支持中继功能旧版本填了也不工作。放行 22067 端口并启动 strelaysrv端口与防火墙两个 TCP 端口一个必需一个可选端口作用必需性22067中继主协议客户端经它加入与收发数据必需须公网可达22070/status端点供池服务器采集指标可选私有部署可不放行UFW 环境下可直接套用仓库自带的规则模板strelaysrv[strelaysrv] titleSyncthing relay server descriptionProxies traffic of syncthing client behind firewalls ports22067/tcp [strelaysrv-metrics] titleSyncthing relay metrics descriptionProvides metrics about the syncthing relay server ports22070/tcp处于 NAT 之后时在路由器上转发 22067以及需要暴露的 22070即可。另一种免手工转发的做法是加-nat让 strelaysrv 通过 UPnP/NAT-PMP 自动申请映射-nat-lease默认 60 分钟、-nat-renewal30 分钟、-nat-timeout10 秒分别控制租约时长、续约频率与发现超时——前提是路由器支持 UPnP。启动命令与 relay:// 地址获取# 私有部署的最小启动命令 ./strelaysrv -pools # 排查问题时可加 -debug 输出连接与消息级日志首次启动若当前目录-keys指定目录没有cert.pem/key.pem会自动生成一对有效期 20 年的自签证书随后打印URI:一行。由于默认监听:22067服务器不知道自己的公网 IPURI 的主机部分是空的URI: relay://:22067/?idEZQOIDM-6DDD4ZI-DJ65NSM-4OQWRAT-EIKSMJO-OZ552BO-WQZEGYY-STS5RQMpingInterval1m0snetworkTimeout2m0ssessionLimitBps0globalLimitBps0statusAddr:22070判断依据日志出现URI:且无Failed to generate X509 key pair即启动成功。把主机部分补成公网 IP 或域名后得到最终地址例如relay://192.0.2.1:22067/?idEZQOIDM-...statusAddr:22070。URI 各参数含义id中继证书对应的设备 ID客户端据此做证书固定pinningpingInterval/networkTimeout心跳间隔与网络超时对应-ping-interval/-network-timeoutsessionLimitBps/globalLimitBps会话级与全局限速为 0 时不写入statusAddr/status监听地址。完整形式建议原样填写——它让客户端能核对证书、获知限速配置不想要这些参数时简化成relay://192.0.2.1:22067也合法代价是放弃证书固定。特殊场景监听 443 之外的端口并通过防火墙从 443 转发时用-ext-address通告对外地址例如监听 8443 但让客户端以 443 接入。其余参数超时、限速、监听协议等执行strelaysrv -help自查即可部署决策只依赖上表提到的这几个。客户端侧写入同步协议监听地址打开 Syncthing 图形界面的 操作 → 设置在同步协议监听地址Sync Protocol Listen Address字段末尾追加完整 relay URI以逗号与其他监听地址并列保存。客户端在直连失败时会自动尝试该中继。testutil 双终端连通验证上线后先验证转发通路再谈接入。testutilmain.go是仓库自带的连通性工具提供三种模式-join加入中继等待邀请、-connect设备ID向指定设备发起连接、-test单进程自检。双终端验证需要两套 X509 证书各含key.pem与cert.pem分别放在certs/client/与certs/server/# 终端 A加入中继并等待对方 ./testutil -relayrelay://192.0.2.1:22067 -keyscerts/client/ -join # 终端 B用 A 打印的设备 ID 发起连接 ./testutil -relayrelay://192.0.2.1:22067 -keyscerts/server/ \ -connectBG2C5ZA-W7XPFDO-LH222Z6-65F3HJX-ADFTGRT-3SBFIGM-KV26O2Q-E5RMRQ2✅ 成功标志两端都打印Joined ...并进入交互提示符在任一端输入的文字经中继出现在另一端-test模式则直接输出OK失败为FAIL: 错误适合写进巡检脚本做一键自检。systemd 托管与 /status 指标速读systemd 单元要点仓库自带单元文件strelaysrv.service长期运行建议直接套用关键段[Service] WorkingDirectory/var/lib/syncthing-relaysrv EnvironmentFile/etc/default/syncthing-relaysrv ExecStart/usr/bin/strelaysrv -nat${NAT} $RELAYSRV_OPTS Usersyncthing-relaysrv ProtectSystemstrict ReadWritePaths/var/lib/syncthing-relaysrv PrivateTmptrue MemoryDenyWriteExecutetrue-pools、-status-srv、-token等自定义参数写进/etc/default/syncthing-relaysrv的RELAYSRV_OPTS即可改参数只需改环境文件后systemctl restart。加固项里ProtectSystemstrict 白名单ReadWritePaths保证只有证书目录可写PrivateTmp与MemoryDenyWriteExecute进一步缩小攻击面。另外一句话带过过载保护启动时 strelaysrv 取文件描述符上限的 80% 作为连接数上限每分钟检查一次超限后对新连接回RelayFull并清退空闲连接回落后自动恢复无需人工干预。/status 端点关键字段/status默认挂在:22070返回 JSON私有部署不需要它时加-status-srv整体关闭该端口也就不用放行了。挑运维最相关的几个字段{ bytesProxied: 1048576, kbps10s1m5m15m30m60m: [0, 12, 30, 28, 25, 20], numActiveSessions: 2, numConnections: 3, numProxies: 2 }bytesProxied累计代理字节数长期不增长说明没有流量真正走通kbps10s1m5m15m30m60m10 秒 / 1 分 / 5 分 / 15 分 / 30 分 / 60 分六个窗口的吞吐kbps每 10 秒采样一次、保留 360 个点适合接进你的监控采集numActiveSessions正在转发的会话数numConnections/numProxies已建立的 TLS 控制连接数 / 活跃代理通道数前者大于后者属正常加入后等待对端的连接不计入代理options启动参数回显远端核对配置时最省事。限速参数的令牌桶原理底层用golang.org/x/time/rate实现burst 取限速值两倍-per-session-rate是每会话一个桶-global-rate是整台服务器一个桶好比给每部电梯限重的同时再给整栋楼限载两个桶都设时按更严格的那个等待。单位为字节/秒0 表示不限。排错速查现象、原因、动作现象原因动作日志反复under load (rate limiting)池端 HTTP 429 限流自动一分钟重试属公共池侧行为等待即可私有部署不应出现日志IP address not matching external address出口 IP 与通告地址不一致多为 NAT 映射未生效核对端口转发或改用-nat/ 手工映射后重启客户端始终连不上22067 未公网可达或防火墙拦截外网nc -vz 公网IP 22067再对照 UFW 规则与路由器转发连接被拒且日志出现 invalid token客户端 URI 缺少令牌或令牌不匹配核对-token与客户端配置一致不想暴露 /status默认开启:22070加-status-srv后重启把-pools和-status-srv按定位设好、22067 真正放行、relay URI 完整填入客户端一台可用的 Syncthing 中继就上线了异常时先-debug看日志再对照/status指标定位。延伸阅读man 手册 strelaysrv.1、中继协议与客户端库 lib/relay、公共发现服务 stdiscosrv 说明。【免费下载链接】syncthingOpen Source Continuous File Synchronization项目地址: https://gitcode.com/GitHub_Trending/sy/syncthing创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

出口全球的猫原代细胞!云克隆,独一无二的选择 2026/10/2 18:08:54

出口全球的猫原代细胞!云克隆,独一无二的选择

在生命科学研究不断向纵深发展的今天,原代细胞作为一种更接近体内真实生理状态的实验模型,正受到越来越多科研工作者的青睐。尤其是在比较医学、疾病模型构建、炎症机制研究、组织损伤修复以及再生医学等领域,高质量的原代细胞已经成为不可或…

阅读更多 →
Epay纵横支付:游戏直播场景的后端通道调度中台 2026/10/2 18:08:54

Epay纵横支付:游戏直播场景的后端通道调度中台

简介:这是一套面向站长与中小型支付系统开发者的全通道游戏及直播平台支付源码,支持抖音、虎牙、快手、YY等主流直播平台QB充值,以及DNF等热门游戏点券支付,覆盖几十种支付通道,解决第三方支付接入复杂、通道分散、调试…

阅读更多 →
网络安全知识题库备考指南:判断题雷区与高频考点解析 2026/10/2 18:08:54

网络安全知识题库备考指南:判断题雷区与高频考点解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
后见之明经验回放(HER):破解稀疏奖励难题的强化学习利器 2026/10/2 18:08:54

后见之明经验回放(HER):破解稀疏奖励难题的强化学习利器

1. 项目概述:从"失败经验"里挖掘训练价值的强化学习技术第一次听到"hindsight"这个词不是在哲学课上,而是在一次 reinforcement learning(强化学习)项目汇报里。当时我们团队正在做一个机械臂抓取项目&#x…

阅读更多 →
ARMxy模块化工业控制器替代PLC+网关+工控机实战解析 2026/10/2 18:08:53

ARMxy模块化工业控制器替代PLC+网关+工控机实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
模型优化器实战:剪枝、量化与算子融合的工程化落地 2026/10/2 18:08:47

模型优化器实战:剪枝、量化与算子融合的工程化落地

1. 模型优化器到底在优化什么第一次看到“Model-Optimizer”这个词,很多人会下意识觉得它就是一个调参工具,或者是一个自动搜超参的脚本。我刚开始接触的时候也这么想,后来踩了几次坑才明白,模型优化器真正做的事情,是…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉