参考资料:
https://www.pc528.net/centos7-syncthing-linux.html
https://blog.csdn.net/qq_41355314/article/details/116694273
有时会需要保证两台异地的系统中的文件保持同步一致,但在有些严格的内网环境中不允许你添加新的共享存储设备如nas,并要求高可用,因此这里提供一个syncthing的同步方式来解决这种特殊的需求。

安装(主从设备均需安装)

下载syncthing包并解压、运行

wget https://github.com/syncthing/syncthing/releases/download/v1.7.0/syncthing-linux-amd64-v1.3.3.tar.gz
tar -zxvf syncthing-linux-amd64-v1.7.0.tar.gz
cd syncthing-linux-amd64-v1.7.0
cp syncthing /usr/local/bin/
cd /usr/local/bin/
./syncthing --no-browser

修改配置文件让其能外网访问

vi ~/.config/syncthing/config.xml #如果没有,说明安装的是高版本synctging,请用下面的目录
vi ~/.local/state/syncthing/config.xml
将127.0.0.1:8384修改为0.0.0.0:8384这样外网就能访问了
image-cnbf.png

用systemctl来管理syncthing

cp /root/syncthing/syncthing-linux-amd64-v1.27.8/etc/linux-systemd/system/[email protected] /usr/lib/systemd/system
mv [email protected] [email protected] #这里是root用户运行管理,因此改为root,非root用户请看参考链接设置
vi /usr/lib/systemd/system/[email protected]
将ExecStart=/usr/bin/syncthing改为:ExecStart=/usr/local/bin/syncthing
image-jomf.png
systemctl enable [email protected]
systemctl start [email protected]
systemctl status [email protected]

开放必要端口

firewall-cmd --add-port=8384/tcp --add-port=22000/tcp --add-port=21027/udp --permanent --zone=public
firewall-cmd --reload
firewall-cmd --list-ports --zone=public
IP地址:8384能够访问即可

绑定同步

当前主设备设置

image-qngy.png

设置设备名

image-msew.png

配置web管理界面用户名和密码

image-mcum.png

配置发现模式

image-efzo.png

主设备添加从设备

查看从设备标识ID

备设备IP地址:8384
image-htcx.png

在主设备添加远程设备

主设备IP地址:8384
image-iukp.png
image-hyep.png
保存

若主设备和从设备不在同一局域网下

在添加设备中选择高级选项后在地址栏(Addresses)处填入tcp://ip:port或者tcp://host:port 例如从设备IP地址为192.168.1.1
tcp://192.168.1.1:22000 #请保证主设备和从设备的22000端口能够telnet通

到从设备web管理界面,会弹出新设备提示,点击添加设备

image-bzqg.png

配置实时同步共享文件夹

在主设备中添加共享文件夹,并配置共享文件夹的路径

image-sbws.png
image-jksx.png

再选择共享的远程设备

image-bpci.png

高级设置里设置

image-jmrj.png
设置完后保存然后再去从设备web界面点添加
image-mmgh.png