Total Pageviews

Monday, 12 June 2017

免费开源文件同步工具-Syncthing

Syncthing与BitTorrent/Resilio Sync的异同:

两者是不同的和不相关的。Syncthing和BitTorrent/Resilio Sync同步完成一些同样的事情,即两台或多台计算机之间同步文件。

BitTorrent Sync(已经更名Resilio Sync),是一个专有的对等网络文件同步支持Windows,Mac,Linux和Android版,iOS版的Windows Phone,亚马逊Kindle Fire和BSD的工具。

Syncthing是一个开源的文件同步工具。

Syncthing采用开源协议,并同样地在使用中的安全机制是源代码中可见。

BitTorrent Sync使用一个未公开的,封闭未知的安全性协议。

转自:Syncthing FAQ

特点:
    不需要将文件上传到中转服务器。
    TLS加密传送。
    支持版本控制。


支持系统

目前支持:Windows / Linux / Mac OS X / Android /FreeBSD / Solaris / Dragonfly BSD / NetBSD / OpenBSD

貌似没有IOS APP


下载地址

https://github.com/syncthing/syncthing/releases/tag/v0.14.14

按照自己的系统选择下载。


详细说明

我们主要说明一下 Windows 下的使用。


Windows

1). 安装

windows下使用非常简单,只要下载windows文件包,直接运行 syncthing.exe  即可。

不需要安装程序。

直接访问  http://127.0.0.1:8384/  即可。

如果防火墙拦截,请点击允许。





2). 主界面

界面支持多国语言选择。

帮助只有英文的。



3). 操作 – 设置

含上行,下行限制

用户名密码修改

API KEY 等信息



4). 操作 – 高级配置

这里谨慎操作,一般保持默认就好。



5). 操作 – 显示ID

此ID用于在其他电脑同步使用。是唯一标识。无法修改。



6). 添加同步目录

这里主要说明一下版本控制。

    回收站式版本控制:当文件被 Syncthing 替换或删时,将会被移动到 .stversions 文件夹。
    简易版本控制:当某个文件在其他设备被替换或删除时,本设备将会在 .stversions 文件夹中保留该文件的备份,并在文件名中加入时间戳信息。
    阶段版本控制:当某个文件在其他设备被替换或删除时,本设备将会在 .stversions 文件夹中保留该文件的备份,并在文件名中加入时间戳信息。 超过最长保留时间,或者不满足条件的历史版本,将会被删除。
    外部版本控制:使用外部命令接管版本控制。该命令必须自行从同步文件夹中删除该文件。



请选择一个适合自己的。



6). 添加远程设备

我们在另一台电脑 B 上,添加远程设备。

电脑A 会提示连接,直接添加设备即可。

可以给电脑B共享我们的目录。



Linux

我们以 CentOS 6.8 x64  为例子演示。



1). RMP安装(推荐)

来源于:https://github.com/mlazarov/syncthing-centos
yum install https://github.com/mlazarov/syncthing-centos/releases/download/v0.14.7/syncthing-0.14.7-0.el7.centos.x86_64.rpm -y


2). RMP编译安装
cd ~
git clone https://github.com/mlazarov/syncthing-centos.git rpmbuild/
mkdir -p ~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}
echo '%_topdir %(echo $HOME)/rpmbuild' > ~/.rpmmacros
cd ~/rpmbuild/SOURCES/
wget https://github.com/syncthing/syncthing/releases/download/v0.14.7/syncthing-linux-amd64-v0.14.7.tar.gz
cd ~/rpmbuild/SPECS/
rpmbuild -bb syncthing.spec



3). 检查是否成功
syncthing --version

syncthing v0.14.14 “Dysprosium Dragonfly” (go1.7.4 linux-amd64) jenkins@build.syncthing.net 2016-12-13 10:29:40 UTC



3). 防火墙设置

默认使用8384端口,请开放此端口
iptables -I INPUT -p tcp --dport 8384 -j ACCEPT



4). 修改配置文件

不懂vi 命令,请自行百度操作
vi ~/.config/syncthing/config.xml

将 127.0.0.1:8384  修改成 0.0.0.0:8384

此处修改为了 外网能访问。



5). 启动
syncthing

然后直接访问 http://ip:8384 即可。

操作就和Windows差不多一样的。



6). 后台运行

也可以借助 screen
nohup syncthing


7). 开机启动
echo 'nohup syncthing >/dev/null 2>&1 &' >> /etc/rc.local



8). 停止运行
eval $(ps -ef | grep syncthing | grep -v grep | awk '{print "kill "$2}')


参考文献:
https://docs.syncthing.net
官方网站:https://syncthing.net/
开源地址:https://github.com/syncthing/syncthing
-------------

Mac 上使用 Syncthing 同步文档

最早的时候个人同步我使用的是 BTsync ,但这家伙后来改版后有诸多不便,于是转投了我一直看好的另一个同步工具 —- Syncthing 。开源且多平台 ( iOS 上不行,不过 iOS 除了照片也没什么可以同步的了 ),我最喜欢的就是可以自建一个 relay 。详细使用上比较简单,我今天只记录一下我在 Mac 上的操作。
操作需要使用 iTerm 或者 Terminal 请自备。

使用 Brew Cask 安装

其实你也可以自己下载安装包 (https://github.com/syncthing/syncthing/releases),解压后把“ syncthing ” 这个可执行文件放到 /usr/local/bin 。( 我建议你养成好习惯,所有自己下载安装的终端都丢这里 )
如果你有了 brew 则可以
brew tap caskroom/cask
brew tap caskroom/versions
brew cask install syncthing 

会看到下图,

然后进入上图中的 open /opt/homebrew-cask/Caskroom/syncthing/0.12.22 然后进入安装文件夹(如果你有多个版本,则进入最高的那个就可以了),找到 syncthing.plist ,通常位置安装目录的 etc/macosx-launchd

修改配置文件

在 Finder 里,不要选中任何文件的情况下,点击如下图标,拷贝为路径,如果你的系统没有这个选项,请试着按下 Option 键。

接着在 iTerm 或者 Terminal 里输入
cd $(pbpaste)
sed -i .bak "s/USERNAME/$(whoami)/g" ./syncthing.plist
sed -i .bak "s/\Users\/$(whoami)\/bin/usr\/local\/bin/g" ./syncthing.plist
sed -n '/Users/p' ./syncthing.plist
sed -n '/local/p' ./syncthing.plist
你应该会看到输出了带你的用户名的几行以及带有 syncthing的一行:
        <string>/Users/bao3</string>
    <string>/Users/bao3/Library/Logs/Syncthing.log</string>
    <string>/Users/bao3/Library/Logs/Syncthing-Errors.log</string>
        <string>/usr/local/bin/syncthing</string>

加载启动文件

比较简单,我是直接 copy 过去:
 cp syncthing.plist  ~/Library/LaunchAgents/syncthing.plist
  launchctl load ~/Library/LaunchAgents/syncthing.plist 
随后会打开网页,让你登录 http://127.0.0.1:8384

No comments:

Post a Comment

Note: only a member of this blog may post a comment.