Resilio Sync或者说BT Sync用起来还是挺简单的,只是如果觉得Resilio Sync可设置的太少,想要控制更多东西并且还想要开源或者免费的替代品的话,我觉得Syncthing应该是唯一的答案了,讲真我没太关注过BT Sync和Syncthing到底是哪个先出来的,反正我两者都很早就在用了,只不过BT Sync是用在本地,而Syncthing是用于我在服务器上的文件多节点同步(异地备份),为什么?因为Syncting的同步模式或者说文件保存模式挺多,可以单向同步,也能冗余备份等等,这个我在之后会展示。
所以我们先得装一下,安装渠道其实比较多,因为有很多社区的封装版本,我这边主要列举官方包以及部分社区包,其它的请自行访问官方下载 ——> 传送门
①Debian/Ubuntu
sudo apt-get install apt-transport-https curl -s https://syncthing.net/release-key.txt | sudo apt-key add - echo "deb https://apt.syncthing.net/ syncthing stable" | sudo tee /etc/apt/sources.list.d/syncthing.list sudo apt-get update sudo apt-get install syncthing
②Centos
wget https://github.com/syncthing/syncthing/releases/download/v0.14.28/syncthing-linux-amd64-v0.14.28.tar.gz tar xzf syncthing-linux-amd64-v0.14.28.tar.gz cd syncthing-linux-amd64-v0.14.28 cp syncthing /usr/bin/
需要注意的是,Centos7下请使用文件夹内etc文件夹中的linux-systemd或者linux-upstart作为启动脚本,Centos6我建议使用supervisor作为运行控制
安装Supervisor
yum install python-setuptools -y easy_install supervisor echo_supervisord_conf > /etc/supervisord.conf echo "supervisord" >> /etc/rc.local //开机启动supervisor
在/etc/supervisord.conf 最后添加如下内容,然后启动(运行supervisord)或者重启supervisor (supervisorctl reload)
[program:syncthing] command=/usr/bin/syncthing autostart=true autorestart=true user=root redirect_stderr=true stdout_logfile=/var/log/syncthing.log
需要注意的是,Syncthing第一次启动会生成/root/.config/syncthing/ 用于保存配置文件以及证书、密钥(包括https证书、密钥)
请修改/root/.config/syncthing/config.xml 中27行的如下内容,这是监听地址,默认为本地监听,我们要修改为公网监听
<address>127.0.0.1:8384</address> //修改为 <address>0.0.0.0:8384</address>
执行
supervisorctl restart syncthing
重启程序,稍等,现在我们可以访问http://你的IP:8384/ 来进入Syncthing的WebGUI界面,第一次会提示你设置密码
一般建议把https打开,虽然默认的是自签的证书(可以替换配置文件夹里的https.pem和https.key来实现更换https证书,更换完重启哦)
因为除了高级配置外几乎是全中文的,而且选项都有说明,所以不说太多了,就介绍下它的一小部分功能
通过修改文件夹类型可以配置为双向同步或者单向同步,而版本控制规则那就是很是复杂了
回收站版本控制:文件的删除和替换将导致旧版本被放入.stversions文件夹中的回收站(可控制清空回收站时间)
简易版本控制:文件的删除和替换将导致旧版本被备份到.stversions文件夹中,可设置最多备份多少次
阶段版本控制:比上一个多了指定备份文件夹以及额外指定多少时间后过期删除备份
外部版本控制:通过外部的Shell脚本进行复杂的判断(简直牛叉好不好)
对比BT Sync来说,Syncthing的可配置选项多了太多了,不过速度相比前者稍差以及稍微有点麻烦使得两者不相上下
文章评论
这个支持内网穿透吗?
@233 支持,但是穿透能力因为不存在服务器中转(它有辅助服务器来帮助节点之间互相寻找,但是数据不走服务器,是在节点之间直传的)所以还是有限的,在两方都没有公网IP的情况下可能有问题,还是得你自己试试。
@233 完全没问题,只要端口映射做好就行了,windows一般只要打开upnp就行,linux手动吧
速度感觉差好多。。和resilio sync比起来。一个1.8mb,这个只有300kb/s
@我 可以尝试修改配置,打开里面内置的kcp加速
@Senra 这个KCP是啥来着?求教
@loneagle KCP是个用于加速的协议,是把TCP包装到UDP里实现的,不过Syncthing的开发者决定这个效果不好,所以去掉了,如果你要使用请下载v0.14.44以及之前的版本
来一篇自建Syncthing中转服务器吧,第一次评论就提示:检测到重复评论,您似乎已经提交过这条评论了!
@今生唯梦 我这后台收到你两条评论,不知道是不是你手抖点多了……中转服务器啊,这个我前阵子看到别人提起过,我这几天研究下然后写
@今生唯梦 拖了这么久终于写好了(
其实是本地写好了懒得上传博主你好!最近想搞个人云,实在忍不了百度。看了你的自建云盘系列,彻底懵逼了。废了很大劲装好了nextcloud,一试感觉不是中意的。特留言请博主推荐下。有几点小要求,
1 硬件消耗尽可能小
2 图片功能稍微强一点,有图片预览,时间线,回收站等功能。
3 视频在线支持主流格式
4 支持nfs cifs,ftp等外挂储存协议
5好配置,好维护,稳定。
要是能找到百度云,小米云盘类似功能的就好了。是不是没有这样的?还是需要别的方案,比如群晖?
@3006kane 你这还真不算小要求了……
首先图片时间线做的人比较少,其次,主流格式除了mp4其他大部分不被浏览器直接支持,这代表着必须要转码,然后这个和你第一点必然冲突。
而目前大部分外挂存储都是云存储或者部分有ftp,nfs和cifs是在操作系统级别处理的比较多,因此除了第二个需求所有都和你第五点冲突……
百度云和小米云盘这种成熟的商业方案基本上不会开源的,群晖的话倒是能满足来着,不过价格方面就比较感人了。
大兄弟感谢分享,写的很全面
我有个问题想咨询一下,就是如果服务器是使用的阿里云的话,阿里云的安全组要打开哪些端口?
我在不同机器上装了这个软件,发现他会监听很多端口,而且都不固定
现在的问题是本地机无法连接阿里云上的机器,但是我使用其他的提供商的服务器,没有阿里云的安全组策略的服务器,都可以正常连接
我有发现他会固定监听一个 22000 端口,其他的端口都不固定,请问这个问题如何解决?感谢指点
└─[0] netstat -tunlatep | grep syncthing
tcp 156.255.*.182:58914 210.23.*.77:22067 21595/syncthing
tcp6 :::9095 :::* 21595/syncthing
tcp6 :::22000 :::* 21595/syncthing
tcp6 156.255.*.182:9095 119.96.*.190:14771 21595/syncthing
tcp6 156.255.*.182:9095 119.96.*.190:14069 21595/syncthing
tcp6 156.255.*.182:9095 119.96.*.190:14773 21595/syncthing
tcp6 156.255.*.182:22000 119.96.*.190:27731 21595/syncthing
tcp6 156.255.*.182:9095 119.96.*.190:14072 21595/syncthing
tcp6 156.255.*.182:22000 27.17.*.74:17091 21595/syncthing
tcp6 156.255.*.182:9095 119.96.*.190:14772 21595/syncthing
udp6 :::22000 :::* 21595/syncthing
博主熟悉syncthing的开发吗?我使用源码开发的时候遇到些小问题想请教
求助,我在同一个局域网下,(只走局域网流量,不走公网),电脑和两台安卓手机能连上,但是两台安卓手机之间连不上。(电脑能连手机,手机能连电脑,但两台手机之间连不上)
@lese 还是得看日志,怀疑手机带防火墙/AP开了隔离。