实时同步网盘,其实可以选择也挺多的,OneDrive、Google Drive、Dropbox、Box.com、iCloud等都是支持自动同步备份的,只可惜这些网盘很多都是打不开的。国内的坚果云在同步这一块做得不错,但是免费的额度太少了,不能满足大量同步的需要。
本篇文章要分享的开源免费跨平台的文件同步工具Syncthing
,可以实现实时同步备份搭建个人同步网盘的功能,试用了一下发现Syncthing完全可以替代市面上这些同步网盘。Syncthing可以运行在Windows
、Linux
、MacOS
等全平台上,而且提供了安卓手机APP,功能非常强大。
GitHub 项目地址:https://github.com/syncthing/syncthing
文档地址:https://docs.syncthing.net/intro/getting-started.html
客户端下载:https://github.com/syncthing/syncthing/releases
开始安装
推荐使用普通用户安装,请往下看
本文只记录在ubuntu20.04上怎么搭建
更新一下组件
apt update -y && apt install -y curl && apt install -y socat && apt install wget -y
然后:
wget https://github.com/syncthing/syncthing/releases/download/v1.23.7/syncthing-linux-amd64-v1.23.7.tar.gz
tar -zxvf syncthing-linux-amd64-v1.23.7.tar.gz
cd syncthing-linux-amd64-v1.23.7
cp syncthing /usr/local/bin/
接着:
syncthing
使用CTRL + C
停止运行,修改文件
vim /root/.config/syncthing/config.xml
将127.0.0.1:8384
改成 0.0.0.0:8384
即可,保存退出
再输入syncthing
运行它。然后在浏览器输入服务器IP:8384
访问。
保持后台运行
对于VPS主机运行syncthing如果关闭终端,syncthing也会停止运行,可以将syncthing放在后台,命令如下:
nohup syncthing &
开机自动启动并保持运行
vim /usr/lib/systemd/system/syncthing@.service
加入以下内容
[Unit]
Description=Syncthing - Open Source Continuous File Synchronization for %I
Documentation=man:syncthing(1)
After=network.target
[Service]
User=%i
ExecStart=/usr/local/bin/syncthing -no-browser -no-restart -logflags=0
Restart=on-failure
SuccessExitStatus=3 4
RestartForceExitStatus=3 4
[Install]
WantedBy=multi-user.target
然后保存退出,之后就可以通过systemd进行启动和管理了,注意注意把命令里面的root
替换成自己的用户名:
启动syncthing
systemctl start syncthing@root.service
设置syncthing
开机自启
systemctl enable syncthing@root.service
查看syncthing运行状态
systemctl status syncthing@root.service
停止syncthing
systemctl stop syncthing@root.service
关闭syncthing开机自启
systemctl disable syncthing@root.service
或者可以用--user
参数来运行
1systemctl –root start syncthing
禁止IP访问
如果你已经成功绑定了域名到Syncthing
,想要禁止使用IP访问Syncthing,那么把配置文件作如下修改即可。
把端口设置成:0.0.0.0:8384,那么syncthing可以通过ip进行访问 。
把端口设置成:127.0.0.1:8384,那么只能通过域名访问,这个时候只有通过nginx反向代理才能访问到127.0.0.1这个本地地址。
更新 Syncthing
把 v1.23.7
改成最新版本即可
wget https://github.com/syncthing/syncthing/releases/download/v1.23.7/syncthing-linux-amd64-v1.23.7.tar.gz
tar -zxvf syncthing-linux-amd64-v1.23.7.tar.gz
cd syncthing-linux-amd64-v1.23.7
systemctl stop syncthing@root.service
cp syncthing /usr/local/bin/
systemctl start syncthing@root.service
使用普通用户安装
如果以 root 用户启动 Syncthing 会被提示不建议在 root 用户下运行,所以在正式使用之前,
建立新用户
adduser sync
设置密码 然后一路回车默认 最后 y
切换用户:
sudo su sync
进入主目录:
cd /home/sync
开始安装:
wget https://github.com/syncthing/syncthing/releases/download/v1.23.7/syncthing-linux-amd64-v1.23.7.tar.gz
tar -zxvf syncthing-linux-amd64-v1.23.7.tar.gz
cd syncthing-linux-amd64-v1.23.7
cp syncthing /home/sync/syncthing
运行一次 syncthing
,程序会将配置文件释放出来。
停止运行程序,先编辑配置文件。
vim /home/sync/.config/syncthing/config.xml
找到 <address>
这行,将 127.0.0.1
改为 0.0.0.0
,这样就可以从公网访问 Web UI 了,保存退出。
再次直接运行 syncthing
,然后在地址栏输入 http://w.x.y.z:8384/
进入 Syncthing 的 Web UI 管理界面,第一次访问时会提醒设置账号及密码,建议设置并重启 Syncthing。
这时候 syncthing
就已经可以开始正常使用了,如果使用了防火墙,在过程中对相应的规则进行放行。
那么将执行以下命令:
iptables -I INPUT -p tcp --dport 8384 -j ACCEPT
开机自启
切换回root
: sudo su root
vim /lib/systemd/system/syncthing.service
[Unit]
Description=Syncthing
Documentation=man:syncthing(1)
After=network.target
[Service]
User=sync
ExecStart=/home/sync/syncthing -no-browser -no-restart -logflags=0
Restart=on-failure
SuccessExitStatus=3 4
RestartForceExitStatus=3 4
# Hardening
ProtectSystem=full
PrivateTmp=true
SystemCallArchitectures=native
MemoryDenyWriteExecute=true
NoNewPrivileges=true
[Install]
WantedBy=multi-user.target
最后:
systemctl enable syncthing
systemctl start syncthing
Syncthing Tray 简单小巧的文件同步工具
点击下载: