https://github.com/gray0128/syncthing-sh
https://github.com/gray0128/syncthing-sh
Last synced: 13 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/gray0128/syncthing-sh
- Owner: gray0128
- Created: 2026-05-07T14:40:44.000Z (about 1 month ago)
- Default Branch: main
- Last Pushed: 2026-05-08T16:11:49.000Z (about 1 month ago)
- Last Synced: 2026-05-08T17:27:55.722Z (about 1 month ago)
- Language: Shell
- Size: 18.6 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# syncthing-sh
Ubuntu 20.04+ 一键部署 Syncthing 服务端脚本(`amd64` / `arm64`)。
默认部署:
- `strelaysrv`(私有中继,默认不加入公共池)
- `stdiscosrv`(私有发现服务)
可选部署:
- `syncthing` 核心服务(含 Web GUI,默认 **不部署**)
脚本特性:
- 交互式输入,尽量提供默认值
- 从 GitHub Release 拉取官方二进制
- 非 root 运行服务
- systemd 沙箱加固
- 自动升级关闭(`--no-upgrade` + `STNOUPGRADE=1`)
- 自动配置防火墙端口(检测到 `ufw` 时)
- 支持卸载(默认保留数据,可选完整删除)
## 快速开始
### 在线安装(推荐)
```bash
curl -fsSL https://raw.githubusercontent.com/gray0128/syncthing-sh/main/install.sh | sudo bash -s -- install
```
> 注意:URL 不要加反引号 `` `...` ``。
### 在线卸载
```bash
curl -fsSL https://raw.githubusercontent.com/gray0128/syncthing-sh/main/install.sh | sudo bash -s -- uninstall
```
### 在线查看客户端配置(完整监听地址 + 全局发现)
```bash
curl -fsSL https://raw.githubusercontent.com/gray0128/syncthing-sh/main/install.sh | sudo bash -s -- show-client-config
```
### 下载后执行(最稳妥)
```bash
curl -fsSLo install.sh https://raw.githubusercontent.com/gray0128/syncthing-sh/main/install.sh
sudo bash install.sh install
```
## 交互项说明
- 服务运行用户:要求是现有用户
- 中继端口:默认 `22067`
- 中继状态端口:默认 `22070`
- 发现服务端口:默认 `8443`
- Syncthing GUI 监听:默认 `0.0.0.0:8384`(仅在启用核心服务时生效)
- 中继 Token:默认自动生成并启用;输入 `none` 可禁用
- 是否部署 syncthing 核心服务:默认 `N`
- 防火墙来源 CIDR:默认 `any`
- 客户端访问域名(或IP):用于生成客户端配置串
- 全局发现是否保留 `default`:用于生成客户端配置串
## 强校验
`install` 结束后会强校验:
- relay/discovery 服务必须处于运行状态
- 实际生效 `ExecStart` 必须匹配交互输入的端口和 token
- relay/discovery 端口必须已监听
校验失败会直接报错退出,避免“看似成功但配置未生效”。
同时会打印当前监听端口和最近服务日志,便于快速定位问题。
## 防火墙端口
脚本会尝试放行:
- `22000/tcp`
- `22000/udp`
- `21027/udp`
- 中继端口(默认 `22067/tcp`)
- 中继状态端口(默认 `22070/tcp`)
- 发现服务端口(默认 `8443/tcp`)
- GUI 端口(仅启用核心服务且地址可解析端口时)
> 如果机器未安装 `ufw`,脚本会跳过防火墙配置并给出提示。
## 安全建议
- 生产环境请将防火墙来源从 `any` 改为可信网段
- 中继建议启用 `Token`,避免被任意客户端滥用
- 如启用 GUI,务必使用强密码并建议结合反向代理与 HTTPS
- 定期备份 `/var/lib/syncthing-server` 及相关配置目录
## 卸载策略
- 默认:仅移除服务和二进制,保留数据
- 可选:完整删除(包括脚本记录的服务端数据与状态目录)
## 免责声明
该脚本面向 Ubuntu 20.04+,并以官方发布资源为基础实现。请先在测试环境验证,再用于生产环境。