简介

Syncthing是一个开源免费的数据同步神器,被称为 Resilio Sync 的替代品,支持AndroidLinuxWindowsMac OS X等系统,可以使我们在2台任何系统任何设备之间,实现文件实时同步,很强大。而且数据很安全,不会存储在你的设备以外的其他地方。所有通信都使用TLS进行保护。所使用的加密包括完美的前向保密,以防止窃听者获得对您的数据的访问权限。很适合我们用来搭建私有同步网盘。

syncthing.png

安装

本文只做Linux VPS服务器与Windows电脑之间的同步安装及演示操作。Syncthing官网:点击进入,软件自行下载最新版本即可。

1、VPS安装Syncthing
安装Syncthing

#目前最新版v1.2.0,日后自行修改版本号
wget https://github.com/syncthing/syncthing/releases/download/v1.2.0/syncthing-linux-amd64-v1.2.0.tar.gz
tar xzvf syncthing-linux-amd64-v1.2.0.tar.gz
cp syncthing-linux-amd64-v1.2.0/syncthing /usr/local/bin

开放端口

Syncthing 默认监听以下几个端口

22000 (TCP)
8384 (TCP)
21027 (UDP)
44647 (UDP)
37269 (UDP)

这里我是个人使用,所以只开放 22000 (TCP) 与 8384 (TCP)

端口说明:

8384 是Web访问控制端口
22000 是节点访问端口

开启Syncthing

syncthing

第一次启动会生成配置,然后给的内网地址我们是进不去的,这时候需要修改成外网地址才行(没有外网地址? -> LanProxy端口映射了解一下),先使用Ctrl+C退出。然后编辑/root/.config/syncthing/config.xml文件,将127.0.0.1:8384改成0.0.0.0:8384即可,可以直接使用命令:

sed -i 's/127.0.0.1/0.0.0.0/g' '/root/.config/syncthing/config.xml'

再次启动Syncthing

syncthing

然后在浏览器访问http://IP:8384,就可以进入Syncthing界面,如果打不开请自行开放8384端口。

# 例如放行8384端口,防火墙设置
/sbin/iptables -I INPUT -p tcp --dport 8384 -j ACCEPT
/etc/init.d/iptables save
service iptables restart 

1.jpg

然后我们点设置,填好管理用户、密码及其它参数再重启Syncthing即可。

2.jpg

如果不需要p2p进行分享,也就是不需要进行中转,那么可以将启用 NAT遍历全球发现 进行关闭。但是在服务端与客户端之间,有一方的ip必须是公网。

syncthing_add.jpg

2、Windows安装Syncthing

Win系统安装Syncthing是非常简单的,直接从官方网站下载对应版本的Syncthing程序,解压打开syncthing.exe,然后会弹出一个窗口,浏览器再打开http://127.0.0.1:8384就可以进入并使用Syncthing了,默认文件夹路径为C:\Users\Administrator\Sync

使用

首先打开其中一个设备的Syncthing界面,并点击右上角操作-显示ID获取设备ID。再到另一个设备的Syncthing界面,点击右下角添加远程设备,输入需要同步的设备ID和共享的文件夹。看个人需求决定是否要进行高级配置(选填),如果是私人用,不想加入公共的节点,那么就点击高级 找到 地址列表 将 dynamic 填写为 tcp://服务器ip:22000(防火墙记得放行22000端口)

3.jpg

这时候另一台设备会弹出一个窗口,点击添加设备即可。

4.jpg

此时设备添加完成,就可以开始同步文件夹了,也可以在其中一台设备新建/添加其它文件夹

5-1.jpg

进行必要的文件共享设置

5-2.jpg

然后同样的,另一台设备也会弹出一个窗口,点击同意添加即可。

6.jpg

最后等待片刻,所添加的文件夹都会自动同步完成。

7.jpg

如果希望Syncthing在后台运行可以使用nohup命令来实现:

nohup syncthing &> /dev/null &

更多功能请自行摸索,注意设备删掉Syncthing后,同步的文件夹依然存在。

开机启动

此方法适用于任何发行版(Arch,Debian,Linux Mint,Ubuntu,openSUSE),关于windows和macOS系统设置开机启动的方法,详见 ->官方文档

Debian/Ubuntu
设置系统服务创建开机启动,此方法适用于 Debian9+/Ubuntu16.04+

#从源包内复制
cp syncthing-linux-amd64-v1.2.0/etc/linux-systemd/system/[email protected] /etc/systemd/system/

#设置以root用户执行,如有需要请自行修改,前提是必须是系统用户
mv /etc/systemd/system/[email protected] /etc/systemd/system/[email protected]

使用命令:

#添加开机启动
systemctl enable [email protected]
#启动syncthing服务
systemctl start [email protected]

CentOS6/7

需要注意的是,Centos7下请使用原syncthing包内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/local/bin/syncthing
autostart=true
autorestart=true
user=root
redirect_stderr=true
stdout_logfile=/var/log/syncthing.log

相关推荐

  1. Duplicacy CLI 快速入门指南
  2. Duplicity:企业级的增量备份与数据恢复工具
  3. Mutagen+Rclone方案实践:Windows和Linux/GDrive实时文件单向/双向同步
  4. 一款快速,跨平台,多向的文件实时同步工具:Mutagen
  5. CentOS 7 安装 Lsyncd 实现文件实时同步备份
  6. 使用MinIO Client客户端实时数据同步备份文件
文章作者:喵斯基部落
原文地址:https://www.moewah.com/archives/1127.html
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。非商业转载及引用请注明出处(作者、原文链接),商业转载请联系作者获得授权。