Syncthing
来建立属于本身的同步网盘。
按照惯例应该是要先介绍今天的主角的,下面是摘自Syncthing官网首页的一段介绍
Syncthing replaces proprietary sync and cloud services with something open, trustworthy and decentralized. Your data is your data alone and you deserve to choose where it is stored, if it is shared with some third party and how it's transmitted over the Internet.
一句话说完就是「咱们这个东西跟那些云服务不同,是很是安全可靠值得信赖的,你的数据由你来做主」。
既然要同步文件,固然要有至少两台机器了,我这里用的是一台笔记本电脑和一个CentOS的VPS,笔记本做为本地设备,VPS做为远程设备。这里要说明一点,用做文件同步的设备,能够是任何系统任何设备,并非限定于必需要有一台服务器,在局域网内的两台电脑均可以创建你本身的同步网盘(网盘这个说法其实并不许确)。除了两台机器外,还须要机器系统对应的Syncthing的二进制文件,具体能够从Syncthing首页的「Syncthing Core (CLI & Web UI)」里找到对应版本的下载地址。
如今须要的东西都已经准备好了:
先从官网下载好Windows 32位版(我本本对应的系统版本)的Syncthing,解压后能够看到以下文件结构
直接运行syncthing.exe
会弹出一个黑框框,里面会有一大堆信息,能够不用管
同时浏览器还会打开http://127.0.0.1:8384/
这个网址,能够看到默认已经建立了一个默认文件夹yct7k-lrebo
,所在路径为C:\Users\Administrator\Sync
本地的机器Windows版本就这么简单搞定啦!接下来给VPS也装上,用Xshell
连上服务器,而后用wget
命令下载Syncthing
的Linux 64位版,版本号对应官网上的最新版,请自行选择:
cd ~
wget https://github.com/syncthing/syncthing/releases/download/v0.14.5/syncthing-linux-amd64-v0.14.5.tar.gz
如今能够把下载到的文件解压,而后进入解压后的目录:
tar xzvf syncthing-linux-amd64-v0.14.5.tar.gz cd syncthing-linux-amd64-v0.14.5
有个可执行文件syncthing
,咱们要把它放到咱们的PATH
中,以便直接执行:
cp syncthing /usr/local/bin
以前下载和解压出来的文件能够所有删掉了:
cd ~ rm -rf syncthing*
到这里咱们在VPS上的Syncthing已经安装好了,但是直接运行的话,并不能经过外网访问到管理页面,由于Syncthing的管理页面默认是只有本机能够访问的,因此接下来还要进行一点修改,先运行Syncthing:
syncthing
随后就会看到有不少信息,和以前在Windows运行同样,看到相似如下内容的时候就能够按CTRL-C
退出程序了:
[OH4IP] 13:32:15 INFO: Completed initial scan (rw) of folder edatb-zzc5f [OH4IP] 13:32:15 INFO: Device OH4IPQD-QDCDAZB-YMMZE4F-BAK4BLQ-3EZLPTD-V73J37V-LTW44V6-YSM6JQ7 is "ruter.ga" at [dynamic] [OH4IP] 13:32:15 INFO: Loading HTTPS certificate: open /root/.config/syncthing/https-cert.pem: no such file or directory [OH4IP] 13:32:15 INFO: Creating new HTTPS certificate [OH4IP] 13:32:15 INFO: GUI and API listening on 127.0.0.1:8384 [OH4IP] 13:32:15 INFO: Access the GUI via the following URL: http://127.0.0.1:8384/ [OH4IP] 13:32:16 INFO: Detected 0 NAT devices
咱们第一次运行是为了让它建立配置文件,而后咱们再进行修改。用如下命令对配置文件进行编辑:
vim ~/.config/syncthing/config.xml
一瞬间是否是懵逼了?不要慌,先找到下面这几行:
<gui enabled="true" tls="false" debugging="false"> <address>127.0.0.1:8384</address> <apikey>2GeGJK9z6tXKP3nHJYU56ZHoYSYnqQ9S</apikey> <theme>default</theme> </gui>
而后把IP127.0.0.1
修改为0.0.0.0
便可保存退出:
<gui enabled="true" tls="false" debugging="false"> <address>0.0.0.0:8384</address> <apikey>2GeGJK9z6tXKP3nHJYU56ZHoYSYnqQ9S</apikey> <theme>default</theme> </gui>
设置好以后执行syncthing
运行,就能够经过http://your_ip_addr:8384
来进行访问管理了,若是直接经过外网ip:端口访问仍是没法打开管理页面,那就须要进行防火墙的设置开启8384端口了:
iptables -I INPUT -p tcp --dport 8384 -j ACCEPT service iptables save service iptables restart syncthing
再次打开http://your_ip_addr:8384
就能看见管理页面了
能够很明显地看到一条警告信息,提醒咱们设置管理用户及密码,点击「设置」,而后把「用户名」和「密码」填写好,「使用加密链接到图形管理页面」这个是开启HTTPS
,按需勾选
打开本地管理页面http://127.0.0.1:8384/
,而后点击「添加远程设备」将VPS添加到同步列表里,其中「设备ID」须要在VPS的管理页面打开「操做」--「显示ID」查看,将ID复制到「设备ID」一栏中,「地址列表」默认使用dynamic
便可,其余按需修改
保存以后咱们能够在VPS端的管理页面上看见链接请求
添加成功后会有共享文件夹的提示
为了测试文件同步是否成功,我在本地同步路径C:\Users\Administrator\Sync
添加了一个文件ROR.txt
,自动同步完成后能够在VPS端管理页面看到「最后接收的文件」显示「已更新 ROR.txt」
在服务器上使用Syncthing能够修改配置文件后使用外网进行访问管理,本地端也能够如法炮制,若是没有外网IP则须要使用花生壳
之类的进行映射,具体操做请移步Google :)
Syncthing有一些高级的功能前面没有说起,例如每一个共享的文件夹均可以在「选项」内打开「高级设置」,进行一些设置,如开启「版本控制」。
经过Syncthing共享的文件夹,被取消共享后,本地已经同步的文件也依然会存在。
除了本身使用,在小圈子内也是颇有利用价值,例如共享资源什么的,不再用忍受各类网盘的龟速上传下载以及删资源啦!
以上只是简单的安装和设置步骤,还有不少内容没有涉及到,例如开机启动、忽略同步内容、命令行操做等等,具体请查看官方文档,里面有很是详尽的教程。
谢谢阅读(σ′▽‵)′▽‵)σ