Syncthing 免费且开源,跨平台支持 Windows、Mac、Linux、Android 等主流平台,除了 PC、手机以外,在部分路由器、树莓派等硬件上都能轻松运行,它将以网页版的形式呈现,并且 Syncthing 还提供了中文界面的支持。
既然要同步文件,当然要有至少两台机器了,我这里用的是一台笔记本电脑和一个CentOS的VPS,笔记本作为本地设备,VPS作为远程设备。这里要说明一点,用作文件同步的设备,可以是任何系统任何设备,并不是限定于必须要有一台服务器,在局域网内的两台电脑都可以建立你自己的同步网盘(网盘这个说法其实并不准确)。除了两台机器外,还需要机器系统对应的Syncthing的二进制文件,具体可以从Syncthing首页的「Syncthing Core (CLI & Web UI)」里找到对应版本的下载地址。
先从官网下载好Windows 32位版(我本本对应的系统版本)的Syncthing,解压后可以看到如下文件结构
Syncthing文件结构
直接运行syncthing.exe
会弹出一个黑框框,里面会有一大堆信息,可以不用管
同时浏览器还会打开http://127.0.0.1:8384/
这个网址,可以看到默认已经创建了一个默认文件夹yct7k-lrebo
,所在路径为C:\Users\Administrator\Sync
Liunx版本安装
本地的机器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.gzcd 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的基本安装及同步功能介绍完,产品还可以根据官方提供的配置文件来设置开机自启动实用功能。